【发布时间】:2014-12-09 13:35:27
【问题描述】:
我对 Java 相当陌生,我正在制作一个在控制台中运行的小游戏。 如果有人想再玩,我需要调用这个方法。
printGrid(A1, A2, A3, B1, B2, B3, C1, C2, C3);
我在下面尝试过(其中 turn 和 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);
我在 Eclipse 中收到的错误消息是
The method xWins(boolean, boolean) in the type ticTacToe is not applicable for the arguments (boolean)
否则,如果我尝试在课程结束时直接调用printGrid 而不是newGame = true;,则会收到消息告诉我这些全局定义的变量中的每一个都无法解析为变量。将其设为公共课程也没有什么区别。在 StackOverflow 上寻找类似的答案后,我仍然一无所知。
【问题讨论】:
-
你怎么打电话给
xWins? -
错误消息告诉您,您的方法在调用它时期望接收 两个 布尔参数,但您只给它一个。方法参数在 Java 中不是可选的,如果您的签名需要它,您必须提供它。
-
为什么要使用开关盒?一个简单的 if/else 语句会容易得多。还要查看 String.equalsIgnoreCase()。您可以用一个声明
if (playerChoice.equalsIgnoreCase("n") || playerChocie.equalsIgnoreCase("no")) {...}替换所有案例声明。然后turn = true和newGame = true语句将进入 else 块 -
谢谢,我会尝试使用 if else 语句。
-
@Maroun 没错,我的称呼是错误的。感谢您的帮助。
标签: java eclipse class methods