1,用广度搜索法用走迷宫的方式模拟搜索,不快。超过六个箱子的你可以亲自去玩了。 2,采用java可变树TreeNode+集合TreeSet法解决网状数据结构中的节点重复搜索问题。 3,对凹形区域进行了专门的分析,就是凹形区域底部,箱子数要小于目标点数。 4,对于箱子挤在一起的情况(比如4个的)用递归+集合的办法解决剪枝。(自我感觉上是对的,请广大网友测试。欢迎友情拍砖……) 5,搬运工活动区域的优化: 由四角向中心挤压无效区域,再根据情况由箱子和搬运工向周围画十子通道。 6,提供了一个简单JFrame窗口显示布局变化。可以随时暂停、单步。有了最终结果后可以回放。 7,可由推箱子XSB文件输入推箱子关卡,也可以输出LURD答案,需要鼠标选定文本区,用ctrl-c和ctrl-v得到结果。关卡文件自己编,网上也有现成的。我只提供了几个,忘了是谁的了! 8,算法不是最快,保证最少。