X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=analyse_descendante;h=bbe632081b494976c49bc75198a5011683941372;hb=b5e9ccd0c40a658ea3fc8245b3ada821b248daed;hp=513d5a5bee2e5c5ddbfa10526cc44868a110b478;hpb=8d5f2ac46580bea46d847882a4ad24c4760fee6a;p=Project_algorithmic_C.git diff --git a/analyse_descendante b/analyse_descendante index 513d5a5..bbe6320 100644 --- a/analyse_descendante +++ b/analyse_descendante @@ -13,15 +13,52 @@ 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