Рубрики
Без рубрики

Rock Paper Ncissors Spock Lizard Game в JavaScript

Добро пожаловать в мой учебник! В этом уроке мы собираемся построить действительно простую игру с ножницами Rock Paper … Tagged with Gamedev, JavaScript, HTML, CSS.

Добро пожаловать в мой учебник!

В этом уроке мы собираемся построить действительно простую игру с ножницами Rock Paper Lizard.

Пожалуйста, проверьте мою учетную запись GitHub для полного исходного кода. https://github.com/hodovani/rock-paper-scissors-Spock-lizard

Мы будем использовать ванильный JavaScript, HTML, CSS для этой игры.

YouTube видео https://youtu.be/pjw39quoaje

Давайте начнем.

Во -первых, нам нужно настроить нашу папку проекта.

Пожалуйста, создайте папку для игры.

Положить пустой index.html , index.css , index.js Файл в папке.

Теперь вы хотите поместить несколько тегов в index.html Анкет


  
    GAME
  
  
  

Не забудьте периодически сохранять файл.

Мы можем проверить, что у нас все хорошо, запустив этот файл в браузере.

Хорошо, мы можем двигаться вперед.

Теперь вы хотите добавить входные элементы для пользователя.

YOUR CHOICE
    

Мы хотим добавить его в конце index.html тег тела.

Мне хорошо!

Нам нужно добавить вывод компьютера, результат игры, кнопку, чтобы играть в игру.

Вывод компьютера должен выглядеть дальше:

COMPUTER CHOICE
💭

Вы хотите добавить его в конце своего index.html тег тела.

Кнопка воспроизведения довольно проста:


Вы хотите добавить его в конце своего index.html тег тела.

Результат игры должен выглядеть дальше:

Вы хотите добавить его в конце своего index.html тег тела.

Теперь вы хотите связать свой index.css и index.html файлы

Пожалуйста, добавьте


в нижней части тела.

Вот и все. Мы закончили нашу работу с index.html Анкет

Мы просто хотим увеличить размер шрифта, чтобы смайлики выглядели лучше.

Вы хотите добавить это в свой index.css:

html {
    font-size: 42px
}

Давайте перейдем к нашему файлу JavaScript.

Нам нужна функция, чтобы вернуть случайное число в диапазоне от 1 до 5 для выбора компьютера.

Мы бы назвали это getComputerChoice И это должно выглядеть так:

function getComputerChoice() {
    return Math.floor((Math.random() * 5) + 1);
}

Поместите это в начале index.js файл.

Мы хотим добавить несколько константов, которые помогут нам позже. Просто поместите это в конце вашего index.js

const ROCK = 'ROCK';
const SCISSORS = 'SCISSORS';
const PAPER = 'PAPER';
const SPOCK = 'SPOCK';
const LIZARD = 'LIZARD';
const OPTIONS = {
    1: ROCK,
    2: SCISSORS,
    3: PAPER,
    4: SPOCK,
    5: LIZARD
};
const OPTIONS2EMOJI = {
    1: '⛰️',
    2: '✂️',
    3: '🧻',
    4: '🖖',
    5: '🦎'
};

Теперь мы хотим где -нибудь сохранить ввод пользователя. Давайте добавим переменную для этого.

let userChoiceID = '';

Мы хотим добавить слушателей событий для ввода пользователя при загрузке страницы.

Для этого мы должны написать наш код в функции обратного вызова.

window.onload = () => {
  // your code here
}

Мы хотим поместить это в конце index.js Анкет

Нам нужен элемент для вывода результатов.

const output = document.querySelector('#output');

Поместите это в начале нагрузка функция

Мы хотим добавить слушателей событий, чтобы обрабатывать пользовательский ввод. Во -первых, мы бы выбрали элементы по классу. Затем мы добавили бы слушателя событий в каждый элемент.

const userOptions = document.querySelectorAll('.user-option');

userOptions.forEach(el => el.addEventListener('click', event => {
    userChoiceID = event.target.id;
}));

Поместите это в конце нагрузка функция

Теперь мы хотим добавить слушателя событий в кнопку воспроизведения. Давайте сначала создадим переменную.

const playButton = document.querySelector('#play');

Теперь мы можем добавить слушателя событий

playButton.addEventListener('click', () => {
})

Давайте заберем всю информацию, которую нам нужна, чтобы определить победителя. Нам нужен компьютер и выбор пользователя.

const computerChoiceID = getComputerChoice();
const computerChoice = OPTIONS[computerChoiceID];
const computerChoiceElement = document.querySelector('#computer-choice');
const output = document.querySelector('#output');
const userChoice = OPTIONS[userChoiceID];

let result = '';

Теперь мы можем выбирать выбор компьютера.

computerChoiceElement.innerHTML = OPTIONS2EMOJI[computerChoiceID];

Поместите его в конце кнопки «Воспроизведение» нажмите обратный вызов.

Давайте напишем логику, чтобы определить победителя. Мы использовали бы переключатель для этого. Не забудьте добавить корпус по умолчанию.

switch (`${computerChoice}-${userChoice}`) {
    case `${ROCK}-${ROCK}`:
    case `${SCISSORS}-${SCISSORS}`:
    case `${PAPER}-${PAPER}`:
    case `${SPOCK}-${SPOCK}`:
    case `${LIZARD}-${LIZARD}`:
        result = 'TIE 👔'
        break;
    case `${ROCK}-${SCISSORS}`:
    case `${ROCK}-${LIZARD}`:
    case `${SCISSORS}-${PAPER}`:
    case `${SCISSORS}-${LIZARD}`:
    case `${PAPER}-${ROCK}`:
    case `${PAPER}-${SPOCK}`:
    case `${SPOCK}-${ROCK}`:
    case `${SPOCK}-${SCISSORS}`:
    case `${LIZARD}-${PAPER}`:
    case `${LIZARD}-${SPOCK}`:
        result = 'COMPUTER WIN 😔💔 🤖🥇'
        break;
    case `${ROCK}-${PAPER}`:
    case `${ROCK}-${SPOCK}`:
    case `${SCISSORS}-${ROCK}`:
    case `${SCISSORS}-${SPOCK}`:
    case `${PAPER}-${SCISSORS}`:
    case `${PAPER}-${LIZARD}`:
    case `${SPOCK}-${PAPER}`:
    case `${SPOCK}-${LIZARD}`:
    case `${LIZARD}-${ROCK}`:
    case `${LIZARD}-${SCISSORS}`:
        result = 'YOU WIN ☺️🥇 🤖💔'
        break;
    default:
        result = 'SOMETHING WRONG. TRY AGAIN. 🐛'
}

Поместите его в конце кнопки «Воспроизведение» нажмите обратный вызов.

Теперь мы готовы вывести результат.

output.innerHTML = result;

Поместите его в конце кнопки «Воспроизведение» нажмите обратный вызов.

Там у вас есть, вы можете играть против компьютера.

Есть много крутых способов улучшить эту простую чистую JavaScript Rock-Paper-Scissors-Spock-Lizard, включая количество счетов

Еще раз, надеюсь, вам понравилось мое руководство, если у вас есть какие -либо вопросы относительно кода, пожалуйста, оставьте комментарий.

Я обязательно вернусь к вам с помощью.

Оригинал: “https://dev.to/hodovani/rock-paper-scissors-spock-lizard-game-in-javascript-4kfn”