background image

}
//移动
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("宋体"));