Огромное спасибо за помощь, с которой я отлично стартовал. Просто
еще один вопрос, я начинаю в одном действительном доме и проверяю все
возможные пути. после этого надо переехать в другой дом и проверить
пути на этом. Как я могу убедиться, что я не получаю бесконечный цикл или
перепроверить дом, который я уже проверил?
Создать класс "Дом" с координатами сетки:
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