algorithm - 使用两个 3x3 矩阵解决游戏

标签 algorithm

我有两个 3x3 矩阵。一个代表实际状态,另一个代表“当前”状态。

Actual state -> 1,2,3
                5,7,6,
                9,8,x

Current state1 -> 3,1,2
                  x,6,7
                  8,9,4

我需要通过仅在水平或垂直方向上交换元素 x 及其相邻元素(不允许对角线)来将当前状态矩阵恢复到原始状态。

E.g. Current state 2 can be x,1,2  or 3,1,2 
                            3,6,7     6,x,7  
                            8,9,4     8,9,4 

我可以解决它直到达到这个状态

current state n -> 1,2,3
                   5,7,6
                   8,9,x

我不知道如何在此之后继续到原始状态,即交换两个元素。你能帮我一下吗?

谢谢

最佳答案

所以,假设您正在谈论这样的谜题(只是较小)

alt text http://www.maukatoyventures.com/images/T/Number%20Puz%20Wall%20Panel.jpg

那么你可以使用大多数图搜索算法(深度优先搜索、广度优先搜索、A*,如果你想变得更奇特)来解决它。对这些内容有一个很好的概述,因为它们适用于这个特定问题here 。网络上还流传着大量有关所有这些的信息。

关于algorithm - 使用两个 3x3 矩阵解决游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1653849/

相关文章:

algorithm - k表示使用现有信息进行分割

arrays - 一次仅删除一个元素后,查找从父数组产生的已排序数组的数量

c# - 从递归最小的目录中复制文件

c# - A* 表示认识到实现目标是不可能的

ruby - Rabin Karp 在 Ruby 中的实现太慢

python - 控制洗牌距离

algorithm - 如何使用KDTrees实现最近邻搜索?

algorithm - 这个数字是二的幂吗?

string - 如何从位于该字符串中字符排列数量范围内的数字生成唯一字符串?

Java && ||在 RETURN 语句中?