java在二维数组中解决NxN难题
我正在用Java2D数组(int state[][]
)解决一个NxN难题,我被卡住了
我使用的是曼哈顿距离启发法。现在的问题是如何对节点的后续节点进行编码。我在网上看到了很多例子,一个节点的后继节点(邻居)是如何生成的,但它们都是一维数组。我找不到任何教程教生成2D数组中节点的后续节点
如何编写代码以生成节点的后续节点?节点可以向左、向右、向下或向上移动到空白空间。电路板的大小为NxN
这是我第一次使用2D数组来编写类似这些谜题的游戏
你可以在下面搜索框中键入要查询的问题!
我正在用Java2D数组(int state[][]
)解决一个NxN难题,我被卡住了
我使用的是曼哈顿距离启发法。现在的问题是如何对节点的后续节点进行编码。我在网上看到了很多例子,一个节点的后继节点(邻居)是如何生成的,但它们都是一维数组。我找不到任何教程教生成2D数组中节点的后续节点
如何编写代码以生成节点的后续节点?节点可以向左、向右、向下或向上移动到空白空间。电路板的大小为NxN
这是我第一次使用2D数组来编写类似这些谜题的游戏
# 1 楼答案
可能是您定义的代码
您需要分别将它们定义为(i,j-1),(i,j+1),(i-1,j),(i+1,j)
编辑:
在一维数组中,需要展平元素索引。如果元素位于第i列第j行,平面地址将是(j*宽度[表示跳过j行]+i[表示跳过此行中的i项])。如果您有一个2D数组,那么您可以简单地使用数组[i][j]而不是平面地址