我正在制作一个名为“伯爵21”的节目。应该如何运作,“两个人轮流输入1,2或3,玩21号游戏,这是 添加到运行总计。添加使总数超过的值的玩家 21输掉比赛。创建一个计数21的游戏,其中一个玩家与该游戏竞争 计算机,并编写一个始终允许计算机获胜的策略。任何 转,如果玩家输入的值不是1,2或3,则强制玩家重新输入 值。” 我无法弄清楚我应该怎么做,这是我到目前为止所做的:
import javax.swing.JOptionPane;
import java.util.Scanner;
public class Count21 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x; //running total
int y; //input num
String strInput = "";
String message = "";
String answer = "";
do {
strInput = JOptionPane.showInputDialog(null, "Welcome to Count 21. \n In this game you will play against "
+ "the computer and add the numbers 1, 2, or 3 together. \n Whoever pushes the "
+ "numbers over 21 loses. \n Do you want to add 1, 2, or 3? "
+ "(please enter the number you choose.");
y = Integer.parseInt(strInput);
x++;
if (y == 1) {JOptionPane.showMessageDialog(null, "You chose the number 1."
+ " 1 will be added to the running total of" + (x + 1) +" .");
}
else if (y == 2) {JOptionPane.showMessageDialog (null, "You chose the number 2."
+ "2 will be added to the running total of" + (x + 2) + " .");
}
else if (y == 3) {JOptionPane.showMessageDialog (null, "You chose the number 3."
+ "3 will be added to the running total of" + (x + 3) + " .");
}
else{
JOptionPane.showMessageDialog(null, "You didn't type a valid number, please try again. \n");
}
} while (x > 21);
}
}
程序运行后,用户输入他们选择的号码,程序结束。这就是我到目前为止所做的一切,但我仍然坚持如何保持用户添加的数量直到它达到21.我还不确定如何让计算机赢得游戏。我想我应该使用for循环? 非常感谢任何建议或意见。如果我的代码或问题不清楚,我会道歉。
答案 0 :(得分:0)
正如评论中所建议的那样,每次输入值时,您不应该将x
递增1。这也会导致进一步的问题,因为当输入无效数字时,它仍然会增加。相反,您应该检查y
的值,然后在条件逻辑(IF语句)中添加适当的金额。这也应该简化逻辑中包含的输出消息,因为打印时不需要向x添加任何内容。
同样,如评论中所述,while条件应为x < 21
。