正在修复我的循环,需要输入检查器方面的帮助,Java
因此,最近我发布了一个问题,询问关于我的“高”和“低”游戏,它到处都是,只是不起作用,我在这个游戏中采取了另一种方法,它起作用了,这次只是一个小问题,显示比解释更容易。因此,这是我的代码:
String noReplay = "\nThank you for playing.";
String highLow = "(H)igher or (L)ower: ";
String loseHigh = "Card is higher, you lose. Would you like to play again? Y/N: ";
String loseLow = "Card is lower, you lose. Would you like to play again? Y/N: ";
String playAgain;
boolean replay = false;
Random rand = new Random();
Scanner scan = new Scanner(System.in);
do {
int card1 = rand.nextInt(13) + 1;
int card2 = rand.nextInt(13) + 1;
System.out.println("Card is: " + card1);
System.out.printf(highLow);
String guess = scan.nextLine().toUpperCase();
if(card2 > card1 && guess.equalsIgnoreCase("H")) {
System.out.println("Card is: " + card2);
System.out.printf(highLow);
replay = true;
guess = scan.nextLine().toUpperCase();
}
else if(card2 > card1 && guess.equalsIgnoreCase("L")) {
System.out.println("Card is: " + card2);
System.out.printf(loseHigh);
playAgain = scan.nextLine().toUpperCase();
if(playAgain.equalsIgnoreCase("Y")) {
replay = true;
}
else if(playAgain.equalsIgnoreCase("N")) {
replay = false;
System.out.println(noReplay);
}
}
else if(card2 < card1 && guess.equalsIgnoreCase("H")) {
System.out.println("Card is: " + card2);
System.out.printf(loseLow);
playAgain = scan.nextLine().toUpperCase();
if(playAgain.equalsIgnoreCase("Y")) {
replay = true;
}
if(playAgain.equalsIgnoreCase("N")) {
replay = false;
System.out.println(noReplay);
}
}
else if(card2 < card1 && guess.equalsIgnoreCase("L")) {
System.out.println("Card is: " + card2);
System.out.printf(highLow);
replay = true;
guess = scan.nextLine().toUpperCase();
}
} while(replay != false);
我的项目的目的是创建一个简单的游戏,当用户输入上面的卡号时,程序会给出正确的答案,或者从该阶段重放游戏,或者询问用户是否愿意在失败时再次玩
这很好,但是从我的输出来看:
Card is: 9
(H)igher or (L)ower: h
Card is: 11
(H)igher or (L)ower: l
*Card is: 6*
*(H)igher or (L)ower: l*
*Card is: 7*
Card is higher, you lose. Would you like to play again? Y/N: y
*Card is: 13*
*(H)igher or (L)ower: h*
*Card is: 10*
(H)igher or (L)ower:
我们可以在星条旗上看到,它没有做它应该做的事情。 当我说更高时,如果数字更低,它应该询问我是否愿意再次比赛,因为我搞错了。在这种情况下不是吗
这就是我的问题^
另一件事,当我在它,我想请求与输入检查器的帮助,我只希望用户能够输入Y,N,H,L(我已排序的小写或大写的问题了)
谢谢你的阅读
# 1 楼答案
这应该是有意义的,有助于减少游戏的复杂性。看看我对card1和card2的比较,你想根据card2和card1的比较来猜测,而不是相反。如果这有道理的话。希望这有帮助
这也将确保只有有效的输入,并继续要求输入,直到用户输入正确的字母