Цветной лабиринт с поиском A* [закрыто]Python

Программы на Python
Anonymous
Цветной лабиринт с поиском A* [закрыто]

Сообщение Anonymous »

Цветной лабиринт состоит из агента, который движется вверх, вниз, вправо и влево до тех пор, пока не упрется в стену. Цель состоит в том, чтобы раскрасить весь лабиринт, пройдя по нему с минимальными затратами, то есть общим перемещением агента по квадратам. Это пример игры https://www.mathplayground.com/logic_color_maze. (Без) эвристической функции. Я реализовал лабиринт, но, похоже, это неправильно. Он должен пройти по ячейкам, но, поскольку он переходит к другому узлу на границе, которого нет в текущем преемнике агента, как мне найти пройденные ячейки. Как нам отследить оптимальный путь раскраски всего лабиринта?

Код: Выделить всё

while frontier:
# get a node from frontier with minimum cost
last_node = cur_node # storing last node

min_cost = float('inf')
for s in frontier:
if s.cost < min_cost:
min_cost = s.cost
cur_node = s
# Coloring the roads taken
if cur_node.prev !=None:
color_roads(maze,cur_node)

# check if goal is true
if(isColored(maze)):

print("PREV NODES")
node = cur_node
while node != None:
print(node.row,node.col)
node = node.prev
break

# add each viable succesor of current node to the frontier

find_successors(maze,frontier,visited,cur_node)
# pop itself

frontier.remove(cur_node)
visited.append(cur_node)
это функция-преемник

Код: Выделить всё

def find_successors(maze,frontier,visited,node):
row_lim = len(maze) -1
col_lim = len(maze[0]) -1

directions = [[0,1],[0,-1],[1,0],[-1,0]] #right left down up

for a,b in directions:
r = node.row
c = node.col

while 0 

Подробнее здесь: [url]https://stackoverflow.com/questions/78171307/color-maze-with-a-search[/url]

Вернуться в «Python»