2017-06-29 64 views
-4

我正在嘗試創建一個簡單的井字遊戲模擬,其中2個玩家可以玩,直到他們中的一個勝出或棋盤滿了。到目前爲止,我已經完成了一個簡單的結構。 我需要一些幫助來模擬它。 (P.S. Im a noob,so please be considerate)JAVA:我如何用我的代碼玩井字遊戲

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(""); 
     } 
    } 

} 
+0

查找到單元測試(JUnit的)創建某種模擬, –

+2

你問什麼問題? – Peri461

+0

問題不明確;請參閱[問],尤其是[爲什麼「有人可以幫助我?」不是一個真正的問題?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

回答

1

除了例如國際象棋,TTT是一款有限的遊戲。換句話說,它很簡單,你不需要實施一個策略。讓我們簡單地計算這些字段,例如「1」是最左邊和最上面的字段,「5」是中心字段。您現在可以更加簡化規則,因爲「1」,「3」,「7」和「9」是角落字段,而「2」,「4」,「6」,「8」是邊緣字段,並且「5」是中心場。從角場的角度來看,可能只有5種不同的運動:相鄰邊緣場,屬於同一邊緣的角場,不屬於同一邊緣的邊緣場,角場相交和中心場。說「1」是角落字段,則提到的字段將是「2」,「3」,「6」,「5」和「9」。其他一切都是純對稱的,就像數學上的簡單方塊。

對於所有其他人來說,周圍有很多來源,只是谷歌的「井字策略」。

對於編碼遊戲更精細的追求,嘗試「奧賽羅」 /「黑白棋」;)