Bonjour,
J'essai de répondre à un exercice mais je bloque à un endroit, quelqu'un peut il m'aider s'il vous plait?
Je dois programmer un jeu d'Hexapawn ( comme un jeu d'échec simplifié avec nxm cases et uniquement des pions qui peuvent avancer d'une seule case tout droit ou manger un pion adverse en diagonale)

J'ai déjà programmé le jeu lorsque deux humains jouent mais pour la version avec une IA, je dois utiliser la programmation dynamique avec quelques indication. Je n'ai pas besoin que l'on me donne le code mais juste d'une explication.

D'après l'énoncé :
"A chaque configuration on associe une valeur, qui exprime à quel point elle est favorable au joueur dont
c’est le tour. La valeur d’une configuration est l’entier +k si le joueur dont c’est le tour peut gagner en maximum k coups, quoi que fasse l’autre (il peut gagner plus vite si l’autre joue mal) ; la valeur est l’entier −k si le joueur dont c’est le tour ne peut pas gagner mais qu’il peut survivre au moins k coups face à un adversaire optimal (mais il peut éventuellement gagner ou survivre plus longtemps si son adversaire commet des erreurs). La valeur est 0 si le joueur dont c’est le tour a perdu (par exemple parce qu’il ne peut pas jouer, ou bien parce qu’un pion adverse a atteint la dernière rangée)
." Jusque là je comprend que je vais devoir faire ça de façon récursive
Nom : Capture d’écran 2021-10-19 à 15.24.01.png
Affichages : 387
Taille : 214,4 Ko

Mais avec cette partie de l'énoncé je ne comprend pas bien comment c'est possible

Intuitivement je partirai sur une fonction récursive avec comme critère d'arret lorsque le joueur est bloqué ou que l'adversaire est bloqué
sinon j'utiliserai la formule max (des (successeurs + 1) *-1 (si ils sont négatifs) ou (successeurs - 1 )*-1 si ils sont négatifs )

Mais je ne vois pas pourquoi ça nous donnerai le bon résultat j'ai essaye de me représenté plusieurs situation de jeu et je ne tombe jamais sur un cas ou la formule fonctionne.

Peut être que j'ai mal compris
Je serais très reconnaissante si quelqu'un pouvait m'aider à comprendre

Merci d'avance