我正在玩用户玩电脑的TicTacToe游戏。用户总是X而计算机是O.我编写了代码来检查每一行,每列和对角线以查看用户或计算机是否获胜。如果两者都没有那么只是打印错误。如果用户赢得人类玩家赢了,我希望游戏打印出来。或者如果计算机获胜并且计算机赢了#34;我只是不知道如何将它添加到布尔方法中。
-r -n tip
答案 0 :(得分:2)
在人类转向之后,请致电checkWin
。如果它返回true,则打印" human won"消息并结束游戏。
在计算机转动之后,请致电checkWin
。如果它返回true,则打印"计算机赢了"消息并结束游戏。
如果发生了9次移动并且checkWin
没有返回true,那么游戏就是平局。
答案 1 :(得分:1)
一般的经验法则是每种方法都应该做一件事并且做得好。在这种情况下,checkWin()
正如其名称所暗示的那样:它检查人或计算机是否赢了。如果您添加代码来打印消息,那么它应该是真实的,然后它应该被称为checkWinAndPrintWinner()
。现在很明显,你正试图在函数中做两件事。相反,您应该编写另一个名为printWinner()
的方法,该方法调用checkWin()
,然后打印相应的消息。
答案 2 :(得分:1)
虽然我同意其他答案,说方法应该做一件事,如果你想这样做,你可以创建一个类,结果
public class Result{
boolean win;
String message;
}
并返回Result而不是boolean
public static Result checkWin()
{
Result result = new Result();
if ("X".equals(board[0][0]) && "X".equals(board[0][1]) && "X".equals(board[0][2])){
result.win = true;
result.messsage = "Computer won";
}
...
return result;
}