嘿,我想用Python中的字典来绘制一个图表。我正在使用包含迷宫(b代表墙,a代表路径)的txt
文件,并尝试创建一个列表字典,列出在迷宫中可行的所有走法(简单步骤,而不是完整路径)。你有任何关于我应该从哪里开始的想法吗?我以前从未使用过字典。
非常感谢您的帮助,这让我有了一个很好的开始。只有一个问题,我从一个有效的房子开始检查所有可能的路径。之后我将不得不移动到另一个房子并检查那里的路径。如何确保我不会陷入无限循环或重新检查已经检查过的房子?
嘿,我想用Python中的字典来绘制一个图表。我正在使用包含迷宫(b代表墙,a代表路径)的txt
文件,并尝试创建一个列表字典,列出在迷宫中可行的所有走法(简单步骤,而不是完整路径)。你有任何关于我应该从哪里开始的想法吗?我以前从未使用过字典。
非常感谢您的帮助,这让我有了一个很好的开始。只有一个问题,我从一个有效的房子开始检查所有可能的路径。之后我将不得不移动到另一个房子并检查那里的路径。如何确保我不会陷入无限循环或重新检查已经检查过的房子?
maze_dict[(r,c)] = [(r-1,c), (r,c+1)]
代码演示:
maze_dict = {}
你还应该查看Python教程中字典部分的内容。
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
现在,逐个检查每个房子,并计算它的路径(或路径)
paths = {}
paths[(1,3)] = [(2,3), (4,3) ... ] # possible paths to the point (1,3)
for i in houses:
try:
i.paths = paths[(i.pos)]
except KeyError:
print "I don't know how to get to ", i.pos
按顺序遍历列表可以确保每个房子只被检查一次。现在你可以找出那些无法到达的房子:
for i in houses:
if not i.paths:
print "I did not find a way to reach the house at ",i.pos