Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的石头剪刀布游戏不起作用,变量userChoice的值保持不变_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 我的石头剪刀布游戏不起作用,变量userChoice的值保持不变

Javascript 我的石头剪刀布游戏不起作用,变量userChoice的值保持不变,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是一个简单的程序,通过单击用户选择的图像来获取输入。但是在这里,变量userChoice的值仍然是“未定义的”,即使它已经被给定了一个值 最初存在一个问题,代码执行除事件侦听器部分之外的所有内容。然后,在应用条件下,它确实会等待用户输入,但userChoice的值仍然是“未定义的” 指向我的存储库的链接: 它部署在: 预期:代码应已获取输入值,并且必须已处理所需结果。 实际值:userChoice没有获取所需的值。您的usChoice()正在创建事件侦听器。这就是在您做出选择-->时执行代码的

这是一个简单的程序,通过单击用户选择的图像来获取输入。但是在这里,变量userChoice的值仍然是“未定义的”,即使它已经被给定了一个值

最初存在一个问题,代码执行除事件侦听器部分之外的所有内容。然后,在应用条件下,它确实会等待用户输入,但userChoice的值仍然是“未定义的”

指向我的存储库的链接: 它部署在:

预期:代码应已获取输入值,并且必须已处理所需结果。 实际值:userChoice没有获取所需的值。

您的usChoice()正在创建事件侦听器。这就是在您做出选择-->时执行代码的地方,您需要在这里调用compChoice和compare

基本上,每次用户单击其中一个按钮时,都会触发事件,并且只执行侦听器中的代码

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));
});
然后,重构。祝你好运