Re: système Sid Meyer like (Civilization)

Posté par Bibi09 le 9/4/2020 20:56:59
J'ai effectué un changement dans l'algorithme car utilisation de tuiles hexagonales. Il faut gérer la différence entre les tuiles de coordonnées Y paire/impaire car les tuiles adjacentes n'ont pas les mêmes coordonnées.

adjacent_coords = []
if (current_node.position[1] % 2 == 0): # Even Y coord
    adjacent_coords = [(-1, -1,), (-1, 0), (-1, +1), (0, -1), (+1, 0), (-1, +1)]
else:                                   # Odd Y coord
    adjacent_coords = [(0, -1), (-1, 0), (0, +1), (+1, -1), (+1, 0), (+1, +1)]
    

for new_position in adjacent_coords: # Adjacent squares
...


Après ça, il semble faire un chemin complet du départ à l'arrivée mais je ne sais pas coder dans le BGE pour les afficher (si je print le path directement en sortie de A*).
Je crois qu'il y a un souci dans la boucle du main() qui gère l'affichage des marqueurs verts mais comme je ne sais pas coder cette partie, je te laisse regarder.

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=49623&post_id=582069