在 JavaScript 中构建“石头、纸、剪刀”
Build “rock, paper, scissors” in JavaScript
这是代码。搭建"石头、纸、剪刀"
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
}
else if(computerChoice <= 0.67) {
computerChoice = "paper";
}
else {
computerChoice = "scissors";
}
console.log("Computer: " + computerChoice);
var compare = function(choice1,choice2) {
if (choice1 === choice2) {
return "The result is a tie!"
}
else if (choice1 === "rock") {
if (choice2 === "scissors") {
return "rock wins"
}
else {
return "paper wins"
}
} compare(userChoice,computerChoice); //I forget to add it. Now I add it.
我不明白为什么我需要添加else { return "paper wins" }
===
运算符是JavaScript中的严格相等运算符。 有问题的if
语句正在对choice1
和字符串文字"rock"
进行比较。 如果该答案为真,则执行下一个if
语句,程序检查choice2
是否等于 "scissors"
。 如果这句话是真的,那么它就会返回"rock wins"
因为众所周知,摇滚打败了剪刀。
我不明白为什么我需要添加其他{返回"纸张获胜"}
这是因为这个游戏有 3 种不同的情况,它们是(假设我选择摇滚):
- 对手选择摇滚=>平局
- 对手选择剪刀=>我赢 了
- 对手选择纸张=>对手获胜
如果choice1
是"rock"
而choice2
不是(else
)"scissors"
那么choice2
可能是"paper"
的,也可以是"rock"
的。既然没有平局,choice2
就不能"rock"
,所以choice2
是"paper"
,"paper"
胜"rock"
,所以"paper wins"
。
编辑
由于 return
语句会立即退出函数,以防
if (choice2 === "scissors") {
return "rock wins" // <-- quit the function
}
// <-- if you got here it is not true that (choice2 === "scissors")
return "paper wins"
这意味着您可以避免else
,只需return "paper wins"
相关文章:
- 更多的石头剪刀
- 新手Javascript函数返回未定义的石头剪刀游戏
- 编写石头,纸,剪刀游戏
- 代码学院的石头剪刀布
- 石头剪刀布游戏功能在Javascript
- 如何在石头剪刀游戏中延迟回答
- SyntaxError:石头剪刀中的意外标记{
- 石头剪刀布蜥蜴斯波克游戏逻辑偶尔会输出错误的赢家,我不知道为什么
- Javascript中的石头剪刀布
- 尝试为石头剪刀布游戏显示图像而不是字母
- 在 JavaScript 中构建“石头、纸、剪刀”
- 石头剪刀布 JavaScript 问题
- 两个玩家石头剪刀布在JavaScript
- 石头,纸,剪刀jQuery游戏不工作
- 石头、纸、剪刀游戏动画
- 我可以'我不明白为什么得分不高;我不在玩石头、布、剪刀的游戏
- 石头剪刀游戏的回合计数(潜在的jquery问题)
- 退出Javascript中的函数.简单的石头,纸,剪刀游戏
- 石头纸,剪刀游戏
- 如何让我的剪刀石头布游戏刷新上按一下按钮