+->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
* 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