Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
JEU HANOI EN C [VC 6.0]
Information sur la source
Description
Source
- #include<stdio.h>
- #include<string.h>
- #include<memory.h>
-
- int nb,tab1[10],tab2[10],tab3[10];
-
- void affichage() //int nb,int *tab1,int *tab2,int *tab3)
- {
- int i,w,l;
- w=nb;
- printf("\n");
- for (l=9;l>=0;l--)
- {
- for (i=0;i<10-tab1[l];i++)
- {
- printf(" ");
- }
- for (i=0;i<tab1[l];i++)
- {
- printf("%c",177);
- }
- printf("%c",179);
- for (i=0;i<tab1[l];i++)
- {
- printf("%c",177);
- }
- for (i=0;i<10-tab1[l];i++)
- {
- printf(" ");
- }
-
- for (i=0;i<10-tab2[l];i++)
- {
- printf(" ");
- }
- for (i=0;i<tab2[l];i++)
- {
- printf("%c",177);
- }
- printf("%c",179);
- for (i=0;i<tab2[l];i++)
- {
- printf("%c",177);
- }
- for (i=0;i<10-tab2[l];i++)
- {
- printf(" ");
- }
-
- for (i=0;i<10-tab3[l];i++)
- {
- printf(" ");
- }
- for (i=0;i<tab3[l];i++)
- {
- printf("%c",177);
- }
- printf("%c",179);
- for (i=0;i<tab3[l];i++)
- {
- printf("%c",177);
- }
- for (i=0;i<10-tab3[l];i++)
- {
- printf(" ");
- }
- //_getch();
-
- printf("\n");
- }
- }
-
- void deplacement(int *tab1,int *tab2,int *tab3,int n)
- {
- int i,y;
- if (n>0)
- {
- deplacement(tab1,tab3,tab2,n-1);
- for(i=9;i>0 && tab1[i]==0;i--);
- if (tab1[i]!=0)
- {
- y=tab1[i];
- tab1[i]=0;
- //printf("y= %d",y);
- for(i=0;i<10 && tab2[i]!=0;i++);
- tab2[i]=y;
- }
- affichage(); //n,tab3,tab2,tab1);
- getchar();
- deplacement(tab3,tab2,tab1,n-1);
- }
- }
-
- void main()
- {
- int w,nb,i;
- memset(tab1,0,10*sizeof(int));
- memset(tab2,0,10*sizeof(int));
- memset(tab3,0,10*sizeof(int));
-
- printf("Saisir nb d anneaux (max 10) : ");
- scanf("%d",&nb);
- w=nb;
- for(i=0;i<10;i++)
- {
- tab1[i]=w;
- if (w>0)
- {
- w=w-1;
- }
- }
-
-
- if(nb<=10)
- {
- //affichage(nb,tab1,tab2,tab3);
- deplacement(tab1,tab2,tab3,nb);
- }
-
- }
#include<stdio.h>
#include<string.h>
#include<memory.h>
int nb,tab1[10],tab2[10],tab3[10];
void affichage() //int nb,int *tab1,int *tab2,int *tab3)
{
int i,w,l;
w=nb;
printf("\n");
for (l=9;l>=0;l--)
{
for (i=0;i<10-tab1[l];i++)
{
printf(" ");
}
for (i=0;i<tab1[l];i++)
{
printf("%c",177);
}
printf("%c",179);
for (i=0;i<tab1[l];i++)
{
printf("%c",177);
}
for (i=0;i<10-tab1[l];i++)
{
printf(" ");
}
for (i=0;i<10-tab2[l];i++)
{
printf(" ");
}
for (i=0;i<tab2[l];i++)
{
printf("%c",177);
}
printf("%c",179);
for (i=0;i<tab2[l];i++)
{
printf("%c",177);
}
for (i=0;i<10-tab2[l];i++)
{
printf(" ");
}
for (i=0;i<10-tab3[l];i++)
{
printf(" ");
}
for (i=0;i<tab3[l];i++)
{
printf("%c",177);
}
printf("%c",179);
for (i=0;i<tab3[l];i++)
{
printf("%c",177);
}
for (i=0;i<10-tab3[l];i++)
{
printf(" ");
}
//_getch();
printf("\n");
}
}
void deplacement(int *tab1,int *tab2,int *tab3,int n)
{
int i,y;
if (n>0)
{
deplacement(tab1,tab3,tab2,n-1);
for(i=9;i>0 && tab1[i]==0;i--);
if (tab1[i]!=0)
{
y=tab1[i];
tab1[i]=0;
//printf("y= %d",y);
for(i=0;i<10 && tab2[i]!=0;i++);
tab2[i]=y;
}
affichage(); //n,tab3,tab2,tab1);
getchar();
deplacement(tab3,tab2,tab1,n-1);
}
}
void main()
{
int w,nb,i;
memset(tab1,0,10*sizeof(int));
memset(tab2,0,10*sizeof(int));
memset(tab3,0,10*sizeof(int));
printf("Saisir nb d anneaux (max 10) : ");
scanf("%d",&nb);
w=nb;
for(i=0;i<10;i++)
{
tab1[i]=w;
if (w>0)
{
w=w-1;
}
}
if(nb<=10)
{
//affichage(nb,tab1,tab2,tab3);
deplacement(tab1,tab2,tab3,nb);
}
}
Conclusion
Faut appuyer sur 'entrer' pour avancer d'une étape à l'autre
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | | | | | |
|
|