javascript - 缺少一块?自己的石头剪刀布游戏
问题描述
不打印石头,纸,剪刀游戏中的获胜者。由于某种原因,我无法让我的函数 DeclareWinner 返回我创建的任何字符串。
在我做了一个简短的测试后,我在 if/else 语句之外放置了一个字符串,我设法打印出来。似乎我的回报被困在本地范围内,因此没有被打印出来。
var weapon = "rock"
function Userchoice(weapon){
if (weapon === "rock" || weapon === "paper" || weapon === "scissor") {
return weapon
}
else {
return "Invalid Choice";
}
}
function Computerchoice(){
var Number = Math.floor(Math.random() * 3);
if (Number === 0) {
return "rock";
}
else if (Number === 1) {
return "paper";
}
else if (Number === 2) {
return "scissor";
}
}
function DeclareWinner(Userchoice, Computerchoice){
if (Userchoice === Computerchoice){
return "Tiebreak";
}
else if (Userchoice === "rock" && Computerchoice === "scissor"){
return "User wins";
}
else if (Userchoice === "rock" && Computerchoice === "paper"){
return "Computer wins";
}
else if (Userchoice === "paper" && Computerchoice === "rock"){
return "User wins";
}
else if (Userchoice === "paper" && Computerchoice === "scissor"){
return "Computer wins";
}
else if (Userchoice === "scissor" && Computerchoice === "rock"){
return "Computer wins";
}
else if (Userchoice === "scissor" && Computerchoice === "paper"){
return "User wins";
}
}
console.log(Userchoice(weapon));
console.log(Computerchoice());
console.log(DeclareWinner(Userchoice, Computerchoice));
console.log(DeclareWinner(Userchoice, Computerchoice)) 的期望值;是打印谁是赢家。
(ps.我知道还有其他几个比较技术性的石头剪刀布游戏,我只是想尝试创建自己的,没有具体指导)
提前致谢。
解决方案
您没有将正确的参数传递给您的函数。Userchoice
并且Computerchoice
都是对相应函数的引用,并不代表您之前的函数调用的(字符串)结果,如您所料。
您可以通过添加一个 来轻松验证这一点console.log(Userchoice)
,它会打印:
function Userchoice(weapon){if(weapon==="rock"||weapon==="paper"||weapon==="scissor"){return weapon;}else{return"Invalid Choice";}}
您想在打印之前存储函数调用的结果并将它们传递给DeclareWinner
.
相关部分:
// Your unchanged code
// ...
let userchoice = Userchoice(weapon);
let computerchoice = Computerchoice();
console.log(userchoice);
console.log(computerchoice);
console.log(DeclareWinner(userchoice, computerchoice));
附带说明:变量和方法名称通常以小写字母开头。
推荐阅读
- tfs - TFS 收集级别的自定义安全组
- android - 我想在软键盘上方创建一个视图
- amazon-web-services - 如何配置我的 EC2 实例运行 DPDK 以过滤弹性 IP 和另一个 ec2 实例之间的流量?
- python - Extracting name and number from a string
- ruby - 在 Firestore 中写入需要太多时间
- java - 如何使用 log4j 动态设置日志文件名,但在发出数据库请求之后?
- java - 为什么通知没有显示在 API 28 中?
- c - 如何将 VL53L0X 标头包含到我的 STM32L 项目中
- python - pythonscript将图片保存到文件时如何在网络服务器上显示图片?
- visual-studio-code - VSCode Jest 因 SystaxError 失败:意外的令牌 =