Browse Source

Ajout du README de l'IA.

master
Stéphane 8 years ago
parent
commit
0dcc194cc6
1 changed files with 17 additions and 0 deletions
  1. +17
    -0
      ai/README

+ 17
- 0
ai/README View File

@ -0,0 +1,17 @@
Résumé du fonctionnement de l'IA
Le choix d'un mouvement par l'IA se fait en plusieurs étapes :
*Lister les mouvements possibles
La première étape consiste à dresser un arbre de tous les mouvements possibles au cours d'un tour. L'arbre contient les numéros des cases par lesquelles le mouvement passe. L'IA s'interdit d'avoir plusieurs suites de sauts qui passent par la même case. En effet, si une case peut être atteinte grâce à une suite de sauts, elle permettra de se rendre dans les mêmes cases que si elle avait été atteinte par n'importe quelle autre suite de sauts. Comme les seules cases vraiment importantes sont les cases de départ et d'arrivée, il est inutile de stocker 2 fois les mêmes cases dans l'arbre.
*Attribuer un score à chaque mouvement
L'IA attribue un « score » à chacun des mouvements listés, selon 3 critères (voir la fonction moveScore) :
- se rapprocher le plus possible de la pointe de la branche d'arrivée (critère coefficienté à 8) ;
- bouger les pions les plus en retard (critère coefficienté à 2) ;
- se rapprocher de la case libre du triangle d'arrivée la plus proche (critère coefficienté à 1 ; sans ce critère, l'IA ferait des mouvements incohérents en toute fin de partie).
*Retourner les mouvements à l'interface graphique
L'IA renvoie chaque étape du mouvement choisi à chaque appel à la fonction NextMove. Lorsque les étapes ont toutes été effectuées, elle renvoie le code 0 signifiant que la série de sauts est terminée. Tant que la série de sauts n'est pas terminée, l'IA ne calcule pas de nouveau mouvement.
Pour plus de détails, voir les nombreux commentaires du code.

Loading…
Cancel
Save