Terminale NSI - Projet N°1 - Jeu Du Morpion - Version 2

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Projet NSI – Jeu du morpion

Qu’est-ce que Tkinter ?

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.

La documentation est sur le site : https://docs.python.org/fr/3/library/tkinter.html


Il y a un tutoriel accessible sur : https://python.doctor/page-tkinter-interface-graphique-python-
tutoriel

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

Étape 1 : Créer une fenêtre de base

Étape 2 : Ajouter un canevas

Le canevas est l’endroit où vous allez dessiner le jeu.

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.

L’interface est composée de trois éléments :


- Une zone de texte annonceur conçue à l’aide de
la classe Label, qui donne des informations sur le
déroulement de la partie.
- Un cadre noir zone_de_jeu conçu à l’aide de la
classe Frame qui contient les 9 cellules de la grille.
- Deux boutons bouton_rejouer et bouton_quitter
conçus à l’aide de la de la classe Button.

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.

Le bouton « Quitter » permet de quitter la fenêtre. La touche « Echap » a le même effet.


Le bouton « Rejouer » appelle une fonction nouvelle_partie qui vide le contenu des cellules et
réinitialise l’annonceur sur « Joueur X à votre tour ». La touche « r » a le même effet.
Au fil de la partie, l’annonceur contient l’un des 5 textes suivants : « Joueur X à votre tour »
« Joueur O à votre tour » « Victoire du joueur X » « Victoire du joueur O » « Fin de partie : égalité »

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.

Vous aimerez peut-être aussi