首页 > 解决方案 > Javascript - Rock, Paper, Scissors (odinProject) Helpppp

问题描述

我在使用 javascript (来自 odinproject.com 的作业)中创建一个摇滚、纸、剪刀游戏的作业时遇到了麻烦。每当我使用摇滚作为我的输入时,它似乎工作得很好。但是,当输入纸张或剪刀时,它不能正常工作。请任何帮助、建议和建议将不胜感激。我对此还是很陌生,渴望了解更多!

谢谢!

这是我的代码:

function userChoice() {
  const userChoice = prompt("Do you choose Rock, Paper, or Scissors?").toLowerCase();
  return userChoice
}

function compChoice() {
  let compChoice = Math.random();
  if (compChoice < 0.34) {
    compChoice = "rock";
  } else if (compChoice <= 0.67) {
    compChoice = "paper";
  } else {
    compChoice = "scissors";
  }
  return compChoice
}

function playRound(userChoice, compChoice) {
  //Rock Choice
  if (userChoice == "rock" && compChoice == "scissors") {
    return "You Win! rock beats scissors!";
  } else if (userChoice == "rock" && compChoice == "paper") {
    return "Loser! paper Beats rock";
  } else if (userChoice == "rock" && compChoice == "rock") {
    return "It's a Draw";
  } else {
    return "Something Went Wrong";
  }
  //paper Choice
  if (userChoice == "paper" && compChoice == "rock") {
    return "You Win! paper beats rock";
  } else if (userChoice == "paper" && compChoice == "scissors") {
    return "You Lose! scissors beats paper";
  } else if (userChoice == "paper" && compChoice == "paper") {
    return "It's a Draw";
  } else {
    return "Something Went wrong";
  }
  //scissors Choice
  if (userChoice == "scissors" && compChoice == "paper") {
    return "You win! scissors beat paper";
  } else if (userChoice == "scissors" && compChoice == "rock") {
    return "You Lose! rock beats scissors";
  } else if (userChoice == "scissors" && compChoice == "scissors") {
    return "It's a Draw";
  } else {
    return "Something Went Wrong";
  }
}

console.log(playRound(userChoice(), compChoice()))

标签: javascriptfunctionif-statement

解决方案


如果不输入rock,将执行第一else条语句,因为iforelse if条件都不为真。它将返回而不对orSomething went wrong执行任何测试。paperscissors

所有其他组合都应该是附加else if语句,并且您应该在最后只有一个else

function userChoice() {
  const userChoice = prompt("Do you choose Rock, Paper, or Scissors?").toLowerCase();
  return userChoice
}

function compChoice() {
  let compChoice = Math.random();
  if (compChoice < 0.34) {
    compChoice = "rock";
  } else if (compChoice <= 0.67) {
    compChoice = "paper";
  } else {
    compChoice = "scissors";
  }
  return compChoice
}

function playRound(userChoice, compChoice) {
  //Rock Choice
  if (userChoice == "rock" && compChoice == "scissors") {
    return "You Win! rock beats scissors!";
  } else if (userChoice == "rock" && compChoice == "paper") {
    return "Loser! paper Beats rock";
  } else if (userChoice == "rock" && compChoice == "rock") {
    return "It's a Draw";
  }
  //paper Choice
  else if (userChoice == "paper" && compChoice == "rock") {
    return "You Win! paper beats rock";
  } else if (userChoice == "paper" && compChoice == "scissors") {
    return "You Lose! scissors beats paper";
  } else if (userChoice == "paper" && compChoice == "paper") {
    return "It's a Draw";
  }
  //scissors Choice
  else if (userChoice == "scissors" && compChoice == "paper") {
    return "You win! scissors beat paper";
  } else if (userChoice == "scissors" && compChoice == "rock") {
    return "You Lose! rock beats scissors";
  } else if (userChoice == "scissors" && compChoice == "scissors") {
    return "It's a Draw";
  } else {
    return "Something Went Wrong";
  }
}

console.log(playRound(userChoice(), compChoice()))

或者您可以使用嵌套if块。

function userChoice() {
  const userChoice = prompt("Do you choose Rock, Paper, or Scissors?").toLowerCase();
  return userChoice
}

function compChoice() {
  let compChoice = Math.random();
  if (compChoice < 0.34) {
    compChoice = "rock";
  } else if (compChoice <= 0.67) {
    compChoice = "paper";
  } else {
    compChoice = "scissors";
  }
  return compChoice
}

function playRound(userChoice, compChoice) {
  //Rock Choice
  if (userChoice == "rock") {
    if (compChoice == "scissors") {
      return "You Win! rock beats scissors!";
    } else if (compChoice == "paper") {
      return "Loser! paper Beats rock";
    } else if (compChoice == "rock") {
      return "It's a Draw";
    } else {
      return "Something Went Wrong";
    }
  }
  //paper Choice
  else if (userChoice == "paper") {
    if (compChoice == "rock") {
      return "You Win! paper beats rock";
    } else if (compChoice == "scissors") {
      return "You Lose! scissors beats paper";
    } else if (compChoice == "paper") {
      return "It's a Draw";
    } else {
      return "Something Went Wrong";
    }
  }
  //scissors Choice
  else if (userChoice == "scissors") {
    if (compChoice == "paper") {
      return "You win! scissors beat paper";
    } else if (userChoice == "scissors" && compChoice == "rock") {
      return "You Lose! rock beats scissors";
    } else if (userChoice == "scissors" && compChoice == "scissors") {
      return "It's a Draw";
    } else {
      return "Something Went Wrong";
    }
  } else {
    return "That's not a valid choice";
  }
}

console.log(playRound(userChoice(), compChoice()))


推荐阅读