Algorithmique · Python

Projet en action

Tour de Hanoï

Une visualisation légère de la récursivité : chaque étape déplace un disque et conserve les règles du problème original.

PythonTkinterRécursivité
MODE DE DÉMOINTERACTIFReconstitution fidèle de l’exécution

Le projet, derrière l’écran

Le projet
sans détour.

Le sujet, le fonctionnement, le point difficile et les choix de code : tout ce qu’il faut pour comprendre le projet rapidement.

LE SUJETCours de NSI · projet Python

Le projet des tours de Hanoï a été réalisé pour mettre en pratique la programmation orientée objet, les piles et la récursivité.

LE BESOINPourquoi je l’ai fait

Les tours de Hanoï donnent une représentation visuelle d’un appel récursif : déplacer n disques implique de résoudre deux fois le problème avec n−1 disques.

EN DÉMOCe que vous pouvez tester

Le parcours principal est jouable ici. Le dépôt GitHub garde la version complète du projet et ses fichiers.

LE FONCTIONNEMENTComment l’idée devient un programme

Le programme crée une fenêtre Tkinter et un Canvas blanc, dessine trois bâtons et quinze disques verts, puis déplace récursivement les disques avec `fenetre.update()` entre les étapes.

LE POINT DÉLICATCe qui demande de la rigueur

Montrer une récursion étape par étape sans casser les règles de déplacement des disques.

DANS LE CODEComment les responsabilités sont rangées

Le code est volontairement compact dans TourDeHanoï.py : une classe Pile pour les opérations empiler/dépiler, une classe Tour pour le dessin et une fonction deplacer pour la récursion.

LE CHEMIN DU PROJET15 disques Tour 3
ENTRÉE15 disques
01Descendrerésoudre n − 1
02Déplacerle plus grand
03Remonterrésoudre n − 1
RÉSULTATTour 3

Démonstration

Voir le projet
prendre vie.

Explorez les fonctionnalités, les interactions et le parcours principal du projet.

TourDeHanoi / Python · Tkinter · NSI

La vraie fenêtre Tkinter, remise en mouvement

DÉMO LOCALE
TourDeHanoï.pyPython / Tkinter · Canvas
TOUR 1
TOUR 2
TOUR 3
ÉTAT DE LA RÉCURSION0 / 32 767Chaque clic correspond à un déplacement calculé par deplacer().

La version originale crée une fenêtre blanche, trois bâtons noirs et quinze rectangles verts. Cette démo conserve cette mise en scène et ralentit la récursion pour la rendre lisible.

Reconstitution fidèle de l’exécutionVoir le dépôt GitHub
i
Pour aller plus loin

La démo montre le résultat. Le dépôt GitHub contient le code complet et les fichiers du projet.