欢迎来到天天文库
浏览记录
ID:13985415
大小:35.50 KB
页数:4页
时间:2018-07-25
《汉诺塔 图形界面 c++ 源码 交大 项目》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/*汉诺塔图形界面C++源码VC6.0运行正常。*/include#include#include#include#include#includestructT{inth;//塔的高度intx;//塔的第一个盘的x坐标,y坐标等于(7+n-塔的高度h)intl;//塔的第一个盘的长度}ta[3]={{10,15,2},{0,0,0},{0,0,0}};charc[18][79],hnt[18][79]={{""},{"汉诺塔动画演示"},{""},{"╔═══════
2、═════════════════════════════╗"},{"║║"},{"║║"},{"║║"},{"║▆║"},{"║▆▆║"},{"║▆▆▆║"},{"║▆▆▆▆║"},{"║▆▆▆▆▆║"},{"║▆▆▆▆▆▆║"},{"║▆▆▆▆▆▆▆║"},{"║▆▆▆▆▆▆▆▆║"},{"║▆▆▆▆▆▆▆▆▆║"},{"║▆▆▆▆▆▆▆▆▆▆║"},{"╚════════════════════════════════════╝"}};intn;intsum=0;intcomputerorpeople=1;intspeed=0;voidcount_ta_1(intta_1)/
3、/重新计算塔的第一个盘的x坐标和塔的高度{inti;intj;intk=0;for(i=7;i<7+n;i++)for(j=4+ta_1*24;j<28+ta_1*24;j++){if(hnt[i][j]!=''){for(;hnt[i][j+k]!='';k++);ta[ta_1].x=j;ta[ta_1].l=k;return;}}}voidmove(intta_1,intta_3){inti;sum++;ta[ta_3].h++;ta[ta_3].x=ta[ta_1].x+(ta_3-ta_1)*24;//每个塔之间相隔4ta[ta_3].l=ta[ta_1].l;for(i
4、=0;i5、l;cout<6、3);//将塔座A的第m个盘子移到塔座Chanoi(ta_2,ta_1,ta_3,m-1);//将塔座B的m-1个盘子移到塔座C}}voidmain(){inti,b=1;for(i=0;i<18;i++){for(intj=0;j<=78;j++){c[i][j]=hnt[i][j];}}while(b==1){cout<<"请输入汉诺塔的高度:";cin>>n;cout<<"请选择:输入1由电脑自动控制;"<>computerorpeople;if(computerorpeople!=17、&&computerorpeople!=2)computerorpeople=1;if(computerorpeople==1){cout<<"请输入移动盘的速度(例如:输入1000则代表1秒):";cin>>speed;}if(n<18、9、n>10)n=10;ta[0].h=n;system("cls");//清除屏幕for(i=0;i<7+n;i++)cout<
5、l;cout<6、3);//将塔座A的第m个盘子移到塔座Chanoi(ta_2,ta_1,ta_3,m-1);//将塔座B的m-1个盘子移到塔座C}}voidmain(){inti,b=1;for(i=0;i<18;i++){for(intj=0;j<=78;j++){c[i][j]=hnt[i][j];}}while(b==1){cout<<"请输入汉诺塔的高度:";cin>>n;cout<<"请选择:输入1由电脑自动控制;"<>computerorpeople;if(computerorpeople!=17、&&computerorpeople!=2)computerorpeople=1;if(computerorpeople==1){cout<<"请输入移动盘的速度(例如:输入1000则代表1秒):";cin>>speed;}if(n<18、9、n>10)n=10;ta[0].h=n;system("cls");//清除屏幕for(i=0;i<7+n;i++)cout<
6、3);//将塔座A的第m个盘子移到塔座Chanoi(ta_2,ta_1,ta_3,m-1);//将塔座B的m-1个盘子移到塔座C}}voidmain(){inti,b=1;for(i=0;i<18;i++){for(intj=0;j<=78;j++){c[i][j]=hnt[i][j];}}while(b==1){cout<<"请输入汉诺塔的高度:";cin>>n;cout<<"请选择:输入1由电脑自动控制;"<>computerorpeople;if(computerorpeople!=1
7、&&computerorpeople!=2)computerorpeople=1;if(computerorpeople==1){cout<<"请输入移动盘的速度(例如:输入1000则代表1秒):";cin>>speed;}if(n<1
8、
9、n>10)n=10;ta[0].h=n;system("cls");//清除屏幕for(i=0;i<7+n;i++)cout<
此文档下载收益归作者所有