Tic Tac Toe以布尔方法检查获胜者

时间:2017-11-17 19:55:17

标签: java

我正在玩用户玩电脑的TicTacToe游戏。用户总是X而计算机是O.我编写了代码来检查每一行,每列和对角线以查看用户或计算机是否获胜。如果两者都没有那么只是打印错误。如果用户赢得人类玩家赢了,我希望游戏打印出来。或者如果计算机获胜并且计算机赢了#34;我只是不知道如何将它添加到布尔方法中。

-r -n tip

3 个答案:

答案 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;

}