【发布时间】:2012-04-03 14:32:29
【问题描述】:
我已经实现了一个功能,当门将使用广度优先搜索算法自动移动时。现在我希望它也能自动移动盒子(如果 keeper 可以在不移动另一个盒子的情况下将盒子从源移动到目的地)。我该怎么做?我试过修改BFS,还没成功。
更新:我不需要解决这个难题。相反,我想开发方便的用户界面,当用户可以用鼠标移动框时。为此,我需要一些算法,这将允许计算移动序列。但这只是关于移动单个盒子,如果不移动其他盒子的话。
【问题讨论】:
-
您遇到的具体问题是什么(除了广泛的“它不起作用”)?
-
它很好地解决了简单的路线(当盒子路径只包含每个位置一次时)。但也有一个复杂的情况,当盒子不止一次地踩在每个位置上时(例如,你将一个盒子移动到广阔的区域以重新定位守门员,然后将盒子移回相同的路径)。我相信我不仅应该存储是否访问了特定位置,还应该存储当时的守门员在哪里)。
-
我更想问的是人们是否已经为这项任务开发了一些算法。我不知道,如果我的方法是推动/移动最佳,而我绝对希望它是最佳的。