Terminale NSI - Projet N°1 - Jeu Du Morpion - Version 2
Terminale NSI - Projet N°1 - Jeu Du Morpion - Version 2
Terminale NSI - Projet N°1 - Jeu Du Morpion - Version 2
Tkinter est une bibliothèque Python qui permet de créer des interfaces graphiques. Elle fournit des
outils pour créer des fenêtres, des boutons, des étiquettes, des champs de texte, etc.
Installation de Tkinter
Tkinter est généralement inclus avec les installations standard de Python. Vous pouvez vérifier son
installation en lançant Python et en essayant d'importer Tkinter :
import tkinter as tk
Dans ce code, nous avons créé un canevas de 300 pixels de large et 300 pixels de haut, et nous
l'avons ajouté à notre fenêtre principale.
Étape 3 : Dessiner la grille du morpion
Maintenant que nous avons un canevas, nous allons dessiner la grille du morpion. Pour cela, nous
allons tracer des lignes verticales et horizontales.
Nous utilisons une boucle pour dessiner deux lignes horizontales et deux lignes verticales avec la
fonction create_line(x1,y1,x2,y2, options=…).
Chaque ligne est tracée à 100 pixels d’intervalle, créant ainsi une grille de 3x3 pour le jeu.
L’objectif de ce projet est de coder un jeu du morpion
à deux joueurs humains sur une grille
3x3 grâce à la bibliothèque tkinter.
Dimensions et marges :
- Dimensions de la fenêtre : 440 x 600 pixels.
- Dimensions de l’annonceur : 400 x 60 pixels.
- Dimensions des deux boutons : 190 x 60 pixels.
- Dimensions des cellules : 124 x 124 pixels.
- Marges grises : 20 pixels.
- Marges extérieures du cadre noir : 7 pixels.
- Marges noires entre les cellules : 4 pixels.
- Bordure noire de l’annonceur : 4 pixels.
Les cellules sont des instances d’une classe Cellule stockées dans une liste cellules.
Cette classe possède deux attributs indice et bouton.
L’indice est fourni en argument du constructeur et correspond à l’indice dans la liste cellules.
Le bouton constitue le corps de la cellule. Son texte est initialement vide et sa position est à calculer
grâce à son indice. Quand il est cliqué, la méthode action de la cellule est appelée.
La méthode action vérifie auprès de l’annonceur si c’est bien le tour d’un des deux joueurs et
auprès de son propre bouton si la cellule est vide (utiliser cget dans les deux cas).
Si c’est bien le cas, elle met à jour le texte du bouton, puis appelle la méthode fin_de_partie.
Si cette méthode renvoie False, l’annonceur doit être mis à jour (c’est au tour de l’autre joueur).
La méthode fin_de_partie renvoie True si la partie est terminée, c’est-à-dire si l’un des deux
joueurs a gagné ou si la grille est remplie (égalité). Elle s’occupe aussi de mettre à jour l’annonceur.
Dans le cas contraire, elle retourne False sans s’occuper de l’annonceur (action s’en charge déjà).
Les vérifications à effectuer par la méthode fin_de_partie étant nombreuses, il est vivement
conseillé de les décomposer en plusieurs méthodes : test pour savoir si trois cellules d’indices
donnés appartiennent à un même joueur, test des huit alignements, test de la grille remplie.