Короче нашел код для веб-игры на html и там еще js (вроде как) ,код очень большой. Может кто то помочь сократить его или сделать его намного проще
Код:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Виселица</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
input, select, button {
margin: 10px 0;
padding: 5px;
font-size: 16px;
}
button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.active {
background-color: #4CAF50;
color: white;
}
.screen {
display: none;
}
.visible {
display: block;
}
#gallows {
width: 300px;
height: 300px;
border: 1px solid black;
margin-bottom: 20px;
position: relative;
}
.correct {
color: green;
}
.incorrect {
color: red;
}
</style>
</head>
<body>
<div id="start-screen" class="screen visible">
<h2>Введите имя и выберите категорию</h2>
<input type="text" id="username" placeholder="Введите имя">
<select id="category">
<option value="animals">Животные</option>
<option value="fruits">Фрукты</option>
<option value="countries">Страны</option>
</select>
<button id="start-btn" disabled>Начать игру</button>
</div>
<!-- Экран игры -->
<div id="game-screen" class="screen">
<div id="gallows">
<p>Начальное состояние виселицы</p>
</div>
<div id="guessedLetters">
Предложенные буквы
</div>
<div id="wordDisplay">
</div>
</div>
<!-- Экран результатов -->
<div id="result-screen" class="screen">
<h2 id="resultMessage"></h2>
<div id="resultWord">
</div>
<div id="resultAttempts">
</div>
<div id="resultUsedLetters">
</div>
<button id="restart-btn">Играть снова</button>
</div>
<script>
var words = {
animals: ['слон', 'тигр', 'кошка'],
fruits: ['яблоко', 'банан', 'киви'],
countries: ['россия', 'франция', 'китай']
};
var selectedWord = "";
var displayedWord = [];
var usedLetters = [];
var wrongAttempts = 0;
var maxAttempts = 6;
var playerName = "";
function showScreen(screenId) {
$(".screen").removeClass("visible");
$("#" + screenId).addClass("visible");
}
// Сброс параметров игры
function resetGame() {
selectedWord = "";
displayedWord = [];
usedLetters = [];
wrongAttempts = 0;
$("#wordDisplay").empty();
$("#guessedLetters").text("Предложенные буквы");
$("#gallows").empty().append("<p>Начальное состояние виселицы</p>");
$(document).off("keydown.game");
}
// Начало игры
function startGame() {
playerName = $("#username").val().trim();
var category = $("#category").val();
var wordArray = words[category];
selectedWord = wordArray[Math.floor(Math.random() * wordArray.length)];
displayedWord = Array(selectedWord.length).fill("_");
$("#wordDisplay").text(displayedWord.join(" "));
usedLetters = [];
wrongAttempts = 0;
$("#guessedLetters").text("Предложенные буквы");
$("#gallows").empty().append("<p>Начальное состояние виселицы</p>");
showScreen("game-screen");
$(document).on("keydown.game", function(event) {
var letter = event.key.toLowerCase();
if (!/^[a-zа-яё]$/.test(letter)) return;
if (usedLetters.includes(letter)) {
alert("Эта буква уже была предложена!");
return;
}
usedLetters.push(letter);
$("#guessedLetters").text("Предложенные буквы: " + usedLetters.join(", "));
if (selectedWord.includes(letter)) {
for (var i = 0; i < selectedWord.length; i++) {
if (selectedWord[i] === letter) {
displayedWord[i] = letter;
}
}
$("#wordDisplay").text(displayedWord.join(" "));
} else {
wrongAttempts++;
$("#gallows").append("<p>Ошибка " + wrongAttempts + " из " + maxAttempts + "</p>");
}
if (!displayedWord.includes("_")) {
endGame(true);
} else if (wrongAttempts >= maxAttempts) {
endGame(false);
}
});
}
// Завершение игры
function endGame(isWin) {
$(document).off("keydown.game");
showScreen("result-screen");
if (isWin) {
$("#resultMessage").text(playerName + " победил!");
} else {
$("#resultMessage").text(playerName + " потерпел поражение!");
}
var resultDisplay = "";
for (var i = 0; i < selectedWord.length; i++) {
if (displayedWord[i] !== "_") {
resultDisplay += '<span class="correct">' + selectedWord[i] + '</span> ';
} else {
resultDisplay += '<span class="incorrect">' + selectedWord[i] + '</span> ';
}
}
$("#resultWord").html(resultDisplay);
$("#resultAttempts").text("Количество ошибок: " + wrongAttempts);
$("#resultUsedLetters").text("Предложенные буквы: " + usedLetters.join(", "));
}
// Валидация ввода имени
$("#username").on("input", function() {
var name = $(this).val().trim();
if (name !== "") {
$("#start-btn").prop("disabled", false).addClass("active");
} else {
$("#start-btn").prop("disabled", true).removeClass("active");
}
});
// Начало игры по клику кнопки
$("#start-btn").click(function() {
startGame();
});
</script>
</body>
</html>