【问题标题】:Rock, Paper, Scissors If Statement Not Working石头,纸,剪刀如果语句不起作用
【发布时间】:2020-05-17 09:37:10
【问题描述】:

代码在“if 语句”之前一直有效。我觉得逻辑是正确的,但我猜语法不正确。我希望代码足够清晰。我在 HTML 中有三个用于石头、纸和剪刀的按钮,每个按钮都有“onclick”功能。例如,当按下“rock”按钮时,“rock”会显示在 h3 id="yourChoice" 中。还有另一个 h3 id="computerChoice" 我想在 if 语句中比较这两个,但没有预期的结果。谢谢!

var rock = document.getElementById("rock");
var paper = document.getElementById("paper");
var scissors = document.getElementById("scissors");

var computerChoice = document.getElementById("computer_choice");
var yourChoice = document.getElementById("your_choice");

var finalScore = document.getElementById("final_score");


function random(mn, mx){
    return Math.random()*(mx - mn) + mn;
}
function userRock(){
    computerChoice.innerHTML = arr[Math.floor(random(1, 4))-1];
    yourChoice.innerHTML = "rock";
}
function userPaper(){
    computerChoice.innerHTML = arr[Math.floor(random(1, 4))-1];
    yourChoice.innerHTML = "paper";
}
function userScissors(){
    computerChoice.innerHTML = arr[Math.floor(random(1, 4))-1];
    yourChoice.innerHTML = "scissors"
}

//the following part is not working
if(yourChoice.innerHTML == "paper" && computerChoice.innerHTML == "paper"){
    finalScore.innerHTML == "It`s a tie";
}else if(yourChoice.innerHTML == "paper" && computerChoice.innerHTML == "scissors"){
    finalScore.innerHTML = "You lose!";
}else if(yourChoice.innerHTML == "paper" && computerChoice.innerHTML == "rock"){
    finalScore.innerHTML = "You win";
}else if(yourChoice.innerHTML == "rock" && computerChoice.innerHTML == "paper"){
    finalScore.innerHTML = "You lose!";
}else if(yourChoice.innerHTML == "rock" && computerChoice.innerHTML == "rock"){
    finalScore.innerHTML = "It`s a tie";
}else if(yourChoice.innerHTML == "rock" && computerChoice.innerHTML == "scissors"){
    finalScore.innerHTML = "You win!";
}else if(yourChoice.innerHTML == "scissors" && computerChoice.innerHTML == "scissors"){
    finalScore.innerHTML = "It`s a tie";
}else if(yourChoice.innerHTML == "scissors" && computerChoice.innerHTML == "rock"){
    finalScore.innerHTML = "You lose!";
}else if(yourChoice.innerHTML == "scissors" && computerChoice.innerHTML == "paper"){
    finalScore.innerHTML = "You win!";
}else{
finalScore.innerHTML = "End of game!";
}

【问题讨论】:

    标签: javascript if-statement


    【解决方案1】:

    通过使用var yourScore = document.getElementById("your_score");,您只是获取元素而不是值。

    比较应该是

    yourChoice.innerHTML == "paper" && computerChoice.innerHTML == "paper"
    

    【讨论】:

    • 感谢您的建议。我试过了,但还是不行。代码中缺少某些内容。
    • 在描述中,您说元素具有 id yourChoice 和 computerChoice。但是在您的代码中,您正在访问 id 为 your_choice 和 computer_choice 的元素。你在 finalScore.innerHTML == "It`s a tie" 上有一个错误;你是在比较而不是分配。
    • 感谢您的评论。我找到了解决方案。由于每个按钮都有一个功能,因此每个功能都有 if 语句。例如: function userRock(){ computerChoice.innerHTML = arr[Math.floor(random(1, 4))-1]; yourChoice.innerHTML = "摇滚"; if(computerChoice.innerHTML == "rock"){ finalScore.innerHTML = "打成平手!"; }else if(computerChoice = "paper"){ finalScore.innerHTML = "你输了!"; }else{ finalScore.innerHTML = "你赢了!"; } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2013-12-09
    • 1970-01-01
    • 2017-07-16
    • 2014-11-21
    • 2015-01-15
    相关资源
    最近更新 更多