假设我有一个类 Square 如下:
class Square{
private String letter;
private boolean isfilled;
}
现在我们知道拼字游戏板上有 15x15 个方块。任何人都可以通过使用棋盘类中的 Square 类来帮助我制作一个拼字游戏板,并检查约束条件,比如左边或右边是否有空间?
假设我有一个类 Square 如下:
class Square{
private String letter;
private boolean isfilled;
}
现在我们知道拼字游戏板上有 15x15 个方块。任何人都可以通过使用棋盘类中的 Square 类来帮助我制作一个拼字游戏板,并检查约束条件,比如左边或右边是否有空间?
我并不完全熟悉 Scrabble 的规则,但鉴于您提到的内容,我将定义一个 Square 实例的二维数组。
private Square squares[][] = new Square[15][15];
您可能应该在构造函数中实例化这些方块。
之后,您应该提供一个接口来设置给定坐标的值。
public void setSquare(int x, int y, String value)
将此字符串设置为指定的正方形。您也可以这样做,如果字符串为空或 null(无论您喜欢哪个),正方形变为“未设置”。如果参数在范围内(在 0 - 14 内),此方法还应验证参数。您还可以选择在另一个函数中实现该验证,例如:
public boolean isValidCoordinate(int x, int y)
因此,您不会遇到超出数组有效索引集范围的太多问题,您可以改为在所有边上使用方形缓冲区定义板。
private Square squares[][] = new Square[17][17];
有了这个棋盘,唯一有效的方格是 1-16。任何带有 1 或 17 的 x 或 y 值都是无效的。
就个人而言,我会简单地使用 Strings 而不是定义一个对象 Squares (如果这是你要做的唯一事情)
private String squares[][] = new String[17][17];
未设置空字符串或空字符串。否则,如果您要在方块中实现任何其他方法,那么我想为它们定义一个类是可以的。