我必须创建一个跳棋棋盘游戏,并且我有 4 个类:
- Cell(用于表示一个空单元格,它返回一个 toString“.”)
- White(代表白色单元格,返回toString "W")
- Black(代表黑色单元格,返回toString "B")
- 西洋跳棋(设置棋盘 (Cell[8][8]) 并对其进行初始化。
我在调用由字母 .,W,B
表示的空白、白色和黑色单元格时遇到问题。我在代码上还有更多工作要做,但我只需要调用这些方法方面的帮助
单元格、Black 和 WHite 类如下所示:
public class Cell {
public static final String EMPTY=".";
int i;
int j;
String value;
public Cell(int i, int j){
this.i = i;
this.j = j;
value = EMPTY;
}
public String toString(){
return value;
}
}
在 Checkers 类中,我有这些方法:我只是不知道如何从其他类中调用这些方法,所以我只是创建了另一个 char 数组并将这些值放入其中。我知道我必须在这方面做更多的工作。
/*********initialization******/
public void init(){
board = new Cell[8][8];
char[][] a =
{
getEmptyWhite("EW"),
getEmptyWhite("WE"),
getEmptyWhite("EW"),
getEmptyWhite("EE"),
getEmptyWhite("EE"),
getEmptyWhite("BE"),
getEmptyWhite("EB"),
getEmptyWhite("BE")
};
for(int i = 0; i<8; i++){
for(int j=0; j<8; j++){
System.out.print(a[i][j]);
}
System.out.println();
}
}
public char[] getEmptyWhite(String a){
Cell empty;
Black black;
White white;
if(a.equals(empty)){
char[] emptyWhite = {'E','E','E','E','E','E','E','E'};
return emptyWhite;
}
else if(a.equals("EW")){
char[] emptyWhite = {'E','W','E','W','E','W','E','W'};
return emptyWhite;
}
else if(a.equals("EB")){
char[] emptyWhite = {'E','B','E','B','E','B','E','B'};
return emptyWhite;
} else if(a.equals("WE")){
char[] emptyWhite = {'W','E','W','E','W','E','W','E'};
return emptyWhite;
} else if(a.equals("BE")){
char[] emptyWhite = {'B','E','B','E','B','E','B','E'};
return emptyWhite;
}
return null;
}
/*********initialization ended*******/
最佳答案
在 getEmptyWhite
中,这行看起来像:
if(a.equals(empty)){
你应该使用这个:
if(a.equals("EE")){
请注意,在您发布的代码中,empty
是 Cell
类型的变量,其值为 null
。因此,a.equals(empty)
将始终为 false
。此外,您实际上并不需要局部变量 empty
、black
和 white
。
关于java - 从其他未连接的类接收特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979989/