Commit | Line | Data |
---|---|---|
8d5f2ac4 | 1 | ->Analyse: |
cc94dbe8 JB |
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 | ||
8d5f2ac4 | 12 | ->Liste des taches: |
cc94dbe8 JB |
13 | 1) Affichage de l'othellier |
14 | 2) Saisie d'un coup | |
15 | 3) Détection othellier plein | |
480acfeb JB |
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) | |
8d5f2ac4 | 19 | 7) Jeu 2 joueurs humains |
480acfeb JB |
20 | 8) IA: MinMax + stratégies |
21 | 9) IHM graphique | |
8d5f2ac4 | 22 | |
480acfeb | 23 | ->Stratégie de jeu (fonction d'évalution de l'algo MinMax): |
8d5f2ac4 JB |
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 | |
480acfeb JB |
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 | ||
54f1c58c | 41 | ->Modules: |
480acfeb JB |
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) | |
a80646b7 | 47 | constantes: constantes.{c,h} (les constantes) |
54f1c58c JB |
48 | |
49 | ->Exploration dans une direction (i, j): | |
50 | Si hors_othellier ou case vide | |
51 | alors Rien; | |
52 | Sinon si case contient un pion adverse | |
53 | alors continuer l'exploration dans la même direction; | |
54 | Sinon si case contient pion du joueur | |
55 | alors les pions adverses vus précédement doivent être retournés | |
45ce2fe3 JB |
56 | |
57 | explorer(i, j, dir) | |
58 | Si Vide ou Dehors | |
59 | Rien à faire | |
60 | Sinon | |
61 | Si PionAdverse | |
62 | explorer CaseSuivante | |
63 | Sinon | |
64 | RetournerPionsRencontrés |