汉诺塔演示程序设计70228

汉诺塔演示程序设计70228

ID:6681157

大小:27.00 KB

页数:4页

时间:2018-01-22

汉诺塔演示程序设计70228_第1页
汉诺塔演示程序设计70228_第2页
汉诺塔演示程序设计70228_第3页
汉诺塔演示程序设计70228_第4页
资源描述:

《汉诺塔演示程序设计70228》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、汉诺塔演示程序设计70228/********hanoi.c*********/#includestructH{intdata[15];/*存放每个盘的代号*/inttop;/*每个塔的具体高度*/}num[3];/*三个塔*/voidmove(charx,chary,structHnum[3]);/*移动的具体过程*/voidhanoi(charx,chary,charz,intn,structHnum[3]);/*递归*/voidInit(void);/*初始化*/voidClose(void);/*图形关闭

2、*/intcomputer=1;/*自动控制与手动控制的标志*/intspeed=0;/*全局变量speed主要是演示过程的速度*/voidmain(void){Init();/*初始状态*/Close();/*图形关闭*/exit(0);}voidInit(void)/*初始化*/{intgd=DETECT,gm;inti,n,color;clrscr();printf("pleaseinputn(n<=10):");/*输入要演示的盘子数*/scanf("%d",&n);printf("Pleaseinput1or2:1.com

3、puter2.people");scanf("%d",&i);if(i==2)/*选择手动控制标志为0*/computer=0;if(n<1

4、

5、n>10)n=10;/*越界的话n当10处理*/if(computer)/*如果是自动控制的话输入速度*/{printf("pleaseinputspeed:");/*输入速度*/scanf("%d",&speed);}initgraph(&gd,&gm,"c:\tc");cleardevice();for(i=0;i<3;i++)num[i].top=-1;/*三个地方的高度开始都为-1

6、*/for(i=0;i

7、top]),400-20*i+8);/*画矩形*/}setcolor(YELLOW);outtextxy(180,450,"anykeytocontinue");settextstyle(0,0,2);outtextxy(90,420,"A");/*塔座标志*/outtextxy(240,420,"B");outtextxy(390,420,"C");getch();/*接收字符后就执行递归操作*/hanoi('a','b','c',n,num);}voidmove(charx,chary,structHnum[3])/*移动的具体过程

8、*/{inti;charnum1[3],num2[3];sprintf(num1,"%c",x-32);/*将小写变成大写,并转换成字符串输出*/sprintf(num2,"%c",y-32);setfillstyle(SOLID_FILL,BLACK);/*把原来的地方移去涂黑*/bar(0,0,640,60);setcolor(RED);outtextxy(150,30,num1);/*输出移动过程*/outtextxy(200,30,"--->");outtextxy(310,30,num2);settextstyle(0,0,2

9、);setfillstyle(SOLID_FILL,BLACK);/*把原来的地方移去涂黑*/bar(100+150*(x-97)-(33-3*num[x-97].data[num[x-97].top]),400-20*num[x-97].top-8,100+150*(x-97)+(33-3*num[x-97].data[num[x-97].top]),400-20*num[x-97].top+8);num[y-97].top++;/*入栈,目标点的top加1*/num[y-97].data[num[y-97].top]=num[x-9

10、7].data[num[x-97].top];/*在目标点盘子的代号与源点盘子的代号相同*/num[x-97].top--;/*出栈,原来地方的top减1*/setfillstyle(SOLID_FILL,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。