Рок Бумажные ножницы с использованием ванили JavaScript - PullRequest
0 голосов
/ 16 марта 2020

Rock paper scissors mock up Всякий раз, когда я нажимаю на камень - я хочу, чтобы он возвращал то, что выбрал Компьютер, и результаты раунда. Я все еще изучаю DOM Manipulation, поэтому я настроил прослушиватель событий на #rock (идентификатор для элемента rock). Соответствующий код:

document.getElementById('rock').addEventListener('click', function(){
    let a, b;
    a = document.getElementById('text');
    b = document.getElementById('rock').value = 'rock';
    for (let i = 1; i <= 5; i++){
        (b == 'rock' && compChoice == 'Scissors') ? b.textContent = 'You win! The computer picked: ' + compChoice : (b == 'rock' && compChoice == 'Paper') ? y.textContent = 'You lose! The computer picked: ' + compChoice : 'It\'s a tie! The computer picked Rock! ';
    }
});

Переменная compChoice установлена ​​в массив - с элементами «камень», «бумага» и «ножницы» - и я использовал Math.floor и Math. случайный для генерации случайного значения из массива compChoice. Поэтому, когда я go нажимаю на кулак - я получаю событие, чтобы сработать один раз, но после того, как я щелкну кулаком один раз, я не могу получить результат, отличный от того, что вы видите на изображении - в основном событие не не даст другого результата - только когда я go обновлю sh страницу, он выдаст что-то другое. Итак, мой вопрос к вам: как я могу нажимать на кнопку несколько раз, чтобы она каждый раз приводила к разным результатам в зависимости от кода выше? (ps мои извинения за эссе, я плохо знаком с программированием: /)

1 Ответ

0 голосов
/ 16 марта 2020

Я обнаружил свою проблему - в основном я хранил compChoices[Math.floor(Math.random()*compChoices.length)]; в переменной - что приводит к тому, что ее значение не изменяется, если я не обновлю sh веб-страницу. Поэтому вместо этого я вернул выражение в функцию, и это решило мою проблему.

...