Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
morpion_console [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


morpion_console

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
morpion_console [2008/05/10 08:49]
tyrtamos
morpion_console [2008/05/10 09:00]
tyrtamos
Ligne 1: Ligne 1:
 ====== Un jeu de morpion (tic-tac-toe) en console, utilisant le modèle pour jeu "damier" ====== ====== Un jeu de morpion (tic-tac-toe) en console, utilisant le modèle pour jeu "damier" ======
- 
-//**En construction**// 
  
 \\ \\
Ligne 38: Ligne 36:
 Pour la trame générale du jeu, j'ai utilisé le modèle du jeu damier du présent site ([[modele_jeu_type_damier]]) Pour la trame générale du jeu, j'ai utilisé le modèle du jeu damier du présent site ([[modele_jeu_type_damier]])
  
-Pour l'analyse des coups par l'ordinateur, c'est la fonction "ajouer(pion)" qui pilote la sélection et qui renvoie un ou plusieurs coups à jouer. +Pour l'analyse des coups par l'ordinateur, c'est la fonction "ajouer(pion)", appelée par chaque joueur avant chaque coup,  qui pilote la sélection et qui renvoie un ou plusieurs coups à jouer. 
  
 Cette fonction "ajouer(pion)" fait les choses suivantes: Cette fonction "ajouer(pion)" fait les choses suivantes:
  
-  * calcule s'il y a des coups gagnants. Par exemple avec le pion 'X', si on a une ligne 'X_X', le fait de jouer dans la case du milieu fait gagner le jeu. En principe, s'il y a un coup gagnant, il est inutile de chercher plus loin: il faut seulement le jouer.+  * calcule s'il y a des coups gagnants (fonction coupsgagnants(pion)). Par exemple avec le pion 'X', si on a une ligne 'X_X', le fait de jouer dans la case du milieu fait gagner le jeu. En principe, s'il y a un coup gagnant, il est inutile de chercher plus loin: il faut seulement le jouer.
  
-  * calcule s'il y a des coups perdants, c'est à dire gagnant pour l'adversaire, au sens précédent. Auquel cas, il faudra jouer cela pour éviter que l'adversaire ne gagne au coup suivant. S'il n'y a aucun coup gagnant mais un coup perdant, il est inutile de chercher plus loin: il faut impérativement jouer le coup perdant. Bien entendu, s'il y a 2 coups perdants, c'est cuit, à part si l'adversaire est distrait... (Tiens, comment on simule la distraction chez un joueur ordinateur?)+  * calcule s'il y a des coups perdants, c'est à dire gagnant pour l'adversaire, au sens précédent (fonction coupsgagnants(pion) avec le pion de l'adversaire). Auquel cas, il faudra jouer cela pour éviter que l'adversaire ne gagne au coup suivant. S'il n'y a aucun coup gagnant mais un coup perdant, il est inutile de chercher plus loin: il faut impérativement jouer le coup perdant. Bien entendu, s'il y a 2 coups perdants, c'est cuit, à part si l'adversaire est distrait... (Tiens, comment on simule la distraction chez un joueur ordinateur?)
  
-  * calcule tous les coups possibles (=cases vides), leur affecte des coefficients (que vous pouvez changer) qui dépendent de la position de la case, et les présente sous forme d'une liste de coup [ligne,colonne] dans l'ordre décroissant des coefficients.+  * calcule tous les coups possibles correspondant aux cases vides (fonction initcoef()), leur affecte des coefficients qui dépendent de la position de la case (fonction pondcoef()), et les présente sous forme d'une liste de coup [ligne,colonne] dans l'ordre décroissant des coefficients (fonction coupscoef()).
  
   * en reprenant cette même liste, la fonction "correction()" met en avant la 1ère des solutions, si elle existe, qui a au moins une ligne ou une colonne ou une diagonale qui ne contient pas le pion de l'adversaire. Ceci pour éviter que le coup recommandé à cause d'un coefficient élevé soit inefficace (=on remplit une case sans aucun intérêt pour la suite du jeu).   * en reprenant cette même liste, la fonction "correction()" met en avant la 1ère des solutions, si elle existe, qui a au moins une ligne ou une colonne ou une diagonale qui ne contient pas le pion de l'adversaire. Ceci pour éviter que le coup recommandé à cause d'un coefficient élevé soit inefficace (=on remplit une case sans aucun intérêt pour la suite du jeu).
  
-Il y a aussibien entendu une fonction qui détecte si il y a une configuration gagnante, et donc un gagnant, ou si la grille est pleine sans gagnant.  +\\ 
 +Le programme principalqui reprend la main après chaque coup joué, dispose de la fonction "jeugagne()" qui détecte s'il y a une configuration gagnante, et donc un gagnant, et la fonction "grillepleine()" qui dit si la grille est pleine sans gagnant. 
  
 Et voilà! Et voilà!
morpion_console.txt · Dernière modification: 2008/05/10 09:00 de tyrtamos