L'A* (pour moi, c'est peut-être une version généralisée), c'est un algorithme permettant de parcourir un graph de noeuds liés par des... "edges" (merde, je retrouve pas le terme français?!) orientés et pondérés, pour aller d'un noeud à un autre en passant par le chemin "le plus court" (dont la somme des edges est la minimale). Chaque noeud est doté d'un coefficient calculé par une fonction (dite "heuristique", de mémoire). Ce coefficient indique la distance minimale de chez minimale entre ce noeud et le point de destination (d'où le fait qu'on prenne souvent la distance eulérienne, surtout dans les cas pratiques de recherche de chemin en 2D).
A* est alors l'algorithme consistant à dire: "ayant une liste de chemins C à l'itération numéro i, et une liste de noeuds N liés à ces chemins C, je choisis le noeud de n de N de sorte que le chemin c+n soit le plus court possible".
La définition de la fonction heuristique du A* dépend du problème, mais c'est une fonction qui donne une valeur minimale du chemin entre un noeud N et la cible de l'algorithme (d'où la distance eulérienne). La "pondération" des cases peut correspondre à cela, mais il ne faut pas confondre ce coefficient avec le poids de chaque "edge", qui représente le vrai coût du déplacement. Dans ton cas donc, la fonction heuristique va devoir être revue pour prendre en compte la zone d'arrivée (et non juste le point d'arrivée, ie, distance eulérienne à ta zone d'arrivée et non plus à ton point d'arrivée) et éventuellement, les chemins précédemment trouvés (dans ma proposition précédente pour faire Zone-Zone). En revanche, le poids de chaque edge restera probablement de 1 (sauf si t'as des spécificités de terrain, genre un marais où le déplacement est ralenti, ou un mur, qui revient à n'avoir pas de edge entre les deux cases que représentent les noeuds du graph).
Du coup, "mettre à 1" le poids de tes cases n'a pas de sens, puisque cela reviendra à dire "la distance à ma zone d'arrivée depuis ces cases est... 1?!" Et le poids de chaque edge étant déjà de 1 quelque soit l'edge de ton graph...
A* est alors l'algorithme consistant à dire: "ayant une liste de chemins C à l'itération numéro i, et une liste de noeuds N liés à ces chemins C, je choisis le noeud de n de N de sorte que le chemin c+n soit le plus court possible".
La définition de la fonction heuristique du A* dépend du problème, mais c'est une fonction qui donne une valeur minimale du chemin entre un noeud N et la cible de l'algorithme (d'où la distance eulérienne). La "pondération" des cases peut correspondre à cela, mais il ne faut pas confondre ce coefficient avec le poids de chaque "edge", qui représente le vrai coût du déplacement. Dans ton cas donc, la fonction heuristique va devoir être revue pour prendre en compte la zone d'arrivée (et non juste le point d'arrivée, ie, distance eulérienne à ta zone d'arrivée et non plus à ton point d'arrivée) et éventuellement, les chemins précédemment trouvés (dans ma proposition précédente pour faire Zone-Zone). En revanche, le poids de chaque edge restera probablement de 1 (sauf si t'as des spécificités de terrain, genre un marais où le déplacement est ralenti, ou un mur, qui revient à n'avoir pas de edge entre les deux cases que représentent les noeuds du graph).
Du coup, "mettre à 1" le poids de tes cases n'a pas de sens, puisque cela reviendra à dire "la distance à ma zone d'arrivée depuis ces cases est... 1?!" Et le poids de chaque edge étant déjà de 1 quelque soit l'edge de ton graph...