최근에 고등 및 저급 게임에 대한 질문을 올렸습니다. 모든 곳에서 작동하지 않았고,이 게임에서 또 다른 접근 방식을 취했습니다. 그것은 단지 사소한 문제로,이 시간을 일하고, 그렇게 설명보다 보여주기 위해 쉽게, 여기 내 코드입니다 :내 루프를 고정하고 입력 검사기에 대한 도움이 필요합니다. 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 할 수 있도록하려면 (필자는 대문자 또는 대문자 문제를 분류했다.)
읽어 주셔서 감사합니다.
do/while의 각 반복에 대해 사용자로부터 입력을 요청해야하며 게임의 현재 상태와 현재 카드에 따라 수행해야합니다. 당신은 현재 do/do에서 당신이 필요로하지 않는 많은 복잡성을 추가하는 동안 많은 돈을 벌고 있습니다. –
어떻게하면 갈 수 있을까요? @RAZ_Muh_Taz – SeanHub