2015-04-01 254 views
-5

該任務是使用二維數組創建一個井字遊戲。我在下面創建了遊戲板,但現在我遇到的問題是讓用戶將X和O放在棋盤上。我必須使用一個二維數組來表示我的棋盤。我怎樣才能修改這些值,以便我能夠做到像下面這樣的事情?井字遊戲Java

所以這

1 | 2 | 3 
---------- 
4 | 5 | 6 
---------- 
7 | 8 | 9 

能成爲這樣的事情

X | X | O 
---------- 
4 | 5 | 6 
---------- 
O | 8 | 9 

從本質上講,我所做的板,我怎麼讓這個人能玩什麼呢? 謝謝。

public class TicTacToe 
{ 
    public static void main(String args[]) 
    { 
     int [][]board = new int[3][3]; 

     int row =0; 
     int column =0; 
     int i=1; 
     for (row=0;row<board.length; row++) 
     { 
      for(column=0;column<board[row].length;column++) 
      { 
       board[row][column]= i; 
       i++; 
       System.out.print (" "+(board[row][column])+" "); 
      } 

      System.out.println(); 
     } 
    } 
} 
+3

請在下次發佈問題之前多付出一點努力。 – Keppil 2015-04-01 18:57:29

+0

你可能需要另外一個二維數組,這個數組對於X和O而言是String類型的 – ryekayo 2015-04-01 18:57:44

+1

你可以用三個不同的數字來填充數組:'0'爲空,'1'爲'O'和'2 '爲'X'。只是一個想法。在迭代數組時,您可以檢查該值並打印相符的字符。 – pzaenger 2015-04-01 18:58:55

回答

0

您可能最好使用一個ArrayList,其中包含表示字母的對象以及放置它的座標。這是一個打包的表示,它可能對你試圖實現的遊戲更好。不要認爲直覺表示對你的需求更好。無論如何,如果你真的想要使用二維數組,爲什麼不使用二維數組的字符?

+0

這是很好的建議,但不是他的任務要做的事情。 – Bill 2015-04-01 19:01:54

+0

@帳單分配不應阻止找到更好的解決方案。如果你看看國際象棋棋盤如何被迫,你會更好地理解爲什麼直覺選手是最糟糕的。 – 2015-04-01 19:02:42

+0

我希望那是普遍真實的。 :-) – Bill 2015-04-01 19:04:37

0

我絕對不能給你一個解決方案,因爲這似乎是作業,這個作業看起來是正確的軌道上沒有完全解決。然而,你應該聽你的評論員,同時把你的頭撞在這面牆上,因爲他們已經在一個非常有用的方向上引導你。

我想你一旦找出數據結構(即可能使用帶有編碼整數的數組)的最大障礙,就是如何讓用戶與該程序進行交互。他們會輸入一個與單元格相對應的數字嗎?如果是這種情況,我建議您考慮如何查找數組中的值,並確定屏幕上的數字如何與此過程相對應。一旦你有了這個,用X和OS填充你的板子將是一件小事。

當你覺得你已經死了幾個死角後回來。但是我認爲在這種情況發生之前,你會發現這一點。

祝你好運!