Code cleanup on the shot validation path
[Project_algorithmic_C.git] / analyse_descendante
index 513d5a5bee2e5c5ddbfa10526cc44868a110b478..bbe632081b494976c49bc75198a5011683941372 100644 (file)
 1) Affichage de l'othellier
 2) Saisie d'un coup
 3) Détection othellier plein
-4) Boucle de jeu
-5) Mettre à jour l'othellier 
-6) Coups jouables
+4) Boucle de jeu (+ affichage scores, le vainqueur, etc)
+5) Mettre à jour l'othellier (retournement pions de l'adversaire suite à un coup joué) 
+6) Coups jouables (calcul liste, affichage des coups jouables, test si coup saisi est dans la liste)
 7) Jeu 2 joueurs humains
-8) IA: min-max
-9) IHM
+8) IA: MinMax + stratégies
+9) IHM graphique
 
-->Stratégie de jeu (fonction d'évalution de l'algo min-max):
+->Stratégie de jeu (fonction d'évalution de l'algo MinMax):
 * Nombre de pions de la même couleur
 * Position/valeur des cases
 * Diminuer les coups possibles de l'adversaire
 * "S'augmenter" les possibilités de jeu
+
+->Initialisation: toutes les cases sont initialisées à VIDE
+
+->Structures de données:
+    - Othellier: tableau à deux dimensions
+    - Coups jouables: liste chainée de coup
+    - Constantes: NOIR 1                 |N (nord)
+                  BLANC 2                |S (sud)
+                  VIDE 0                 |E (est)
+                  ...                    |O (ouest)
+                  JOUEUR_NOIR ?
+                  JOUEUR_BLANC ?
+
+->Modules:
+    main: othello.{c,h} 
+    ia: ia.{c,h} (MinMax, fcts d'évaluation, ...)
+    IHM: ihm.{c,h} (affichage de l'othellier, saisie d'un coup, entrée au clavier, ...)
+    coups: coups.{c.h} (coups jouables)
+    regle: regle.{c,h} (implantation des règles du jeu)
+    constantes: constantes.{c,h} (les constantes)
+
+->Exploration dans une direction (i, j):
+Si hors_othellier ou case vide
+    alors Rien;
+Sinon si case contient un pion adverse
+    alors continuer l'exploration dans la même direction;
+Sinon si case contient pion du joueur
+    alors les pions adverses vus précédement doivent être retournés
+
+explorer(i, j, dir)
+Si Vide ou Dehors
+    Rien à faire
+Sinon
+    Si PionAdverse
+       explorer CaseSuivante
+    Sinon 
+       RetournerPionsRencontrés