2014-02-07 35 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