+ dijkstra_map = Map(game.map_geometry.size)
+ n_max = 256
+ dijkstra_map.terrain = [n_max for i in range(dijkstra_map.size_i)]
+ dijkstra_map[speaker.position] = 0
+ shrunk = True
+ while shrunk:
+ shrunk = False
+ for pos in dijkstra_map:
+ if game.map[pos] == 'X':
+ continue
+ neighbors = game.map_geometry.get_neighbors(pos)
+ for direction in [d for d in neighbors if neighbors[d]]:
+ yx = neighbors[direction]
+ if dijkstra_map[yx] < dijkstra_map[pos] - 1:
+ dijkstra_map[pos] = dijkstra_map[yx] + 1
+ shrunk = True