#include enum tour {rouge,verte,bleue}; typedef enum tour Tour; void hanoi(int,Tour,Tour,Tour); char* traduit(Tour); char* traduit(Tour une_tour) { switch(une_tour) { case rouge : return "rouge"; case verte : return "verte"; case bleue : return "bleue"; } } void hanoi (int n,Tour origine,Tour destination,Tour intermediaire) { if(n>0) { hanoi(n-1,origine,intermediaire,destination); printf("transportez l'anneau qui est en haut de la tour %s " "vers la tour %s\n",traduit(origine),traduit(destination)); hanoi(n-1,intermediaire,destination,origine); } } void main() { int nbr_anneaux ; printf("Avec combien d'anneaux voulez-vous jouer ? " "Attention 8 est un maximum\n"); scanf("%d",&nbr_anneaux); hanoi(nbr_anneaux,rouge,verte,bleue); }