首页 > 解决方案 > 缺少一块?自己的石头剪刀布游戏

问题描述

不打印石头,纸,剪刀游戏中的获胜者。由于某种原因,我无法让我的函数 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.我知道还有其他几个比较技术性的石头剪刀布游戏,我只是想尝试创建自己的,没有具体指导)

提前致谢。

标签: javascript

解决方案


您没有将正确的参数传递给您的函数。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));

附带说明:变量和方法名称通常以小写字母开头。


推荐阅读