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
5 * Mettre à jour l'othellier (retourner les pions de l'adversaire en fonction du pion posé)
7 * Passer au joueur suivant (tant que partie non finie)
9 * Partie finie: - othellier plein
10 - les deux joueurs "passent"
13 1) Affichage de l'othellier
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
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
29 ->Initialisation: toutes les cases sont initialisées à VIDE
31 ->Structures de données:
32 - Othellier: tableau à deux dimensions
33 - Coups jouables: liste chainée de coup
34 - Constantes: NOIR 1 |N (nord)
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)
49 ->Exploration dans une direction (i, j):
50 Si hors_othellier ou case vide
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
64 RetournerPionsRencontrés