Vous êtes sur la page 1sur 6

Raliser par : mohamed mejdal Facult : fpk Filire : smp Enseignant : prof hajji

tours de Hano est un jeu de rflexion imagin par le mathmaticien franais douard Lucas, et consistant dplacer des disques de diamtres diffrents d'une tour de dpart une tour d' arrive en passant par une tour intermdiaire et ceci en un minimum de coups, tout en respectant les rgles suivantes : Rgles On ne peut dplacer que le disque se trouvant au Sommet dun bton Dplacer un disque la fois dun bton un autre Ne jamais mettre un disque sur un autre plus petit Le problme des tours de Hano est vu en algorithmique (programmation), o il offre un exemple de la puissance et de la lisibilit des programmes dfinis de faon rcursive. En effet, la mthode de rsolution vue prcdemment conduit un algorithme rcursif. Les paramtres de la procdure Dplacer sont : nombre : nombre de disques utiliss de : emplacement de dpart : emplacement de destination par : emplacement intermdiaire Le but est de russir dplacer la tour de disques de la colonne de gauche une des colonnes de droites en conservant l'ordre dcroissant des disques (le plus grand la base et le plus petit au sommet).

Le jeu des tours de Hano On dispose de trois piquets avec socle, numrots 1, 2 et 3, et de n disques trous qui sont deux deux de tailles diffrentes. Au dpart, les n disques sont empils par ordre croissant de taille sur le piquet n1. Le but du jeu est de dplacer ces n disques du piquet n1 sur le piquet n3, en respectant les rgles suivantes : - On ne dplace quun seul disque la fois et le disque dplac doit tre sur lun des deux autres piquets; cest ce que lon appelle un dplacement. - Un disque ne doit jamais tre plac au-dessus dun disque plus petit que lui.

Avec la programmation en c on peut rsoudre ce jeu, lcriture de ce jeu en c est :

// Tours de hano

#include <stdio.h>

// Dplacement de n disques du plot From vers le plot To // en passant par le plot Via. void hanoi(int n, int f, int v, int t) { if (n > 0) { hanoi(n-1, f, t, v); printf("De %d vers %d\n", f, t); hanoi(n-1, v, f, t); } }

int main(void) { int n; // Nombre de disques

// Saisie du nombre de disques printf("Nombre de disques : "); scanf("%d", &n);;

// Affichage hanoi(n, 1, 2, 3);

return 0; } Quand on met ce jeu en excution elle va apparaitre une demande de nombre du disque puis en entrant sur ok, on voit la rsolution c a d la faon de dplacement du disque sur les trois ptons. Par exemple on entre nombre de disques est 3

On tape sur entrer : On va obtenir :

Le programme c est un moyen trs efficace pour rsoudre le problme de ce jeu tours de Hano, car il facilite la rsolution, de plus ce qui trs utile que quelque soit le nombre du disque, le programme c peut le rsoudre, et aussi il existe plusieurs programme en langage c qui fait la mme chose.

Vous aimerez peut-être aussi