如何在 Java 中创建剪刀石头布模拟器
How to create a Rock, Paper, Scissor simulator in Java
各位开发者我想问一下如何制作剪刀石头布模拟器;-)
这是下面的剪刀石头布算法。
如果您想使用图形用户界面进行开发,则必须了解 java applet 仅支持 JDK 版本 8 或更低版本或 java 中的 swings。
第 1 步:要求用户输入他们的移动。
首先,我们导入 Scanner class 以帮助我们从用户那里获取输入,方法是将 import java.util.Scanner 添加到我们程序的顶部。
然后,我们创建 Scanner 变量。
接下来,我们打印一条消息,要求用户使用 System.out.print() 输入石头、布或剪刀。
我们将他们的输入存储在一个名为 myMove 的字符串中。
第 2 步:检查用户是否输入了有效着法。
使用条件判断 myMove 是否等于石头、布或剪刀。如果它不等于石头、布或剪刀,那么我们可以向用户打印一条消息,说明他们的移动无效!
第三步:随机生成对手的走法。
为了随机生成对手的着法,我们可以使用Math.random()。 Math.random()只生成0到1之间的小数,包括0不包括1。但是,由于剪刀石头布有3种可能的走法,所以我们需要3个可能的随机数!我们该怎么做?
提示:我们可以使用Math.random() * 3生成一个0到3之间的随机数,包括0不包括3。然后我们可以将这个值转换为一个int,这样我们的随机数只包括 0、1 和 2 – 中间没有小数。
现在我们需要将我们的随机数(可以是 0、1 或 2)转换为字符串 opponentMove,它可以是石头、布或剪刀。
提示:使用条件句进行如下检查:如果随机数为0,则对手的着法为rock;如果随机数是1,那么对手的着法就是纸;如果随机数是2,那么对方的着法就是剪刀
第 4 步:使用条件判断您是赢了、输了还是平手。
我们先看看是不是平局。如果对方的着法与你的着法相同,则平手。
提示:我们可以使用.equals() 来检查两个字符串之间的相等性。如果 myMove 等于 opticalMove,则平局。
我们现在可以进入 else if 并检查用户是否赢了。让我们来看看用户获胜的所有可能情况:用户有石头,对手有剪刀,用户有剪刀,对手有布,或者用户有布,对手有石头。
提示:
我们可以使用&&和||做一个巨大的 if 语句!
让我们将刚才所说的翻译成代码:if (myMove equals rock and opponentMove equals scissors) or (myMove equals scissors and opticalMove equals paper) or (myMove equals paper and opponentMove equals rock), 然后打印用户赢了。否则,我们可以打印用户丢失。
第 5 步:使用循环继续询问用户的移动。
我们想不断要求用户输入他们的着法。我们该怎么做?
提示:我们可以把我们所有的代码都用来询问用户他们的走法,检查他们是否输入了有效的走法,随机生成对手的走法,并弄清楚用户是赢了,平了,还是输了while(true) 循环。
但现在我们的游戏将运行永远!我们如何让 while 循环停止?
为了让 while(true) 循环停止,我们需要在循环体中加入一个 break 语句。我们可以询问用户是否要退出游戏。
第 6 步:检查用户是否要退出。
在我们要求用户移动的打印语句中,如果他们想结束游戏,我们也可以要求他们键入 quit。
在我们的 while 循环中,让我们使用 if 语句来检查用户是否输入了退出。
如果用户确实键入了 quit,我们可以使用 break 语句退出 while 循环。
源代码:
导入 java.util.Scanner;
class主要{
public static void main(String[] args) {
//Initialize the Scanner and print a welcome message
Scanner in = new Scanner(System.in); System.out.println("Welcome to Rock, Paper, Scissors!");
//Use a while(true) loop and only break the loop if the user wants to quit
while(true) {
//Get the user's move through user input
System.out.print("What is your move? To make a move, enter rock, paper, or scissors. To quit the game, enter quit. ");
String myMove = in.nextLine();
//Check if the user wants to quit the game
if(myMove.equals("quit")) {
break;
}
//Check if the user's move is valid (rock, paper, or scissors)
if(!myMove.equals("rock") && !myMove.equals("paper") && !myMove.equals("scissors")) {
System.out.println("Your move isn't valid!");
} else {
//Get a random number in between 0 and 3 and convert it to an integer so that the possibilities are 0, 1, or 2
int rand = (int)(Math.random()*3);
//Convert the random number to a string using conditionals and print the opponent's move
String opponentMove = "";
if(rand == 0) {
opponentMove = "rock";
} else if(rand == 1) {
opponentMove = "paper";
} else {
opponentMove = "scissors";
}
System.out.println("Opponent move: " + opponentMove);
//Print the results of the game: tie, lose, win
if(myMove.equals(opponentMove)) {
System.out.println("It's a tie!");
} else if((myMove.equals("rock") && opponentMove.equals("scissors")) || (myMove.equals("scissors") && opponentMove.equals("paper")) || (myMove.equals("paper") && opponentMove.equals("rock"))) {
System.out.println("You won!");
} else {
System.out.println("You lost!");
}
}
}
//Print a final message for the user
System.out.println("Thanks for playing Rock, Paper, Scissors!");
}
}
各位开发者我想问一下如何制作剪刀石头布模拟器;-)
这是下面的剪刀石头布算法。 如果您想使用图形用户界面进行开发,则必须了解 java applet 仅支持 JDK 版本 8 或更低版本或 java 中的 swings。 第 1 步:要求用户输入他们的移动。
首先,我们导入 Scanner class 以帮助我们从用户那里获取输入,方法是将 import java.util.Scanner 添加到我们程序的顶部。 然后,我们创建 Scanner 变量。 接下来,我们打印一条消息,要求用户使用 System.out.print() 输入石头、布或剪刀。 我们将他们的输入存储在一个名为 myMove 的字符串中。 第 2 步:检查用户是否输入了有效着法。
使用条件判断 myMove 是否等于石头、布或剪刀。如果它不等于石头、布或剪刀,那么我们可以向用户打印一条消息,说明他们的移动无效!
第三步:随机生成对手的走法。
为了随机生成对手的着法,我们可以使用Math.random()。 Math.random()只生成0到1之间的小数,包括0不包括1。但是,由于剪刀石头布有3种可能的走法,所以我们需要3个可能的随机数!我们该怎么做?
提示:我们可以使用Math.random() * 3生成一个0到3之间的随机数,包括0不包括3。然后我们可以将这个值转换为一个int,这样我们的随机数只包括 0、1 和 2 – 中间没有小数。
现在我们需要将我们的随机数(可以是 0、1 或 2)转换为字符串 opponentMove,它可以是石头、布或剪刀。
提示:使用条件句进行如下检查:如果随机数为0,则对手的着法为rock;如果随机数是1,那么对手的着法就是纸;如果随机数是2,那么对方的着法就是剪刀
第 4 步:使用条件判断您是赢了、输了还是平手。
我们先看看是不是平局。如果对方的着法与你的着法相同,则平手。
提示:我们可以使用.equals() 来检查两个字符串之间的相等性。如果 myMove 等于 opticalMove,则平局。
我们现在可以进入 else if 并检查用户是否赢了。让我们来看看用户获胜的所有可能情况:用户有石头,对手有剪刀,用户有剪刀,对手有布,或者用户有布,对手有石头。
提示:
我们可以使用&&和||做一个巨大的 if 语句! 让我们将刚才所说的翻译成代码:if (myMove equals rock and opponentMove equals scissors) or (myMove equals scissors and opticalMove equals paper) or (myMove equals paper and opponentMove equals rock), 然后打印用户赢了。否则,我们可以打印用户丢失。 第 5 步:使用循环继续询问用户的移动。
我们想不断要求用户输入他们的着法。我们该怎么做?
提示:我们可以把我们所有的代码都用来询问用户他们的走法,检查他们是否输入了有效的走法,随机生成对手的走法,并弄清楚用户是赢了,平了,还是输了while(true) 循环。
但现在我们的游戏将运行永远!我们如何让 while 循环停止?
为了让 while(true) 循环停止,我们需要在循环体中加入一个 break 语句。我们可以询问用户是否要退出游戏。
第 6 步:检查用户是否要退出。
在我们要求用户移动的打印语句中,如果他们想结束游戏,我们也可以要求他们键入 quit。 在我们的 while 循环中,让我们使用 if 语句来检查用户是否输入了退出。 如果用户确实键入了 quit,我们可以使用 break 语句退出 while 循环。
源代码: 导入 java.util.Scanner;
class主要{ public static void main(String[] args) {
//Initialize the Scanner and print a welcome message
Scanner in = new Scanner(System.in); System.out.println("Welcome to Rock, Paper, Scissors!");
//Use a while(true) loop and only break the loop if the user wants to quit
while(true) {
//Get the user's move through user input
System.out.print("What is your move? To make a move, enter rock, paper, or scissors. To quit the game, enter quit. ");
String myMove = in.nextLine();
//Check if the user wants to quit the game
if(myMove.equals("quit")) {
break;
}
//Check if the user's move is valid (rock, paper, or scissors)
if(!myMove.equals("rock") && !myMove.equals("paper") && !myMove.equals("scissors")) {
System.out.println("Your move isn't valid!");
} else {
//Get a random number in between 0 and 3 and convert it to an integer so that the possibilities are 0, 1, or 2
int rand = (int)(Math.random()*3);
//Convert the random number to a string using conditionals and print the opponent's move
String opponentMove = "";
if(rand == 0) {
opponentMove = "rock";
} else if(rand == 1) {
opponentMove = "paper";
} else {
opponentMove = "scissors";
}
System.out.println("Opponent move: " + opponentMove);
//Print the results of the game: tie, lose, win
if(myMove.equals(opponentMove)) {
System.out.println("It's a tie!");
} else if((myMove.equals("rock") && opponentMove.equals("scissors")) || (myMove.equals("scissors") && opponentMove.equals("paper")) || (myMove.equals("paper") && opponentMove.equals("rock"))) {
System.out.println("You won!");
} else {
System.out.println("You lost!");
}
}
}
//Print a final message for the user
System.out.println("Thanks for playing Rock, Paper, Scissors!");
} }