2014-02-07 56 views
0

我不是那種經驗豐富的Java,我在這裏遇到了一個大問題。基本上,我必須做的是創建一個井字遊戲。所以我在我的代碼中的一個點上,使用其中的構造函數從Cell.java文件中爲遊戲創建了9個單元。這些單元格的類型是Cell,它是對象。我想要對他們做什麼,以便程序可以進步,比較每個單元格中的值與給定的值,比如1表示X或2表示O,這樣我就可以知道誰贏了,每次移動的位置等等...。我遇到的問題是我不知道如何獲取每個單元格的內容,因爲如果我沒有得到它,編譯器會拋出一個關於無法比較的類型Cell和int的錯誤。有沒有辦法獲得每個單元格的內容?Java無與倫比的類型

細胞構造:

public Cell(int rows, int cols){ 
     row = rows; 
     col = cols; 
    } 

我用它來創建的孔中的構造器:

Cell[][] cells = new Cell[rows][cols]; 
    public Board(){ 

     for (int i = 0; i < rows; i++) { 
      for (int j = 0; j < cols; j++) { 
       cells[rows][cols] = new Cell(rows, cols); 
      } 
     } 
    } 

什麼不工作是當我試圖使這種比較,例如:

if(cells[currRow][0] == Player && cells[currRow][1] == Player && cells[currRow][2] == Player) 
+2

在這裏發表您的代碼 – Baby

+0

剛剛發佈我的代碼! – user3083578

+0

爲什麼不使用數組索引作爲行/列索引?只需在單元格中存儲字符串(O或X)。 – Drogba

回答

0

您需要爲Cell類添加一個專用字段,然後返回該字段並設置f ield:

public class Cell { 
    private int value; 
    private int col; 
    private int row; 

    public Cell(int rows, int cols) { 
     value = 0; 
     row = rows; 
     col = cols; 
    } 

    public int getValue() { 
     return value; 
    } 

    public void setValue(int v) { 
     value = v; 
    } 

    public int getRow() ... 
    public int getCol() ... 
} 

這樣你可以只是讓使用Cell.getValue檢查()

+0

哦,他更新了他的問題,我會適應這個 – lightandlight

+0

也許一個具有值X,O和BLANK的Enum可能是'value'類型的一個很好的候選者。 –

+0

我知道一個肯定會起作用的解決方案是使用枚舉,但枚舉並不是我從今天開始教的內容。 – user3083578