我像往常一样在做摇滚/纸/剪刀游戏。不知何故,我的if
和switch
语句无法读取其他两个函数设置的值,当我console.log
result
返回时undefined
但是,当我手动设置user
和computer
变量decideWinner
功能按预期工作时。
我一直在修补它几个小时,如果能提供一些帮助,将不胜感激。谢谢。
let user
let computer
let result
//1
function userChoice() {
let user = prompt(`rock, paper, scissors`)
}
//2
function computersTurn() {
let randomNumber = Math.floor((Math.random() * 3) + 1);
switch (randomNumber) {
case 1:
computer = `rock`;
break;
case 2:
computer = `scissors`;
break;
case 3:
computer = `paper`;
break;
}
}
//3
function decideWinner() {
if (user == `rock`) {
switch (computer) {
case `rock`:
result = `tie`
break;
case 'scissors':
result = `player`
break;
case `paper`:
result = `computer`
break;
}
} else if (user == `paper`) {
switch (computer) {
case `rock`:
result = `player`
break;
case 'scissors':
result = `computer`
break;
case `paper`:
result = `tie`
break;
}
} else if (user == `scissors`) {
switch (computer) {
case `rock`:
result = `computer`
break;
case 'scissors':
result = `tie`
break;
case `paper`:
result = `player`
break;
}
}
}
userChoice();
computersTurn();
decideWinner();
console.log(result);
您不应重新创建该user
变量。执行此操作时,user
会在本地创建另一个变量,并将提示结果分配给该变量,从而保持全局user
变量未定义。使用user = ...
代替let user = ...
:
let user
let computer
let result
//1
function userChoice() {
user = prompt(`rock, paper, scissors`)
}
//2
function computersTurn() {
let randomNumber = Math.floor((Math.random() * 3) + 1);
switch (randomNumber) {
case 1:
computer = `rock`;
break;
case 2:
computer = `scissors`;
break;
case 3:
computer = `paper`;
break;
}
}
//3
function decideWinner() {
if (user == `rock`) {
switch (computer) {
case `rock`:
result = `tie`
break;
case 'scissors':
result = `player`
break;
case `paper`:
result = `computer`
break;
}
} else if (user == `paper`) {
switch (computer) {
case `rock`:
result = `player`
break;
case 'scissors':
result = `computer`
break;
case `paper`:
result = `tie`
break;
}
} else if (user == `scissors`) {
switch (computer) {
case `rock`:
result = `computer`
break;
case 'scissors':
result = `tie`
break;
case `paper`:
result = `player`
break;
}
}
}
userChoice();
computersTurn();
decideWinner();
console.log(result);
注意:您可以computersTurn
用更简单的方式重写您的函数:
function computersTurn() {
let choices = ["rock", "scissors", "paper"];
let randomNumber = Math.floor((Math.random() * 3));
computer = choices[randomNumber];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句