我正在编写一个代码,根据原始颜色,将数组单元格的颜色更改为黑色或白色。如果单元格为白色,则变为黑色,反之亦然。我正在使用以下代码:
public class Grid {
boolean[][] grid;
private int Height;
private int Width;
public White;
public Black;
public Grid(int height, int width) {
Height = height;
Width = width;
}
public int getHeight() {
return Height;
}
public int getWidth() {
return Width;
}
public boolean isWhite(int i, int j) {
boolean [][] Grid = new boolean [Height][Width];
for ( i = 0; i<Height ; i++);{
for (j = 0; j<Width ; j++){
if (Grid[i][j] ?? //iswhite) {
??//setBlack
}
else (??)//setWhite
}
}
}}
protected void setWhite(int i, int j) {
??
}
protected void setBlack(int i, int j) {
??
}
}
我相信我应该根据布尔值为Grid [i] [j]创建一个实例但是我不确定如何将'public boolean isWhite'与'setWhite'和'setBlack'实际关联起来。我应该怎么做呢?
答案 0 :(得分:0)
1)您应该在构造函数中初始化数组。由于它是一个基元数组,因此在每个位置都默认为false。如果这不是您想要的,请根据需要设置为true。
2)isWhite,从名称来看,应该只返回给定指数的值。
3)对于set方法,假设false == black,只需将适当位置的值设置为true或false,具体取决于您是想要白色还是黑色。
答案 1 :(得分:0)
您已将boolean grid[][]
定义为类变量。您需要在构造函数中使用grid = new boolean[height][width];
的内容进行设置。我建议初始化所有值,只是为了理智。 (即将它们全部设置为true或false或某些预定义模式。)
完成后,您可以检查grid[i][j]
的值,该值为true或false。 (无论你希望代表哪种黑白色。)
例如,你的isWhite函数就这么简单(假设white == true)
public boolean isWhite(int i, int j) {
return grid[i][j];
}
同样,set函数也相对最小:
void setWhite(int i, int j) {
grid[i][j] = true;
}
void setBlack(int i, int j) {
grid[i][j] = false;
}
其他: 您可能希望创建一些代码,在翻转颜色时执行相应的操作,而不是将其放在isWhite函数中。 (它应该测试颜色,而不是改变值,对吗?)
void changeColorAtYX(int y, int x){
if(isWhite(y, x)){
setBlack(y, x);
} else {
setWhite(y,x);
}
}