| 1 | ->Analyse: |
| 2 | * Joueur 1: pose un pion ou c'est possible (jouer un coup parmi les coups possibles) |
| 3 | si aucun coup n'est possible, alors on passe au joueur suivant |
| 4 | |
| 5 | * Mettre à jour l'othellier (retourner les pions de l'adversaire en fonction du pion posé) |
| 6 | |
| 7 | * Passer au joueur suivant (tant que partie non finie) |
| 8 | |
| 9 | * Partie finie: - othellier plein |
| 10 | - les deux joueurs "passent" |
| 11 | |
| 12 | ->Liste des taches: |
| 13 | 1) Affichage de l'othellier |
| 14 | 2) Saisie d'un coup |
| 15 | 3) Détection othellier plein |
| 16 | 4) Boucle de jeu (+ affichage scores, le vainqueur, etc) |
| 17 | 5) Mettre à jour l'othellier (retournement pions de l'adversaire suite à un coup joué) |
| 18 | 6) Coups jouables (calcul liste, affichage des coups jouables, test si coup saisi est dans la liste) |
| 19 | 7) Jeu 2 joueurs humains |
| 20 | 8) IA: MinMax + stratégies |
| 21 | 9) IHM graphique |
| 22 | |
| 23 | ->Stratégie de jeu (fonction d'évalution de l'algo MinMax): |
| 24 | * Nombre de pions de la même couleur |
| 25 | * Position/valeur des cases |
| 26 | * Diminuer les coups possibles de l'adversaire |
| 27 | * "S'augmenter" les possibilités de jeu |
| 28 | |
| 29 | ->Initialisation: toutes les cases sont initialisées à VIDE |
| 30 | |
| 31 | ->Structures de données: |
| 32 | - Othellier: tableau à deux dimensions |
| 33 | - Coups jouables: liste chainée de coup |
| 34 | - Constantes: NOIR 1 |N (nord) |
| 35 | BLANC 2 |S (sud) |
| 36 | VIDE 0 |E (est) |
| 37 | ... |O (ouest) |
| 38 | JOUEUR_NOIR ? |
| 39 | JOUEUR_BLANC ? |
| 40 | |
| 41 | -> Modules: |
| 42 | main: othello.{c,h} |
| 43 | ia: ia.{c,h} (MinMax, fcts d'évaluation, ...) |
| 44 | IHM: ihm.{c,h} (affichage de l'othellier, saisie d'un coup, entrée au clavier, ...) |
| 45 | coups: coups.{c.h} (coups jouables) |
| 46 | regle: regle.{c,h} (implantation des règles du jeu) |
| 47 | constantes: constantes.h (les constantes) |