用python绘制迷宫图

用python绘制迷宫图,python,dictionary,graph,logic,maze,Python,Dictionary,Graph,Logic,Maze,嘿,我正在尝试用Python中的字典制作一个图。我正在使用一个包含迷宫的txt文件(b代表墙a代表路径),我正在尝试制作一个字典,列出迷宫中所有可能的动作(简单的步骤,而不是完整的路径)。我该从哪里开始呢?我从不使用字典 非常感谢你的帮助,这让我有了一个好的开始。还有一个问题,我从一个有效的房子开始,检查所有可能的路径。在那之后,我必须搬到另一所房子里去,看看那上面的小路。如何确保我不会得到一个无限循环或重新检查我已经检查过的房子?假设你的迷宫看起来像一个网格,迷宫中的一个位置可以表示为一个元组

嘿,我正在尝试用Python中的字典制作一个图。我正在使用一个包含迷宫的
txt
文件(b代表墙a代表路径),我正在尝试制作一个字典,列出迷宫中所有可能的动作(简单的步骤,而不是完整的路径)。我该从哪里开始呢?我从不使用字典


非常感谢你的帮助,这让我有了一个好的开始。还有一个问题,我从一个有效的房子开始,检查所有可能的路径。在那之后,我必须搬到另一所房子里去,看看那上面的小路。如何确保我不会得到一个无限循环或重新检查我已经检查过的房子?

假设你的迷宫看起来像一个网格,迷宫中的一个位置可以表示为一个元组(行,列)。构建字典时,为迷宫中的每个位置创建一个条目,初始值为空列表。在迷宫中的每个有效位置(r,c),找出你是否能到达(r-1,c),(r,c-1),(r+1,c)和(r,c+1)。如果可以,则将该元组添加到列表中。假设我可以从(r,c)中得到(r-1,c)和(r,c+1),字典中的条目如下所示

  maze_dict[(r,c)] = [(r-1,c), (r,c+1)]
要创建空词典,请使用:

maze_dict = {}
您还应该看看python教程的一节

非常感谢你的帮助,这让我有了一个好的开始。只是 还有一个问题,我从一个有效的房子开始,检查所有的房子 可能的路径。在那之后,我必须搬到另一所房子去检查 上面的路径。我如何确保我没有得到一个无限循环或 重新检查我已经检查过的房子

创建一个“House”类及其栅格坐标:

class House(object):
    def __init__(self, pos):
        self.pos = pos # the coordinates (position) on the grid, a tuple
        self.paths = [] # Empty array to hold paths
创建一些房屋:

houses = [House((1,3)), House((3,3)), House((4,3))] # a list of houses
现在,穿过每栋房子,计算出它的路径

单步浏览列表可以确保你只检查每间房子一次。现在,您可以找到无法到达的房屋:

for i in houses:
   if not i.paths:
      print "I did not find a way to reach the house at ",i.pos

关于听写的快速问题,我可以得到一个可能的方式列表并添加到听写中吗?我不能“附加”一个键的值?如果你得到了可能的方法列表,那么你可以迭代地将它们添加到字典中。在字典中,您不能修改键的值,因为它会破坏散列。Daymor:您只需向字典中写入一个键/值对。你可以把任意多的东西放进去。我写了一段代码,告诉你如何移动一栋房子。我的问题是,我如何在不重复的情况下检查所有这些内容?检查所有内容的目的是什么?您可以将一个标志与每个移动相关联。如果设置了,那么你以前见过这个位置,如果没有,那么它是唯一的。请每个问题一个问题。在答案已经发布之后,编辑你的问题以包含一个新的问题是很烦人的。
for i in houses:
   if not i.paths:
      print "I did not find a way to reach the house at ",i.pos