【发布时间】:2020-08-25 08:17:51
【问题描述】:
我正在创建一个具有以下要求的摇滚纸项目:
连续玩石头、纸、剪刀,直到其中一名玩家赢得三轮。此时,程序会输出获胜者以及他们获胜所用的回合数。如果10轮后没有获胜者,则比赛为平局
似乎缺少一些我不太能够理解或注意到的东西。我如何让我的游戏在回合结束后停止并宣布获胜?
注意:不允许使用数组、扫描仪以外的外部库或任何 java 内置方法
这是我的尝试:
import java.util.Scanner;
public class Rockpaper{
public static void main(String[]args){
Scanner keyboard = new Scanner(System.in);
String player1 = keyboard.next();
String player2 = keyboard.next();
String player = "Player1";
int round = 1;
boolean go = true;
boolean win = false;
while(go){
if (player1.equals("r") && player2.equals("p")){
win = true;
}
else if (player1.equals("p") && player2.equals("r")){
win = true;
}
else if (player1.equals("p") && player2.equals("s")){
win = true;
}
else if (player1.equals("s") && player2.equals("p")){
win = true;
}
else if (player1.equals("s") && player2.equals("r")){
win = true;
}
else if (player1.equals("r") && player2.equals("s")){
win = true;
}
else if (player1.equals("r") && player2.equals("r")){
win = false;
}
else if (player1.equals("p") && player2.equals("p")){
win = false;
}
else if (player1.equals("s") && player2.equals("s")){
win = false;
}
if (round < 5){
System.out.println(win+" after "+round+" rounds!");
go = false;
}else{
System.out.println("Tie - No winner after "+round+" rounds!");
}
if (player.equals("Player1"){
Player = "Player2";
}else{
Player = "Player1";
}
}
}
}
我看到的问题是需要有一个单独的变量来计算每个获胜可能性,例如,“win1”将计算 player1 获胜的可能性,而“win2”将计算 player2 获胜的可能性。我不太确定轮数变量最初会开始计算轮数,最多 10 轮,这是最大值。 示例输入/输出:
【问题讨论】:
-
我没有看到你在任何地方使用
keyboard变量 -
你在哪里声明和更新
player1?另外,当有人获胜退出 while 循环时,您能否不只是中断或将go变量设置为 false? -
我没有看到它的需要
-
@user 是的,你可以这样做
-
那么玩家是谁,只是使用随机值的计算机?
标签: java loops if-statement while-loop