《汉诺塔游戏》PPT课件.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计流程图
汉诺塔 游戏
递 归 函 数
选 择 函 数
显 示 函 数
移 动 函 数
演 示 函 数
程序功能解析
优点:(1)这个程序可以简 单的进行游戏演示,分为1-7关, 第一关为3个盘子,第二关有4个 盘子,第三关有5个盘子…... (2)可以显现每步移动的方向, 可视化界面
(3)程序稍加变化,就可以自动演 示
问题要求
汉诺塔益智游戏,完成以下功能:在平面上有A,B,C,三个 位置,在A位置上有N个大小不等得长方形塔,从上至下, 依次排列,要求将A位置得N个长方形,通过B位置,移动到 C位置
设计思想
定义一个position类,它名含友元类disk,其次有公有成 员:过关条件判断函数 check(),HANO塔显示函数 display(),HANO塔初始化函数initial();对于HANO塔数据 int a[10] ; int b[10]; int c[10]则为保护成员,这组数据是在游 戏时用来动态显示游戏过程最重要的一组数据。设为保护成 员是为了便于以后派生类disk的访问 派生类disk是对基类position的公有继承,它的公有成员 名括主菜单界面函数welcome(),演示中的移动函数 mov(char x,char y,int N),递归演示函数hano(int n,char a,char b,char c,int N)
缺点:(1)由于时间仓促和对 知识的掌握还不够,在游戏进行 时,没有记录游戏时所用的时间 或步骤数 (2)游戏只能做长方形塔个数在 10以内的个数。
显 示 函 数
演 示 移 动 函 数
递 归 演 示 函 数
程 序 类 说 明
Di sk 类 说 明
程 序 手 动 测 试 画 面
程Байду номын сангаас序 自 动 执 行 画 面
立 刻 显 示 结 果
汉诺塔游戏演示
游戏来源
汉诺塔(又称河内塔)问题是印度的一个古老的 传说。开天辟地的神勃拉玛在一个庙里留下了三根 金刚石的棒,第一根上面套着64个圆的金片,最大 的一个在底下,其余一个比一个小,依次叠上去, 庙里的众僧不倦地把它们一个个地从这根棒搬到另 一根棒上,规定可利用中间的一根棒作为帮助,但 每次只能搬一个,而且大的不能放在小的上面。解 答结果请自己运行计算,程序见尾部。面对庞大的 数字(移动圆片的次数)18446744073709551615, 看来,众僧们耗尽毕生精力也不可能完成金片的移 动。 后来,这个传说就演变为汉诺塔游戏