使用香草JavaScript的剪刀石头布

问题描述 投票:0回答:1

Rock paper scissors mock up 每当我单击岩石时,我都希望它返回计算机选择的内容以及该回合的结果。我仍在学习DOM操纵-所以我要做的是将事件监听器设置为#rock(rock元素的ID)。对应代码:

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! ';
    }
});

变量c​​ompChoice被设置为一个数组-以'rock','paper'和'scissors'为元素-并且我利用Math.floor和Math.random从compChoice数组生成随机值。因此,当我单击拳头时-我将使该事件运行一次,但是一旦单击拳头后,我似乎无法从图像中看到不同的结果-基本上该事件不会产生不同的结果-只有当我刷新页面时,它才会产生不同的结果。所以我想问的是:如何根据我的代码多次单击一个按钮,并使其每次产生不同的结果? (请为我不熟悉编程的论文对我道歉:/)

javascript dom-manipulation
1个回答
0
投票

我发现了我的问题-基本上我将compChoices[Math.floor(Math.random()*compChoices.length)];存储在一个变量中-除非刷新网页,否则它的值不会更改。因此,我改为在函数中返回表达式,它解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.