《《汉诺塔游戏》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汉诺塔游戏》PPT课件.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汉诺塔游戏演示汉诺塔游戏演示 游戏来源游戏来源 汉诺塔(又称河内塔)问题是印度的一个古老的汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着金刚石的棒,第一根上面套着6464个圆的金片,最大个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的
2、不能放在小的上面。解每次只能搬一个,而且大的不能放在小的上面。解答结果请自己运行计算,程序见尾部。面对庞大的答结果请自己运行计算,程序见尾部。面对庞大的数字数字(移动圆片的次数,看来,众僧们耗尽毕生精力移动圆片的次数,看来,众僧们耗尽毕生精力也不可能完成金片的移动。也不可能完成金片的移动。后来,这个传说就演变为汉诺塔游戏后来,这个传说就演变为汉诺塔游戏 问题要求问题要求 汉诺塔益智游戏汉诺塔益智游戏,完成以下功能完成以下功能:在平面上有在平面上有A A,B,C,B,C,三个三个位置,在位置,在A A位置上有位置上有NN个大小不等得长方形塔,从上至下,个大小不等得长方形塔,从上至下,依次排列,要
3、求将依次排列,要求将A A位置得位置得NN个长方形,通过个长方形,通过B B位置,移动到位置,移动到C C位置位置 设计思想 定义一个定义一个positionposition类,它名含友元类类,它名含友元类diskdisk,其次有公有成,其次有公有成员:过关条件判断函数员:过关条件判断函数 check()check(),HANOHANO塔显示函数塔显示函数displaydisplay()(),HANOHANO塔初始化函数塔初始化函数initial()initial();对于;对于HANOHANO塔数据塔数据int int a10;int b10;int c10a10;int b10;int c
4、10则为保护成员,这组数据是在游戏则为保护成员,这组数据是在游戏时用来动态显示游戏过程最重要的一组数据。设为保护成员时用来动态显示游戏过程最重要的一组数据。设为保护成员是为了便于以后派生类是为了便于以后派生类diskdisk的访问的访问 派生类派生类diskdisk是对基类是对基类positionposition的公有继承,它的公有成员的公有继承,它的公有成员名括主菜单界面函数名括主菜单界面函数welcome()welcome(),演示中的移动函数,演示中的移动函数mov(char x,char y,int N)mov(char x,char y,int N),递归演示函数,递归演示函数han
5、o(int n,char hano(int n,char a,char b,char c,int N)a,char b,char c,int N)递递归归函函数数选选择择函函数数显显示示函函数数移移动动函函数数演演示示函函数数汉诺塔汉诺塔游戏游戏程序设计流程图程序设计流程图 优点优点:(1 1)这个程序可以简这个程序可以简单的进行游戏演示,分为单的进行游戏演示,分为1-71-7关,关,第一关为第一关为3 3个盘子,第二关有个盘子,第二关有4 4个个盘子,第三关有盘子,第三关有5 5个盘子个盘子.(2 2)可以显现每步移动的方向,)可以显现每步移动的方向,可视化界面可视化界面(3)(3)程序稍加变化,就可以自动演程序稍加变化,就可以自动演示示 缺点缺点:(1 1)由于时间仓促和对由于时间仓促和对知识的掌握还不够,在游戏进行知识的掌握还不够,在游戏进行时,没有记录游戏时所用的时间时,没有记录游戏时所用的时间或步骤数或步骤数(2 2)游戏只能做长方形塔个数在)游戏只能做长方形塔个数在1010以内的个数。以内的个数。程序功能解析程序功能解析显示函数演示移动函数递归演示函数程序类说明Disk类类说说明明程序手动测试画面程程序序自自动动执执行行画画面面立立刻刻显显示示结结果果
限制150内