0

我正在尝试构建一个基本的 Rock、Paper 和 Scissors 游戏,谁能告诉我为什么这个 if 语句被拒绝。

var rps = function(input1, input2){
    if (input1="paper" && input2="rock") {
        console.log("Player 1 wins!");
    };
};
4

4 回答 4

2

等号应该==代替=

var rps = function(input1, input2){
    if (input1=="paper" && input2=="rock") {
        console.log("Player 1 wins!");
    }
};
于 2013-06-01T23:42:06.903 回答
2

首先,比较是使用==not=

其次,删除 if 末尾的分号。

于 2013-06-01T23:43:13.363 回答
1
  1. 如果要检查变量是否等于某个值,则必须使用“==”
  2. 命名你的功能!
  3. if 语句不需要分号!

    function rsp(input1, input2){ if (input1=="paper" && input2=="rock") { alert("玩家 1 获胜!"); } };

于 2013-06-01T23:51:43.207 回答
0

你分配不评估。这应该是一个有趣的纸,石头,剪刀游戏:

var prsStatements = {
  paperBeatsRock: 'Paper Beats Rock',
  rockBeatsScissors: 'Rock Beats Scissors',
  scissorsBeatsPaper: 'Scissors Beats Paper',
  seperator: ' - ',
  player1wins: 'Player One Wins!',
  player2wins: 'Player Two Wins!',
  tie: "It's a Tie!"
}
function prs(in1, in2){
  var p = /^paper$/i, r = /^rock$/i, s = /^scissors$/i, in2r = new RegExp(in2, 'i'), prss = prsStatements, sep = prss.seperator;
  if(in1.match(p) && in2.match(r)){
    return prss.paperBeatsRock+sep+prss.player1wins;
  }
  else if(in2.match(p) && in1.match(r)){
    return prss.paperBeatsRock+sep+prss.player2wins;
  }
  else if(in1.match(r) && in2.match(s)){
    return prss.rockBeatsScissors+sep+prss.player1wins;
  }
  else if(in2.match(r) && in1.match(s)){
    return prss.rockBeatsScissors+sep+prss.player2wins;
  }
  else if(in1.match(s) && in2.match(p)){
    return prss.scissorsBeatsPaper+sep+prss.player1wins;
  }
  else if(in2.match(s) && in1.match(p)){
    return prss.scissorsBeatsPaper+sep+prss.player2wins;
  }
  else if(in1.match(in2r)){
    return prss.tie;
  }
}

现在您不必担心区分大小写的问题,并且您的输出可以更改!

于 2013-06-02T00:43:06.563 回答