A* - poprawa błędów

This commit is contained in:
Łukasz Kinder 2022-04-28 14:42:32 +02:00
parent 3188f3e7f6
commit 84e66ab30f

View File

@ -314,7 +314,6 @@ def astar(map, start, end):
open_list.pop(current_index)
closed_list.append(current_tile)
if current_tile == end_tile:
path = []
current = current_tile
@ -330,21 +329,20 @@ def astar(map, start, end):
continue
new_node = Tile(current_tile, tile_position)
children.append(new_node)
for child in children:
skip = False
for closed_child in closed_list:
if child == closed_child:
continue
child.g = current_tile.g + map[child.position[0]][child.position[1]]
child.h = ((child.position[0] - end_tile.position[0]) ** 2) + (
(child.position[1] - end_tile.position[1]) ** 2)
child.f = child.g + child.h
for open_node in open_list:
if child == open_node and child.g > open_node.g:
continue
open_list.append(child)
skip = True
if skip is False:
child.g = map[child.position[0]][child.position[1]]
child.h = np.absolute(child.position[0] - end_tile.position[0]) + np.absolute(child.position[1] - end_tile.position[1])
child.f = child.g + child.h
for open_node in open_list:
if child == open_node and child.g > open_node.g:
continue
open_list.append(child)
map = Map()