JAVA:我怎么能用我的代码玩井字游戏

时间:2017-06-29 19:19:57

标签: java tic-tac-toe

我正在尝试创建一个简单的井字游戏模拟,其中2个玩家可以玩,直到其中一个获胜或者棋盘已满。到目前为止,我已经完成了一个简单的结构。 我需要一些模拟它的帮助。 (P.S.我是一个菜鸟,所以请体谅)

public class tictactoe {

    public static void main(String[] args) {
         int[][] board = new int[3][3];
         Random r = new Random(12);
         for (int row = 0; row < board.length; row++) {
             for (int col = 0; col < board[row].length; col++) {
                 board[row][col]= r.nextInt(3);
             }
         } 
         PrintBoard(board);
        boolean xwinner =  CheckWin(1,board);
        boolean owinner =  CheckWin(2,board);
        System.out.println(xwinner + "-" + owinner);
    }
    public static boolean CheckWin(int player ,int[][] inboard){
         int PCNT;
         for (int row = 0; row < inboard.length; row++) {
            PCNT = 0;
             for (int col = 0; col < inboard[row].length; col++) {
              if (inboard[row][col]== player) { PCNT++;}
             }
            if (PCNT==3) {return true;}
         }   
        return false;
    }
    public static void PrintBoard(int[][] inboard){
        String letter="";
         for (int row = 0; row < inboard.length; row++) {
             for (int col = 0; col < inboard[row].length; col++) {
                switch(inboard[row][col]) {
                case 0: letter= " "; break;
                case 1: letter= "X"; break;
                case 2: letter= "O"; break;
                }
                System.out.print(letter + " "); 
             }
             System.out.println("");
         } 
    }

}

1 个答案:

答案 0 :(得分:1)

除了例如国际象棋,TTT是一种有限的游戏。换句话说,它非常简单,您不需要实施策略。让我们简单地计算字段,例如“1”是最左边和最顶部的字段,“5”是中心字段。您现在可以进一步简化规则,因为“1”,“3”,“7”和“9”是角落字段,而“2”,“4”,“6”,“8”是边缘字段, “5”是中心场。从角落场的角度来看,可能只有5种不同的移动:相邻边缘场,属于同一边缘的角落场,不属于同一边缘的边缘场,跨越角落场和中心场。说“1”是角落区域,然后提到的字段将是“2”,“3”,“6”,“5”和“9”。其他一切都是纯粹的对称性,就像数学上的简单方形一样。

对于所有其他人来说,周围有很多来源,只是google的“tic tac toe strategy”。

如需更精细地编写游戏,请尝试“Othello”/“Reversi”;)