X-Git-Url: https://git.piment-noir.org/?p=Project_algorithmic_C.git;a=blobdiff_plain;f=analyse_descendante;h=bbe632081b494976c49bc75198a5011683941372;hp=8204c999ecda67ffa136bf37ea3830b2e788270e;hb=acd1c2e821764097e70281ac5d0f13a7fd10f9c2;hpb=cc94dbe8140896ecb3dd15754d192d7c03fcd8c3 diff --git a/analyse_descendante b/analyse_descendante index 8204c99..bbe6320 100644 --- a/analyse_descendante +++ b/analyse_descendante @@ -1,3 +1,4 @@ +->Analyse: * Joueur 1: pose un pion ou c'est possible (jouer un coup parmi les coups possibles) si aucun coup n'est possible, alors on passe au joueur suivant @@ -8,11 +9,56 @@ * Partie finie: - othellier plein - les deux joueurs "passent" -Liste des taches: - +->Liste des taches: 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: MinMax + stratégies +9) IHM graphique + +->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