Java算法填充单元格,如“Android – Flow”游戏

我有一个问题。

我们有一个表2xN ,其链接节点为1,6 -> 1,12,6 -> 2,1就像一个cilinder。

  ----------------------------------------------------- (1)->| 1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,6 | -> (1) ------------------------------------------------------ (2)->| 2,1 | 2,2 | 2,3 | 2,4 | 2,5 | 2,6 | -> (2) ------------------------------------------------------ 

我有一个StartPoint1 – 是单元格1,1一个点和单元格2,6 EndPoint1
和一个StartPoint12 – 是单元格2,1一个点和单元格2,5 EndPoint2

我想在路上找到两个填充所有表格的组合。

例如上面是

(P1)=(1,1) – >(1,2) – >(1,3) – >(1,4) – >(1,5) – >(1,6) – >(2,6 )
(P2)=(2,1) – >(2,2) – >(2,3) – >(2,4) – >(2,5)

所以,我在两个路径上走遍所有桌子(12个牢房 – 12个台阶)

现在我在填充结构后停止了:

 private static void buildGrid(int gridResolution) { for (int i = 1; i < 3; i++) { for (int j = 0; j  0) return nodes[i][j - 1]; else return null; } private static class Node { public PointM point; public Node left; public Node right; public Node top; public Node bottom; public boolean isChecked; } 

我不知道在那之后我需要做什么。 我坚持这一刻。 尽力而为,将绕开这张桌子。 也许是什么算法?

对于您访问的每个单元格,将其标记为已访问。

从你现在的单元格,看看你可以去哪些单元格:如果你没有单元格可以去,那么检查这是否是游戏的结束。 如果不是游戏的结束,那么这就是失败。

如果有可以访问的单元格,请列出要访问的单元格,并为该单元格生成递归。 当递归结束时,您有两个选择:游戏完成或递归结束。 如果它结束了,那么为下一个可用的单元格产生一个新的递归。 没有更多可用的细胞? 停。