Algorithme de jeux tour de hanoi

Fermé
besma+m - 14 févr. 2009 à 10:40
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 14 févr. 2009 à 11:19
Bonjour,

comment on taduire le jeux de tour de hanoi en langage C++
A voir également:

1 réponse

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 févr. 2009 à 11:19
Salut,

Voici en C, mais la fonction tu peux l'utiliser aussi en C++
#include<stdio.h>

void tourhanoi(int n,char depart,char base,
               char intermediaire,long unsigned int *occur);

int main()
{
  int n,i;
  long unsigned int occur=0;
  printf("Entrez le nombre de disques : ");
  scanf("%d",&n);
  tourhanoi(n,'A','B','C',&occur);
  printf("%ld déplacements\n",occur);
  return 0;
}

void tourhanoi(int n,char depart,char base,
               char intermediaire,long unsigned int *occur){
  if(n>0){
    ++*occur;
    tourhanoi(n-1,depart,intermediaire,base,occur);
    printf("%c -> %c\n",depart,base);
    tourhanoi(n-1,intermediaire,base,depart,occur);
  }
}
Résultat Tu peux le tester ici http://jeux.lulu.pagesperso-orange.fr/html/hanoi/hanoi1.htm


lami20j@debian:~/trash/c_exercices$ gcc tourhanoi.c
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 2
A -> C
A -> B
C -> B
3 déplacements
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 3
A -> B
A -> C
B -> C
A -> B
C -> A
C -> B
A -> B
7 déplacements
lami20j@debian:~/trash/c_exercices$ ./a.out
Entrez le nombre de disques : 4
A -> C
A -> B
C -> B
A -> C
B -> A
B -> C
A -> C
A -> B
C -> B
C -> A
B -> A
C -> B
A -> C
A -> B
C -> B
15 déplacements
14