python sokoban代码的模糊性

python sokoban代码的模糊性,python,algorithm,Python,Algorithm,我正在尝试用python构建一个Sokoban益智应用程序 (规则说明: ) 我成功地实现了这个游戏,但我认为如果计算机能够计算出解决特定难题的最佳解决方案会更好 在寻找参考资料时,我遇到了以下代码: 它基本上读取表示谜题的文本字符串,并使用BFS解决它 然而,我很难理解的一件事是,sdata和ddata分别代表什么。它看起来像是sdata和ddata映射了不同的字符,但我不明白为什么 有什么想法吗 谢谢:)如果您查看数据映射到什么: . = end point @ = the guy # =

我正在尝试用python构建一个Sokoban益智应用程序

(规则说明: )

我成功地实现了这个游戏,但我认为如果计算机能够计算出解决特定难题的最佳解决方案会更好

在寻找参考资料时,我遇到了以下代码:

它基本上读取表示谜题的文本字符串,并使用BFS解决它

然而,我很难理解的一件事是,
sdata
ddata
分别代表什么。它看起来像是
sdata
ddata
映射了不同的字符,但我不明白为什么

有什么想法吗


谢谢:)

如果您查看数据映射到什么:

. = end point
@ = the guy
# = wall
$ = diamond
maps = {' ':' ', '.': '.', '@':' ', '#':'#', '$':' '}
mapd = {' ':' ', '.': ' ', '@':'@', '#':' ', '$':'*'}
ssata似乎是终点和墙的地图


ddata似乎是玩家和钻石的地图。

如果您查看数据映射到什么:

. = end point
@ = the guy
# = wall
$ = diamond
maps = {' ':' ', '.': '.', '@':' ', '#':'#', '$':' '}
mapd = {' ':' ', '.': ' ', '@':'@', '#':' ', '$':'*'}
ssata似乎是终点和墙的地图


ddata似乎是玩家和钻石的地图。

sdata保存迷宫中的静态数据(我们搜索时不会更改的部分),而ddata保存动态数据(我们搜索时会更改的部分),并用于保存初始状态

这样做可能是因为Box和guy可能处于与目标相同的位置,这将使大部分代码实现起来更加复杂


正是ddata最初被推到打开列表上作为搜索的开始位置,并进入访问集以标记已搜索的位置。

sdata保存迷宫中的静态数据(搜索时不会改变的部分),而ddata保存动态数据(在搜索过程中发生变化的部分),并用于保存初始状态

这样做可能是因为Box和guy可能处于与目标相同的位置,这将使大部分代码实现起来更加复杂


正是ddata最初被推到打开列表中作为搜索的开始位置,并被推到访问集中,以标记已经搜索过的位置。

也许你想看看这个网站。页面底部是sokoban游戏源代码的链接。它可以作为你们的参考代码。也许你们想看看这个网站。页面底部是sokoban游戏源代码的链接。它可以作为参考代码。