Skip to content

Commit

Permalink
cont astar
Browse files Browse the repository at this point in the history
  • Loading branch information
pedralmeida22 committed Nov 21, 2019
1 parent aacd91b commit 9b66897
Show file tree
Hide file tree
Showing 5 changed files with 848 additions and 9 deletions.
4 changes: 4 additions & 0 deletions Node.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# source: https://medium.com/@nicholas.w.swift/easy-a-star-pathfinding-7e6689c7f7b2
import math

# IMPLEMENTAR
# para parede pesquisa 1x
# para inimigos pesquisa todas as iterações

class Node:
def __init__(self, parent=None, position=None):
self.parent = parent
Expand Down
34 changes: 26 additions & 8 deletions defs2.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,9 +207,7 @@ def choose_key3(mapa, ways, my_pos, positions, wall, oneal, last_pos_wanted):

if positions != []:
print('Não precisa de pesquisar...')
while dist_to(my_pos, positions[0]) == 0:
print('my_pos == next_pos')
positions.pop(0)
print('positions: ' + str(positions))

if dist_to(my_pos, positions[0]) > 1:
print("Next_pos invalida!!")
Expand All @@ -227,29 +225,49 @@ def choose_key3(mapa, ways, my_pos, positions, wall, oneal, last_pos_wanted):
'''

else: # pesquisar caminho
# procura caminho para inimigo
if oneal is not None:
# procura caminho para o inimigo
positions = astar(mapa.map, my_pos, oneal, mapa)
print('positions enemie: ' + str(positions))

# se nao encontra caminho para o inimigo
# então procura caminho para a parede
if positions == [] or positions == None:
print('Caminho nao encontrado para o inimigo...')
positions = astar(mapa.map, my_pos, wall, mapa)
print('positions wall: ' + str(positions))

# nao encontra caminho para a parede
if positions == [] or positions == None:
print('Caminho nao encontrado...')
print('Caminho nao encontrado para a parede...')
# usa outra função para encontrar caminho
return choose_move(my_pos, ways, wall), [], wall
#return choose_random_move(ways),''

# caminho para parede
positions.pop(0) # *Problemas*

# se a proxima posiçao for igual à minha posiçao atual
while dist_to(my_pos, positions[0]) == 0:
print('my_pos == next_pos')
print('apagar posições inuteis')
positions.pop(0)

# positions.pop(0) # *Problemas*
return goToPosition(my_pos,positions[0]), positions, positions[-1]

else:
# caminho para inimigo
positions.pop(0)
# se a proxima posiçao for igual à minha posiçao atual
while dist_to(my_pos, positions[0]) == 0:
print('my_pos == next_pos')
print('apagar posições inuteis')
positions.pop(0)

# positions.pop(0)
return goToPosition(my_pos, positions[0]), positions, positions[-1]

else:

else: # procura caminho para parede (ja nao ha inimigos)
positions = astar(mapa.map, my_pos, wall)
print('positions wall: ' + str(positions))

Expand Down
Loading

0 comments on commit 9b66897

Please sign in to comment.