gpt4 book ai didi

java - 添加 while 循环,使用户输入的石头剪刀布游戏重复进行,直到用户结束游戏

转载 作者:行者123 更新时间:2023-12-01 05:01:37 24 4
gpt4 key购买 nike

好的,我已经编写了一个简单的石头剪刀布游戏,使用用户输入来玩。用户输入他们的选择,随机函数选择计算机运行,然后生成结果。此后程序将终止,因为它已完成。我想使用 while 循环,这样当游戏结束时,它会再次开始,然后如果用户输入 exitquit ,程序就会停止,这可以只需说一些类似 while playerGo != exit, play the game blah blah 的内容即可轻松完成。但是,我无法让它工作,有人可以帮助我吗,我是一个 Java 菜鸟:)

import java.util.Scanner;   

public class RockPaperScissors{
public static void main(String[] args){

Scanner input = new Scanner(System.in);

int compGoInt;
String compGo;
String playerGo;

System.out.println("You can type 'Exit' to quit the game at any time.");
System.out.print("Please enter your choice. Rock, Paper or Scissors: ");
playerGo = input.nextLine();

compGoInt = (int) (Math.random() * 3);

switch (compGoInt){
case 0:
compGo = "Rock";
break;
case 1:
compGo = "Paper";
break;
case 2:
compGo = "Scissors";
break;
default:
compGo = "Error";
System.out.println("Error.");
break;
}

if (playerGo.equals(compGo)){
System.out.println("Computer chooses "+compGo);
System.out.println("It's a draw!");
}

else if ((playerGo.equalsIgnoreCase("Rock") && compGo.equalsIgnoreCase("Scissors")) ||
(playerGo.equalsIgnoreCase("Paper") && compGo.equalsIgnoreCase("Rock")) ||
(playerGo.equalsIgnoreCase("Scissors") && compGo.equalsIgnoreCase("Paper"))){
System.out.println("Computer chooses "+compGo);
System.out.println("Player Wins!");
}

else if ((compGo.equalsIgnoreCase("Rock") && playerGo.equalsIgnoreCase("Scissors")) ||
(compGo.equalsIgnoreCase("Paper") && playerGo.equalsIgnoreCase("Rock")) ||
(compGo.equalsIgnoreCase("Scissors") && playerGo.equalsIgnoreCase("Paper"))){
System.out.println("Computer chooses "+compGo);
System.out.println("Computer Wins!");
}

else{
System.out.println("Something has gone wrong!");
System.out.println("Player chose "+playerGo);
System.out.println("Computer chose "+compGo);
}


}

}

最佳答案

简单地说:

while(true) {
if(playerGo.equalsIgnoreCase("Exit")) break;
else //GameLogic
}

不过,如果我可以这么说,您应该让用户选择一个数字,因为任何字母输入都容易出错。

出于澄清目的:

import java.util.Scanner;   

public class RockPaperScissors{
public static void main(String[] args) {

Scanner input = new Scanner(System.in);

int compGoInt;
String compGo;
String playerGo;

while(true) {
System.out.println("You can type 'Exit' to quit the game at any time.");
System.out.print("Please enter your choice. Rock, Paper or Scissors: ");
playerGo = input.nextLine();

if(playerGo.equalsIgnoreCase("Exit")) break; //Checks for exit condition.
else { //GameLogic

compGoInt = (int) (Math.random() * 3);

switch (compGoInt){
case 0:
compGo = "Rock";
break;
case 1:
compGo = "Paper";
break;
case 2:
compGo = "Scissors";
break;
default:
compGo = "Error";
System.out.println("Error.");
break;
}

if (playerGo.equals(compGo)){
System.out.println("Computer chooses "+compGo);
System.out.println("It's a draw!");
}

else if ((playerGo.equalsIgnoreCase("Rock") && compGo.equalsIgnoreCase("Scissors")) ||
(playerGo.equalsIgnoreCase("Paper") && compGo.equalsIgnoreCase("Rock")) ||
(playerGo.equalsIgnoreCase("Scissors") && compGo.equalsIgnoreCase("Paper"))){
System.out.println("Computer chooses "+compGo);
System.out.println("Player Wins!");
}

else if ((compGo.equalsIgnoreCase("Rock") && playerGo.equalsIgnoreCase("Scissors")) ||
(compGo.equalsIgnoreCase("Paper") && playerGo.equalsIgnoreCase("Rock")) ||
(compGo.equalsIgnoreCase("Scissors") && playerGo.equalsIgnoreCase("Paper"))){
System.out.println("Computer chooses "+compGo);
System.out.println("Computer Wins!");
}

else{
System.out.println("Something has gone wrong!");
System.out.println("Player chose "+playerGo);
System.out.println("Computer chose "+compGo);
}
}
}
}
}

关于java - 添加 while 循环,使用户输入的石头剪刀布游戏重复进行,直到用户结束游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com