Properly nullify a debug function.
[Project_algorithmic_C.git] / analyse_descendante
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.{c,h} (les constantes)
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
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