Java 我正在尝试添加一个选项来重播或结束游戏。而且,我的结果不是';不能正常弹出
我正在尝试将退出选项添加到此代码中。此外,我的结果无法正确阅读,我也不确定我做错了什么。我尝试过使用do while循环,但似乎无法将其放置在正确的位置Java 我正在尝试添加一个选项来重播或结束游戏。而且,我的结果不是';不能正常弹出,java,Java,我正在尝试将退出选项添加到此代码中。此外,我的结果无法正确阅读,我也不确定我做错了什么。我尝试过使用do while循环,但似乎无法将其放置在正确的位置 //import Scanner Class import java.util.Scanner; import java.util.Random; public class JavaMidterm { public static void main(String[] args) { String result = "
//import Scanner Class
import java.util.Scanner;
import java.util.Random;
public class JavaMidterm {
public static void main(String[] args) {
String result = " ", symbola = " ", symbolb = " ";
Scanner s = new Scanner(System.in);
//prompt user
System.out.print("Scissor (0), rock (1), paper (2): ");
// read user choice
int choice=s.nextInt();
//Create random class object
Random random = new Random();
//Generate a random number from 0, 1, 2
int pick = random.nextInt(3);
if(choice == pick)
result = "It is a draw";
else {
if (((choice == 0) && (pick == 2)) || ((choice == 1) && (pick ==0)) || ((choice == 2) && (pick == 1)) )
result = "You won";
else
result = "You lose";
}
if(pick == 0)
symbola = "Scissor";
if(choice == 0)
symbolb = "Scissor";
//assigning symbols to the corresponding values
if(pick == 1)
symbolb = "Rock";
if(pick == 2)
symbola = "Paper";
if(choice == 2)
symbolb = "Paper";
System.out.println("The computer is" +
symbola + ". You are" + symbolb + ". " + result);
}
}
我假设你希望在“赢”的情况下结束游戏,在“输”的情况下继续游戏。假设代码可以像下面这样修改
boolean isGoodToContinue = true;
while (isGoodToContinue) {
String result = " ", symbola = " ", symbolb = " ";
Scanner s = new Scanner(System.in);
// prompt user
System.out.print("Scissor (0), rock (1), paper (2): ");
// read user choice
int choice = s.nextInt();
// Create random class object
Random random = new Random();
// Generate a random number from 0, 1, 2
int pick = random.nextInt(3);
if (choice == pick)
result = "It is a draw";
else {
if (((choice == 0) && (pick == 2)) || ((choice == 1) && (pick == 0))
|| ((choice == 2) && (pick == 1))) {
result = "You won";
isGoodToContinue = false;
}
else {
result = "You lose";
isGoodToContinue = true;
}
}
我假设你希望在“赢”的情况下结束游戏,在“输”的情况下继续游戏。假设代码可以像下面这样修改
boolean isGoodToContinue = true;
while (isGoodToContinue) {
String result = " ", symbola = " ", symbolb = " ";
Scanner s = new Scanner(System.in);
// prompt user
System.out.print("Scissor (0), rock (1), paper (2): ");
// read user choice
int choice = s.nextInt();
// Create random class object
Random random = new Random();
// Generate a random number from 0, 1, 2
int pick = random.nextInt(3);
if (choice == pick)
result = "It is a draw";
else {
if (((choice == 0) && (pick == 2)) || ((choice == 1) && (pick == 0))
|| ((choice == 2) && (pick == 1))) {
result = "You won";
isGoodToContinue = false;
}
else {
result = "You lose";
isGoodToContinue = true;
}
}
你可以试试下面我的解决方案。我还包括检查无效输入。我还简化了对结果的检查
//import Scanner Class
import java.util.Random;
import java.util.Scanner;
public class JavaMidterm {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// Create random class object
Random random = new Random();
String[] choices = new String[] { "Scissor", "Rock", "Paper" };
int choice;
// prompt user
System.out.print("Scissor (0), rock (1), paper (2): ");
while (true) {
try {
String result = "";
// read user choice
choice = Integer.parseInt(s.nextLine());
if (choice < 0 || choice > 2) {
throw new Exception();
}
// Generate a random number from 0, 1, 2
int pick = random.nextInt(3);
if (choice == pick)
result = "It is a draw";
else if (((choice == 0) && (pick == 2)) || ((choice == 1) && (pick == 0))
|| ((choice == 2) && (pick == 1)))
result = "You won";
else
result = "You lose";
System.out.println("The computer is " + choices[pick] + ". You are " + choices[choice] + ". " + result);
System.out.print("Do you want to play again? Yes (0), No (1): ");
while (true) {
try {
// read user choice
choice = Integer.parseInt(s.nextLine());
if (choice < 0 || choice > 1) {
throw new Exception();
}
if (choice == 0)
System.out.print("Scissor (0), rock (1), paper (2): ");
break;
} catch (Exception e) {
System.out.println("Invalid input.");
System.out.print("Do you want to play again? Yes (0), No (1): ");
}
}
if (choice == 1) {
break;
}
} catch (Exception e) {
System.out.println("Invalid input.");
System.out.print("Scissor (0), rock (1), paper (2): ");
}
}
s.close();
}
}
//导入扫描仪类
导入java.util.Random;
导入java.util.Scanner;
期中公开课{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
//创建随机类对象
随机=新随机();
字符串[]选项=新字符串[]{“剪刀”、“石头”、“纸”};
智力选择;
//提示用户
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
while(true){
试一试{
字符串结果=”;
//阅读用户选择
choice=Integer.parseInt(s.nextLine());
如果(选项<0 | |选项>2){
抛出新异常();
}
//从0、1、2生成一个随机数
int pick=random.nextInt(3);
如果(选项==拾取)
结果=“这是一场平局”;
如果((choice==0)和&(pick==2))| |((choice==1)和&(pick==0))
||((选择==2)和&(选择==1)))
结果=“你赢了”;
其他的
结果=“你输了”;
System.out.println(“计算机是“+choices[pick]+”。您是“+choices[choice]+”+结果);
System.out.print(“是否要再次播放?是(0),否(1):”;
while(true){
试一试{
//阅读用户选择
choice=Integer.parseInt(s.nextLine());
如果(选项<0 | |选项>1){
抛出新异常();
}
如果(选项==0)
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
打破
}捕获(例外e){
System.out.println(“无效输入”);
System.out.print(“是否要再次播放?是(0),否(1):”;
}
}
如果(选项==1){
打破
}
}捕获(例外e){
System.out.println(“无效输入”);
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
}
}
s、 close();
}
}
您可以尝试下面的解决方案。我还包括检查无效输入。我还简化了对结果的检查
//import Scanner Class
import java.util.Random;
import java.util.Scanner;
public class JavaMidterm {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// Create random class object
Random random = new Random();
String[] choices = new String[] { "Scissor", "Rock", "Paper" };
int choice;
// prompt user
System.out.print("Scissor (0), rock (1), paper (2): ");
while (true) {
try {
String result = "";
// read user choice
choice = Integer.parseInt(s.nextLine());
if (choice < 0 || choice > 2) {
throw new Exception();
}
// Generate a random number from 0, 1, 2
int pick = random.nextInt(3);
if (choice == pick)
result = "It is a draw";
else if (((choice == 0) && (pick == 2)) || ((choice == 1) && (pick == 0))
|| ((choice == 2) && (pick == 1)))
result = "You won";
else
result = "You lose";
System.out.println("The computer is " + choices[pick] + ". You are " + choices[choice] + ". " + result);
System.out.print("Do you want to play again? Yes (0), No (1): ");
while (true) {
try {
// read user choice
choice = Integer.parseInt(s.nextLine());
if (choice < 0 || choice > 1) {
throw new Exception();
}
if (choice == 0)
System.out.print("Scissor (0), rock (1), paper (2): ");
break;
} catch (Exception e) {
System.out.println("Invalid input.");
System.out.print("Do you want to play again? Yes (0), No (1): ");
}
}
if (choice == 1) {
break;
}
} catch (Exception e) {
System.out.println("Invalid input.");
System.out.print("Scissor (0), rock (1), paper (2): ");
}
}
s.close();
}
}
//导入扫描仪类
导入java.util.Random;
导入java.util.Scanner;
期中公开课{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
//创建随机类对象
随机=新随机();
字符串[]选项=新字符串[]{“剪刀”、“石头”、“纸”};
智力选择;
//提示用户
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
while(true){
试一试{
字符串结果=”;
//阅读用户选择
choice=Integer.parseInt(s.nextLine());
如果(选项<0 | |选项>2){
抛出新异常();
}
//从0、1、2生成一个随机数
int pick=random.nextInt(3);
如果(选项==拾取)
结果=“这是一场平局”;
如果((choice==0)和&(pick==2))| |((choice==1)和&(pick==0))
||((选择==2)和&(选择==1)))
结果=“你赢了”;
其他的
结果=“你输了”;
System.out.println(“计算机是“+choices[pick]+”。您是“+choices[choice]+”+结果);
System.out.print(“是否要再次播放?是(0),否(1):”;
while(true){
试一试{
//阅读用户选择
choice=Integer.parseInt(s.nextLine());
如果(选项<0 | |选项>1){
抛出新异常();
}
如果(选项==0)
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
打破
}捕获(例外e){
System.out.println(“无效输入”);
System.out.print(“是否要再次播放?是(0),否(1):”;
}
}
如果(选项==1){
打破
}
}捕获(例外e){
System.out.println(“无效输入”);
系统输出打印(“剪刀(0)、石头(1)、纸张(2):”;
}
}
s、 close();
}
}