}
//移动
void move(int n,int one,int three)
{
sprintf(step, _T("%d"),++stepn);
outtextxy(340,140,step);
pan[one-1]-=1;
pan[three-1]+=1;
setlinestyle(PS_SOLID,NULL,12);
clearrectangle((one-1)*200+(N-n)*7,390-(pan[one-1])*14-6,(one-1)*200+180-(N-n)*7,390-(pan[one-
1])*14+6);
dizuo();
setlinestyle(PS_SOLID,NULL,12);
line((three-1)*200+(N-n)*7+14,390-(pan[three-1]-1)*14,(three-1)*200+166-(N-n)*7,390-(pan[three-
1]-1)*14);
}
//汉诺塔算法
void hanoi(int n,int one,int two,int three)
{
if (n==1)
{
move(n-1,one,three);
}
else
{
hanoi(n-1,one,three,two);
Sleep(2000);
move(n-1,one,three);
Sleep(2000);
hanoi(n-1,two,one,three);
}
}
void main()
{
initgraph(640,480); //初始化图形
// 设置背景色为蓝色
setbkcolor(BLUE);
// 用背景色清空屏幕
cleardevice();
settextstyle(30, 0, _T("宋体"));
drawtext(_T("汉诺塔动画演示"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
settextstyle(16, 0, _T("宋体"));