我必须制作一个石头剪刀布游戏,你可以在其中与计算机对战。 1、2、3分别用于石头、剪刀、布。循环5次,并显示电脑赢的数量和玩家赢的数量。除了循环之外,我一切都正常工作。当您输入的数字大于 3 时,它会显示“无效”并循环,直到您玩了 5 场有效游戏。但是,如果您输入的错误答案数量为奇数,则您将玩 6 局游戏;如果您输入的错误答案数量为偶数,则您将玩 5 局游戏。我需要它让你玩 5 场游戏,无论单数还是双数错误。请帮忙。
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int player = 0, computer = 0;
int computerScore = 0, playerScore = 0;
int loops = 0;
int rock = 1;
int paper = 2;
int scissors = 3;
for (int i = 1; i < 6; i++) {
computer = (int) (Math.random() * 3) + 1;
System.out.println("Enter 1 for Rock, 2 for Paper, 3 for Scissors");
player = reader.nextInt();
if (player > scissors) {
System.out.println("Not a valid response");
System.out.println("Enter 1 for Rock, 2 for Paper, 3 for Scissors");
player = reader.nextInt();
i--;
}
if (player == computer) {
System.out.println("Tie");
} else if (player == rock) {
if (computer == paper) {
System.out.println("Player picked Rock, Computer picked Paper, Computer wins");
computerScore++;
} else if (computer == scissors) {
System.out.println("Player picked Rock, Computer picked Scissors, Player wins");
playerScore++;
}
} else if (player == paper) {
if (computer == rock) {
System.out.println("Player picked Paper, Computer picked Rock , Player wins");
playerScore++;
} else if (computer == scissors) {
System.out.println("Player picked Paper, Computer picked Scissors, Computer wins");
computerScore++;
}
} else if (player == scissors) {
if (computer == rock) {
System.out.println("Player picked Scissors, Computer picked Rock , Computer wins");
computerScore++;
} else if (computer == paper) {
System.out.println("Player picked Scissors, Computer picked Paper, Player wins");
playerScore++;
}
}
}
System.out.println("");
System.out.println("Computer Wins " + computerScore);
System.out.println("Player Wins " + playerScore);
}
最佳答案
为了让事情变得更容易,我建议使用 while 循环。
例如:
Scanner reader = new Scanner (System.in);
int computerScore = 0, playerScore = 0;
int rock = 1;
int paper = 2;
int scissors = 3;
int numberOfPlayerTurns = 0;
final int MAX_PLAYER_TURNS = 5;
while (numberOfPlayerTurns < MAX_PLAYER_TURNS)
{
int computer = (int) (Math.random() * 3) + 1;
int player = reader.nextInt();
System.out.println("Enter 1 for Rock, 2 for Paper, 3 for Scissors");
// invalid
if (player > scissors || player <= 0)
{
System.out.println("Not a valid response");
}
else
{
numberOfPlayerTurns++;
if (player == computer)
{
System.out.println("Tie");
}
else if (player == rock )
{
if(computer == paper)
{
System.out.println ("Player picked Rock, Computer picked Paper, Computer wins");
computerScore++;
}
else
{
System.out.println ("Player picked Rock, Computer picked Scissors, Player wins");
playerScore++;
}
}
else if (player == paper)
{
if(computer == rock)
{
System.out.println ("Player picked Paper, Computer picked Rock , Player wins");
playerScore++;
}
else
{
System.out.println ("Player picked Paper, Computer picked Scissors, Computer wins");
computerScore++;
}
}
// scissors
else
{
if(computer == rock)
{
System.out.println ("Player picked Scissors, Computer picked Rock , Computer wins");
computerScore++;
}
else
{
System.out.println ("Player picked Scissors, Computer picked Paper, Player wins");
playerScore++;
}
}
}
}
System.out.println("");
System.out.println("Computer Wins " + computerScore);
System.out.println("Player Wins " + playerScore);
关于Java 石头纸游戏循环次数过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52211303/