Добро пожаловать в этот урок о том, как создать простую игру «камень, ножницы, бумага» с помощью JavaScript!

(Ссылка внизу.)

Готовы ли вы испытать свою удачу против компьютера в игре камень, ножницы, бумага? В этой статье мы обсудим код, который позволяет вам сыграть пять раундов в эту классическую игру и посмотреть, кто выйдет победителем.

Но это не обычная игра в камень, ножницы, бумага. Этот код был разработан, чтобы добавить немного азарта и конкуренции. Готовы ли вы проверить, есть ли у вас все необходимое, чтобы победить компьютер? Давай выясним!

Как работает код:

Код начинается с определения массива под названием «play», который содержит три варианта на выбор: «камень», «бумага» и «ножницы». Он также определяет три переменные: «выигрыши», «проигрыши» и «ничьи», которые будут использоваться для отслеживания результатов каждого раунда.

let play = [“rock”, “paper”, “scissors”];
let wins = 0;
let losses = 0;
let draws = 0;

Затем код отображает предупреждающее сообщение, знакомящее с игрой и объясняющее правила. Затем он входит в цикл, который будет выполняться в общей сложности пять раундов.

let introduction = ("Get ready – five rounds of rock, paper, and scissors are about to start! (User's consent not required.)");
alert(introduction)
let i = 0;
while (i < 5){

Во время каждого раунда код будет предлагать вам ввести свой выбор. Затем он преобразует ваш ответ в нижний регистр, так что не имеет значения, вводите ли вы «рок», «РОК» или «Рок».

let hAnswer = prompt("How will it be, eh? You ought to choose!");
hAnswer = hAnswer.toLowerCase();

Не пытайтесь вставить другое слово, иначе игра перезагрузится!

if (
    (hAnswer !== "rock" && hAnswer !== "paper" && hAnswer !== "scissors")
) {
    alert("Dude play either rock, paper, or scissors. Reload the page to start again.");
    break; 
};

Но здесь все становится интереснее. Затем код сгенерирует случайный ответ для компьютера, используя массив «play» и функцию «Math.random()». Он отобразит предупреждающее сообщение, показывающее выбор компьютера, а также будет держать вас в напряжении, добавляя немного саспенса с драматической музыкой.

let cAnswer = play[Math.floor(Math.random() * play.length)];
if (hAnswer == "rock" || hAnswer == "paper" || hAnswer == "scissors") {
    alert("Computer has played " + cAnswer + ".");
 }

Наконец, код определит исход раунда на основе правил «камень, ножницы, бумага». Если это ничья, счетчик «ничьи» будет увеличен. Если вы выиграете, счетчик «выигрышей» будет увеличен. И если вы проиграете, счетчик «проигрышей» будет увеличен.

 //Response for draw & counter
if (hAnswer === cAnswer) {
    draws++
    alert(`It's a draw. We're keeping tabs... (${draws})`)
} 

//Response for win & counter
else if (
    (hAnswer == "rock" && cAnswer == "scissors") ||
    (hAnswer == "paper" && cAnswer == "rock") ||
    (hAnswer == "scissors" && cAnswer == "paper")
) { wins++
    alert(`You have won ${wins} times, luck lol.`)
}

//Response for loss & counter
else {
    losses++
    alert(`You have lost ${losses} times ahaha!`)
} i++ //counter for <5 loop
}

В конце цикла код отобразит предупреждающее сообщение с окончательными результатами, включая количество побед, поражений и ничьих. Это также добавит немного колорита, добавив праздничную музыку, если вы выиграете, или сочувствующую музыку, если вы проиграете.

alert(`You have won ${wins} times, draw ${draws} times and lost ${losses} times.`)

Вывод:

Итак, у вас есть код, который позволяет вам весело и увлекательно играть в камень, ножницы, бумагу против вашего компьютера. Являетесь ли вы опытным профессионалом или новичком, этот код — отличный способ проверить свою удачу и посмотреть, есть ли у вас все необходимое, чтобы победить компьютер. Так зачем ждать? Попробуйте и посмотрите, есть ли у вас все необходимое, чтобы выйти на первое место!

Попробуй здесь