检查二维网格中的相邻点

时间:2017-03-10 00:54:33

标签: java

我目前正在使用模型 - 视图 - 控制器设计模式开发一个简单的游戏(Flood-It)。

我有一段代码,它接受给定点的(x,y)坐标并检查严格相邻点中的某个布尔值,即直接向上,向下,向左,向右,如果布尔值为真,则用所述点执行某些操作。

使用if语句的充分实现:

if (point(x-1, y).getBoolean()) { // Left
      point(x-1,y).set(args);
      Stack.push(point(x-1,y);
}
if (point(x+1, y).getBoolean()) { // Right
      //...
}
if (point(x, y-1).getBoolean()) { // Down
      //...
}
if (point(x, y+1).getBoolean()) { // Up
      //...
}

我想知道是否有更严格的方法来做到这一点。即使它只是4,如果声明它是多余的。我已经尝试了for循环迭代,但没有一个比if语句更有效。

以下是条件:

  • 只检查直接相邻的点,没有对角线而不是自己的点。
  • 仅当点对象getter返回true时才执行操作(set方法,add to stack)。
  • 布朗尼指出如果排除不必要的检查(即选择的右上方只检查下方和左侧)。假设每个轴的方格为0到int size

提前致谢。

0 个答案:

没有答案