저는 Java에 익숙하지 않고 콘솔에서 실행되는 작은 게임을 만들고 있습니다. 누군가가 다시 게임을하고 싶다면이 방법을 호출해야합니다.Java를 변수로 해석 할 수 없거나 인수 (부울 값)에 적용 할 수 없음
printGrid(A1, A2, A3, B1, B2, B3, C1, C2, C3);
나는 아래이 시도 (턴 newGame 글로벌 변수로 선언되는 경우 :
private static void xWins(boolean turn, boolean newGame) {
String playerChoice;
System.out.println("Player X Wins!");
System.out.println("|Would you like to play again? |");
System.out.println("|Enter Y or N |");
playerChoice = enterChoice(turn);
switch(playerChoice){
case "n": thankYou();break;
case "N": thankYou();break;
case "no": thankYou(); break;
case "No": thankYou();break;
case "NO": thankYou();break;
case "nO": thankYou();break;
default: turn = true; newGame = true;
}
}
나는 그것이 메인 루프에두고 진행되는이 함께 작동하도록 노력
if (newGame == true) printGrid(A1, A2, A3, B1, B2, B3, C1, C2, C3);
이클립스에서 무엇입니까 오류 메시지가
입니다그렇지 않으면 클래스 끝에 대신 printGrid
을 직접 호출하려고하면 이러한 전역 적으로 정의 된 변수 각각을 변수로 확인할 수 없다는 메시지가 나타납니다. 이것을 공용 클래스로 만드는 것은 아무런 효과가 없습니다. 비슷한 대답을 StackOverflow에서 본 후에도 나는 아직도 우둔합니다.
어떻게'xWins'를 호출합니까? – Maroun
오류 메시지는 호출 할 때 메소드가 * 두 * 부울 인수를받을 것으로 예상하지만 사용자에게 하나만주고 있다고 알려줍니다. Java에서 메서드 인수는 선택 사항이 아니므로 서명에 필요하다면 반드시 제공해야합니다. – JonK
왜 스위치 케이스를 사용합니까? 간단한 if/else 문이 훨씬 쉬울 것입니다. 또한 String.equalsIgnoreCase()를 살펴보십시오. 모든 case 문을 'if (playerChoice.equalsIgnoreCase ("n") || playerChocie.equalsIgnoreCase ("no")) {...}'와 같은 하나의 명령문으로 대체 할 수 있습니다. 'turn = true' 및'newGame = true' 문은 else 블록에 들어갑니다. – DerStrom8