blackpink jennie骂人:哪位高手帮我看下这个程序该怎么改~~~

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 01:41:55
我做的一个汉诺塔游戏的演示,但weigh总是不对~~~~

#include <graphics.h>
#include <stdio.h>
#define Y 405
int heigh[3];int weigh[3][10];int n=5;
main()
{
int i;
void hanoi(int n,int a,int b,int c);
void graph(int a,int b);
int graphdriver=DETECT,graphmode;
initgraph(&graphdriver,&graphmode,"\\tc");
bar(0,Y-2,640,Y+2);
bar(160,75,160,405);
bar(320,75,320,405);
bar(480,75,480,405);
for (i=1;i<=n;i++)
{ bar (90+i*64/n,Y-3-i*5,230-i*64/n,Y-i*5);}
getch();
heigh[0]=n;heigh[1]=0;heigh[2]=0;
for (i=0;i<n;i++)
{weigh[0][i]=n-i;
weigh[1][i]=0;
weigh[2][i]=0;}
hanoi(n,1,2,3);
getch();
closegraph();
}

void hanoi(int n,int a,int b,int c)
{
if (n==1)
graph(a,c);
else
{ hanoi(n-1,a,c,b);
graph(a,c);
hanoi(n-1,b,a,c);
}
}

void graph(int a,int b)
{ int i;
for (i=0;i<n;i++)
{ weigh[a-1][i]=weigh[a-1][i+1]; }
setfillstyle(0,15);
bar (a*160-70+weigh[a-1][0]*64/n,Y-3-heigh[a-1]*5,a*160+70-weigh[a-1][0]*64/n,Y-heigh[a-1]*5);
setfillstyle(1,15);
bar(a*160,75,a*160,405);
heigh[a-1]--;
heigh[b-1]++;
for (i=n-1;i>0;i--)
{ weigh[b-1][i]=weigh[b-1][i-1];}
weigh[b-1][0]=weigh[a-1][0]+1;
bar (b*160-70+weigh[b-1][0]*64/n,Y-3-heigh[b-1]*5,b*160+70-weigh[b-1][0]*64/n,Y-heigh[b-1]*5);
getch();
}