Java 如何创建一个石头,布,剪刀游戏的方法
我被分配了一个任务,我们必须创建一个石头、布、剪刀游戏。这是一个使用java方法和返回语句的初级编程类。我在编写运行程序所需的所有必要方法w/h return语句时遇到困难。提示如下: 编写一个程序,让用户在电脑上玩石头、布、剪刀的游戏。该程序应按如下方式工作 当程序开始时,将生成1到3范围内的随机数。如果数字是1,那么计算机选择了rock。如果数字是2,则计算机已选择纸张。如果数字是3,那么计算机选择了剪刀。不要显示计算机的选择。 用户在键盘上输入他或她选择的“石头”、“布”或“剪刀”。如果您愿意,可以使用菜单。 将显示计算机的选择。 根据以下规则选择获胜者: 如果一个玩家选择石头,另一个玩家选择剪刀,那么石头赢了。石头砸剪刀。 如果一个玩家选择剪刀,另一个玩家选择布,那么剪刀获胜。剪刀剪纸。 如果一个玩家选择纸,另一个玩家选择石头,那么纸赢了。纸包裹着石头。 如果两名玩家做出相同的选择,则必须再次进行游戏以确定胜利者。确保将程序划分为执行每个主要任务的方法。 我尝试过在方法之外声明许多变量字符串和int。我做了一系列的随机测试。到目前为止,我有两种方法。老实说,我的问题是不知道什么时候使用循环、方法等等。这一切都有点混乱Java 如何创建一个石头,布,剪刀游戏的方法,java,Java,我被分配了一个任务,我们必须创建一个石头、布、剪刀游戏。这是一个使用java方法和返回语句的初级编程类。我在编写运行程序所需的所有必要方法w/h return语句时遇到困难。提示如下: 编写一个程序,让用户在电脑上玩石头、布、剪刀的游戏。该程序应按如下方式工作 当程序开始时,将生成1到3范围内的随机数。如果数字是1,那么计算机选择了rock。如果数字是2,则计算机已选择纸张。如果数字是3,那么计算机选择了剪刀。不要显示计算机的选择。 用户在键盘上输入他或她选择的“石头”、“布”或“剪刀”。如果您
import java.util.Scanner;
import java.util.Random;
public class rockPaperScissors
{
public static int generateComputer(Random rc)
{
int n = rc.nextInt(3) + 1;
return n;
}
public static int playerChoice(Scanner sc)
{
System.out.println("Please enter an integer between 1 and 3: ");
int pc = sc.nextInt();
while(pc < 1 || pc > 3)
{
System.out.println("Please enter an integer between 1 and 3: ");
pc = sc.nextInt();
}
return pc;
}
public static void main(String[] args)
{
int cp;
int po;
Random rc = new Random();
Scanner sc = new Scanner(System.in);
cp = generateComputer(rc);
po = playerChoice(sc);
}
}
我是新手,所以我不知道我在做什么。我想你只需要添加一些if语句来决定是用户赢了,还是计算机赢了,还是平局,然后将结果打印到控制台上。检查下面的代码,然后做一个简短的解释
public class RockPaperScissors {
private static int getComputerRandomChoice() {
Random rc = new Random();
int n = rc.nextInt(3) + 1;
return n;
}
private static int playerChoice() {
System.out.println("== Rock Paper Scissors ==\n" +
"== Rock : 1 ==\n" +
"== Paper : 2 ==\n" +
"== Scissors : 3 ==\n");
Scanner sc = new Scanner(System.in);
int pc = 0;
while(pc<1 ||0 pc>3){
System.out.println("Please make your choice (between 1 and 3):");
String input = sc.nextLine();
try {
pc = Integer.parseInt(input);
}catch (NumberFormatException e){
System.out.println("Invalid input (not an integer)");
}
}
return pc;
}
private static String getWinner(int cp, int po){
if (cp==1){
if (po==1){
return "DRAW";
}else if(po==2){
return "USER";
}else{
return "COMPUTER";
}
}else if (cp==2){
if (po==1){
return "COMPUTER";
}else if(po==2){
return "DRAW";
}else{
return "USER";
}
}else{
if (po==1){
return "USER";
}else if(po==2){
return "COMPUTER";
}else{
return "DRAW";
}
}
}
public static void main(String[] args) {
int cp = getComputerRandomChoice();
int po = playerChoice();
String winner = getWinner(cp, po);
System.out.println("The computer chose: " + cp);
System.out.println("The winner is: " + winner);
}
}
你应该用CamelCase和大写字母RockPaperScissors来命名你的班级
此外,您的方法名称还应该具有某些含义,例如generateComputer与getComputerRandomChoice
您在generateComputer方法之外创建了一个随机对象,而这个随机对象没有在代码的任何其他位置使用,因此我将它放在getComputerRandomChoice方法中,因此该方法的对象仅可见,并在该方法中用于特定目的
对于Scanner,Scanner对象位于playerChoice方法中,因为没有其他地方需要用户输入。对于Scanner,请注意,我已将nextInt更改为nextLine,因为nextInt获取下一个整数,即使用户在5 6中输入空格,下一个int也不会失败,因为它将使用第一个int标记作为输入。使用nextLine,您的代码将读取整行,并在稍后尝试解析为整数“Integer.parseIntinput”
用户输入在while循环中,只有在输入有效输入时,代码才会退出循环
最后,getWinner方法接受2个输入,即计算机的选择、玩家的选择,并使用if-else语句应用游戏的业务逻辑。或者,您可以使用开关。这是否回答了您的问题?