(hors problématique des cavaliers qui sont pour l'instant gérés comme des piétons) :
Rappel :
Les déplacements sont impossibles sur une case occupée par un camp adverse.
Le jeu prend déjà en compte des déplacements impossibles (murs, bords de cartes).
1/ Case occupée par un pion d'un autre joueur du même camp :
Le déplacement n'est possible que si le programme constate que le joueur actif aura une case de libre pour sortir de la case occupée et qu'il disposera d'assez de points de mouvement pour l'occuper.
Lorsque les deux pions se chevauchent, le changement de pion (touche tabulation) et le changement de joueurs (touche entrée) sont verrouillés. On peut donc traverser des pions éparses, mais pas une « phalange » par le centre, de même, il est impossible d'échanger une position avec un pion allié ne nous appartenant pas.
2/ Case occupée par un autre pion du joueur en phase
Le programme vérifie qu'il existe au moins une case de libre autour de la case ciblée (en tenant compte de la case qui sera libérée par le pion actif) et que ce pion actif dispose d'assez de Pmvt pour s'y rendre.
Lors du chevauchement de pion, le changement de joueur est verrouillé mais, grande différence, il est possible avec la touche Tabulation de basculer sur l'autre pion occupant la case, et inversement…
Ainsi, il reste possible de traverser une file de pions dans un couloir, à condition qu'ils soient tous au même joueur. Cela nécessite juste de basculer d'un pion à l'autre (saute mouton), alors qu'avec le jeu papier, on traverse directement la ligne.
Ce cas sera très rare et le peu de perte de confort de jeu ne justifiait pas une gestion de type pathfinding à ce niveau qui, de surcroît, aurait ralenti le programme. Les ressources économisées serviront ailleurs.
En conclusion, on est typiquement dans une phase qui est simplissime en jeu en boîte mais complexe à mettre en œuvre dans un programme informatique.
A l'inverse, la prise en compte de multiples facteurs dans un combat est compliqué sur un wargame carton, mais simple sur un programme.
Mais cela fonctionne !
A+