Morpion
Énoncé
Dans ce mini projet nous allons programmer un jeu du morpion, appelé tic-tac-toe en anglais. Comme l'illustre l'image ci-dessous, ce jeu se joue à deux joueurs sur un plateau de 9 cases. Chaque joueur se voit affecté soit les croix soit les ronds. On joue à tour de rôle en plaçant un pion dans une case libre et c'est toujours le joueur qui a les croix qui commence. L'objectif du jeu est d'aligner trois de ses poins sur une ligne, une colonne ou une diagonale.
Ce mini projet comporte trois objectifs pédagogiques principaux :
- aller un peu plus loin dans la découverte des caractères unicode ;
- s'entraîner à rentrer dans le code de quelqu'un d'autre ;
- la réalisation d'une intelligence artificielle, plus ou moins intelligente.
ATTENTION
Bien qu'une implémentation "sérieuse" utiliserait des boucles, comme nous n'avons pas encore (re-)étudié les boucles for
et while
, on se propose de réaliser de ce projet en s'interdisant leur utilisation.
Néanmoins, comme on le voit dans le code, on s'autorise à utiliser des list
Python qui elles non plus n'ont pas encore étaient (re-)étudiées.
Ce choix nous permet d'avoir du code plus simple et donc de nous concentrer sur les objectifs pédagogiques du mini projet.
Le travail à réaliser consiste à :
- compléter le fichier
morpion.py
disponible ici et affiché ci-dessous ; - à implémenter le module
joueur_humain
; - à implémenter une première version module
joueur_ordi
bête comme ses pieds ; - à implémenter une seconde version, la plus intelligente possible, du module
joueur_ordi
capable de battrejoueur_ordi_malin
.
Nous prendrons le temps de bien lire la documentation de chacune des fonctions du fichier morpion.py
pour bien comprendre comment leur utilisation s'articule ainsi que pour comprendre quel doit être le contenu des modules joueur_humain
et joueur_ordi
.
Pour avoir un rendu sympa, bien que notre jeu reste un jeu purement textuel dans le sens où celui-ci n'ouvre aucune fenêtre et s'exécute donc exclusivement dans le terminal, nous aurons certainement besoin de faire des recherches concernant :
- les caractères unicode ;
- leur utilisation en Python ;
- l'affichage de texte en couleur dans un terminal.
Comme mentionné dans le code ci-dessous, le module joueur_ordi_malin
est fourni.
Une fois le module joueur_humain
réalisé, nous pourrons jouer contre cette (très grande) "intelligence artificielle".
Le format utilisé est volontairement le format interne de l'interpréteur Python, pour que nous puissions développer notre propre joueur automatique sans "tricher", c'est à dire sans voir le code du joueur malin.
Le module joueur_ordi_malin
, en fonction de notre version de Python est disponible :
Comme pour un module classique, on placera ce fichier à côté du fichier morpion.py
pour l'utiliser en prenant soin de supprimer le numéro de version dans le nom du fichier pour que celui-ci soit exactement joueur_ordi_malin.pyc
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|
Pour terminer, essayons de comprendre ce que représente la jolie image ci-dessous ?