Javascript 丢失的一块?自己的石头剪纸游戏

Javascript 丢失的一块?自己的石头剪纸游戏,javascript,Javascript,在石头、纸、剪刀游戏中不打印赢家。由于某些原因,我无法让我的函数DeclareWinner返回我创建的任何字符串 在我做了一个简短的测试,在if/else语句外放了一个字符串之后,我成功地得到了打印结果。我的报税表似乎停留在本地范围内,因此无法打印 var weapon = "rock" function Userchoice(weapon){ if (weapon === "rock" || weapon === "paper" || weapon === "scissor") {

在石头、纸、剪刀游戏中不打印赢家。由于某些原因,我无法让我的函数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))的期望;就是打印谁是赢家

(顺便说一句,我知道还有其他几种更具技术性的石头剪纸游戏,我只是想在没有具体指导的情况下尝试创建自己的游戏)


提前感谢。

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

请注意:变量名和方法名通常以小写字母开头。

在每个函数中尝试console.log以查看发生了什么。非常感谢,非常简单地解释了一下!:-)