Javascript 我的石头剪刀布游戏不起作用,变量userChoice的值保持不变
这是一个简单的程序,通过单击用户选择的图像来获取输入。但是在这里,变量userChoice的值仍然是“未定义的”,即使它已经被给定了一个值 最初存在一个问题,代码执行除事件侦听器部分之外的所有内容。然后,在应用条件下,它确实会等待用户输入,但userChoice的值仍然是“未定义的” 指向我的存储库的链接: 它部署在: 预期:代码应已获取输入值,并且必须已处理所需结果。 实际值:userChoice没有获取所需的值。您的usChoice()正在创建事件侦听器。这就是在您做出选择-->时执行代码的地方,您需要在这里调用compChoice和compare 基本上,每次用户单击其中一个按钮时,都会触发事件,并且只执行侦听器中的代码Javascript 我的石头剪刀布游戏不起作用,变量userChoice的值保持不变,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是一个简单的程序,通过单击用户选择的图像来获取输入。但是在这里,变量userChoice的值仍然是“未定义的”,即使它已经被给定了一个值 最初存在一个问题,代码执行除事件侦听器部分之外的所有内容。然后,在应用条件下,它确实会等待用户输入,但userChoice的值仍然是“未定义的” 指向我的存储库的链接: 它部署在: 预期:代码应已获取输入值,并且必须已处理所需结果。 实际值:userChoice没有获取所需的值。您的usChoice()正在创建事件侦听器。这就是在您做出选择-->时执行代码的
rock.addEventListener("click", () => {
userChoice = "rock";
alert("you chose rock");
console.log(userChoice);
computerChoice = compChoice();
alert(compare(userChoice, computerChoice));
});
我们应该做到这一点。(适用于每个侦听器)
我让您考虑一些重构:)以获得更整洁的代码
玩得开心编辑:欢迎!请务必阅读以下内容:了解如何编写问题的背景知识 看来你比较动作太早了。函数
usChoice()
只为石头、布和剪刀设置事件侦听器,然后开始将值与计算机的移动进行比较。用户做出选择后,即在单击处理程序中,您应该让计算机移动和比较
改变这个
usChoice();
// Remove this
// if(userChoice !== undefined)
// {
// computerChoice = compChoice();
// alert(compare(userChoice, computerChoice));
// }
还有这个
paper.addEventListener("click", () => {
userChoice = "paper";
alert("you chose paper");
console.log(userChoice);
//return "paper";
// Move it to here
computerChoice = compChoice();
alert(compare(userChoice, computerChoice));
});
然后,重构。祝你好运