簡體   English   中英

Java中的Tic-Tac-Toe

[英]Tic-Tac-Toe in Java

我很難弄清楚如何打印出勝利者是誰。 我應該創建一個單獨的方法來決定是否有人贏了或抽簽? 這是我到目前為止的代碼。 任何幫助是極大的贊賞。

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    String[][] board = {
        {" ", " ", " "},
        {" ", " ", " "},
        {" ", " ", " "}
    };
    boolean done = false;
    int player = 1;
    int row = 0;
    int col = 0;
    while (done != true) {
        System.out.println("Enter the row and column for your next move");
        row = in.nextInt();
        col = in.nextInt();
        if (player == 1) {
            board[row][col] = "X";
            player = 2;
        } else {
            board[row][col] = "O";
            player = 1;
        }
        printBoard(board);

    }

}

public static void printBoard(String[][] boardValues) {
    for (int row = 0; row < 3; row++) {
        for (int col = 0; col < 3; col++) {
            System.out.print("|" + boardValues[row][col] + "|");
        }
        System.out.println();
        System.out.println("-------");
    }
}

正如評論中提到的那樣,你缺少確定某人是否獲勝的所有邏輯。 我個人認為在這種情況下主要是:

print the blank board
while (done is false)
   player makes move
   check for win if true set done to true
   print board

然后基本上你需要一個函數來進行移動,在那里確定它是否是X或O.然后一個方法來檢查一個勝利,這只需要檢查基於上次移動,因為它以前檢查過,或者它可能更容易檢查所有選項。 最后打印更新的板,在循環退出后,您可以打印一條獲勝消息。

我發現這會將程序分解為一個很好的簡單結構。 這個鏈接有一些你可以從中學習的代碼。
http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaGame_TicTacToe.html

祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM