Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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 if/else不工作。奥丁项目的石头、布、剪刀_Javascript_Html_If Statement - Fatal编程技术网

Javascript if/else不工作。奥丁项目的石头、布、剪刀

Javascript if/else不工作。奥丁项目的石头、布、剪刀,javascript,html,if-statement,Javascript,Html,If Statement,我一直在试图解决石头、布和剪刀项目,但我不知道如何做出if/else声明。我做了很多次,最后我认为我即将解决这个问题,但问题是,每次我运行程序,我都会得到错误的输出 例如,我使用了“纸”,计算机使用了“摇滚”,但控制台显示“这是一个平局”,但在代码中我写道,如果玩家选择了纸,计算机选择了摇滚,则消息应该是“你赢了”。纸胜过石头。当我选择“纸”和计算机选择“剪刀”时也会发生同样的情况 我使用了toLowerCase方法,但经过多次更改后,即使将其删除并在if/else中准确地写入单词,这似乎不是问

我一直在试图解决石头、布和剪刀项目,但我不知道如何做出if/else声明。我做了很多次,最后我认为我即将解决这个问题,但问题是,每次我运行程序,我都会得到错误的输出

例如,我使用了“纸”,计算机使用了“摇滚”,但控制台显示“这是一个平局”,但在代码中我写道,如果玩家选择了纸,计算机选择了摇滚,则消息应该是“你赢了”。纸胜过石头。当我选择“纸”和计算机选择“剪刀”时也会发生同样的情况

我使用了toLowerCase方法,但经过多次更改后,即使将其删除并在if/else中准确地写入单词,这似乎不是问题所在

我需要纠正什么?非常感谢你

代码如下:

石头剪刀! //计算机的选择 功能电脑游戏{ 让selectRandom=Math.floorMath.random*3; 如果选择Random==0{ 返回“岩石”; }如果选择Random==1,则为else{ 返回“文件”; }否则{ 返回“剪刀”; } } console.log“计算机选择:”+计算机播放; //在humand和计算机之间玩游戏 功能播放机圆形播放机选择、计算机选择{ //改为小写 让player=playerSelection.toLowerCase; 让computer=computerSelection.toLowerCase; //如果玩家选择摇滚乐 如果玩家==‘摇滚’{ 如果计算机==='rock'{ return“这是一个平局,请重试” }如果计算机=='纸张'{ 返回“你松了,纸打石头” }否则{ 返回“你赢了,石头胜过剪刀” } } //如果玩家选择纸张 如果播放器=='纸张'{ 如果计算机=='纸张'{ return“这是一个平局,请重试” } 如果计算机===‘剪刀’{ 返回“你松了,剪刀比纸好” }否则{ 返回“你赢了,纸胜石头” } } //如果玩家选择剪刀 否则{ 如果计算机===‘剪刀’{ return“这是一个平局,请重试” }如果计算机===‘摇滚乐’{ 返回“你松了,石头打剪刀” }否则{ 返回“你赢了,剪刀胜过纸” } } } const playerSelection='纸'; const computerSelection=computerPlay; console.logplayRoundplayerSelection,computerSelection;
正如你们已经知道的,每次你们调用computerPlay,计算机都会选择一个随机值

当您在下面的语句中调用computerPlay时,您会得到一个随机选择

console.log('Computer chose: ' + computerPlay()); // Random selection.
 const computerSelection = computerPlay(); // Random selection.
 console.log(playRound(playerSelection, computerSelection));
当您稍后在下面的代码中再次调用该函数时,您会得到另一个随机选择

console.log('Computer chose: ' + computerPlay()); // Random selection.
 const computerSelection = computerPlay(); // Random selection.
 console.log(playRound(playerSelection, computerSelection));
这就是您看到的输出与实际结果不一致的原因

解决方案:移动到console.log语句上方以在计算机选择后执行,并记录返回值,不再调用computerPlay。如果您再次调用它,您将得到另一个随机选择,而不是传递给playRound函数的选择

const computerSelection = computerPlay();
console.log('Computer chose: ' + computerSelection);
console.log(playRound(playerSelection, computerSelection));
工作示例:

石头剪刀! //计算机的选择 功能电脑游戏{ 让selectRandom=Math.floorMath.random*3; 如果选择Random==0{ 返回“岩石”; }如果选择Random==1,则为else{ 返回“文件”; }否则{ 返回“剪刀”; } } //在人和计算机之间玩游戏 功能播放机圆形播放机选择、计算机选择{ //改为小写 让player=playerSelection.toLowerCase; 让computer=computerSelection.toLowerCase; //如果玩家选择摇滚乐 如果玩家==‘摇滚’{ 如果计算机==='rock'{ return“这是一个平局,请重试” }如果计算机=='纸张'{ 返回“你松了,纸打石头” }否则{ 返回“你赢了,石头胜过剪刀” } } //如果玩家选择纸张 如果播放器=='纸张'{ 如果计算机=='纸张'{ return“这是一个平局,请重试” } 如果计算机===‘剪刀’{ 返回“你松了,剪刀比纸好” }否则{ 返回“你赢了,纸胜石头” } } //如果玩家选择剪刀 否则{ 如果计算机===‘剪刀’{ return“这是一个平局,请重试” }如果计算机===‘摇滚乐’{ 返回“你输了,石头胜过剪刀” }否则{ 返回“你赢了,剪刀胜过纸” } } } const playerSelection='纸'; const computerSelection=computerPlay; console.log“计算机选择:”+计算机选择; console.logplayRoundplayerSelection,computerSelection;
您不保存所选计算机显示的内容,因此
您实际比较的对象可能与显示的对象不同,因为它每次都是随机的。记录计算机选择而不是所有if/else都正常。。。问题是,在代码顶部运行computerPlay以输出计算机选择,然后再次运行它以确定赢家。。。显示的选项通常不等于选中的选项choice@dnewbie25您的if/else语句正常您的日志是问题您没有检查计算机选择了实际检查此项非常感谢大家!我甚至没有注意到这是由于第一个控制台造成的。现在它工作得很好。