汉诺塔游戏设计.docx

上传人:b****7 文档编号:11081275 上传时间:2023-02-24 格式:DOCX 页数:16 大小:2.97MB
下载 相关 举报
汉诺塔游戏设计.docx_第1页
第1页 / 共16页
汉诺塔游戏设计.docx_第2页
第2页 / 共16页
汉诺塔游戏设计.docx_第3页
第3页 / 共16页
汉诺塔游戏设计.docx_第4页
第4页 / 共16页
汉诺塔游戏设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

汉诺塔游戏设计.docx

《汉诺塔游戏设计.docx》由会员分享,可在线阅读,更多相关《汉诺塔游戏设计.docx(16页珍藏版)》请在冰豆网上搜索。

汉诺塔游戏设计.docx

汉诺塔游戏设计

成绩评定表

学生姓名

张峻玮

班级学号

1003060119

专业

通信工程

课程设计题目

汉诺塔游戏设计

 

 

组长签字:

成绩

 

日期

20年月日

课程设计任务书

学院

信息科学与工程

专业

通信工程

学生姓名

张峻玮

班级学号

1003060119

课程设计题目

汉诺塔游戏设计

实践教学要求与任务:

1.学习LabVIEW的虚拟仪器原理、设计方法和实现技巧;

2.掌握简单LabVIEW程序的编程实现;

3.掌握简单通信系统设计和分析方法;

4.采用Labview语言,实现汉诺塔游戏的仿真。

(1)通过检索、查资料、调查研究、确定方案、画出组成系统结构方框图;

(2)采用LabVIEW实现汉诺塔游戏系统;

(3)系统调试与改进,调整系统参数,分析系统运行结果;

(4)写出设计总结报告。

工作计划与进度安排:

20周(上)学习LabVIEW虚拟仪器原理、设计方法和实现技巧,掌握简单LabVIEW程序的编程实现,掌握简单通信系统设计和分析方法。

20周(下)采用LabVIEW语言,实现汉诺塔功能,并对系统进行性能分析。

指导教师:

201年月日

专业负责人:

201年月日

学院教学副院长:

201年月日

目录

1目的及基本要求1

2汉诺塔游戏原理1

3汉诺塔游戏设计和仿真2

4具体设计步骤3

4.1详细步骤3

4.2主程序前后面板9

4.3设计中遇到的问题12

5结果及性能分析12

5.1运行结果12

5.2性能分析14

参考文献14

1目的及基本要求

熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现汉诺塔的设计和仿真。

要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。

本课程设计要求实现汉诺塔游戏的设计与仿真,即通过学习和了解labview开发环境,并分析汉诺塔游戏原理,在通过labview开发工具设计与实现汉诺塔游戏。

游戏规则主要是有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,点击柱子上的A、B、C按钮,柱子顶上的木块弹起,再点一下想放的位置,木块移至该柱子上。

或者利用键盘上的上下左右光标键控制木块移动:

先按“左”、“右”键移动光标到某柱子下,按“上”键,柱子顶上的木块弹起,再左右移动光标,按“下”键木块放下。

点击还原按钮,可回到当前关卡的初始状态,点退出键结束游戏。

2汉诺塔游戏原理

汉诺塔游戏在现实生活中对与智力的开发,逻辑思维的培养等都有很大的帮助。

在这种情况下,对汉诺塔游戏的研究和制作、仿真是十分很重要。

本文就对基于LabVIEW的汉诺塔游戏的设计与仿真做详细的说明。

本课程设计要求实现汉诺塔游戏的设计与仿真,即通过学习和了解labview开发环境,并分析汉诺塔游戏原理,在通过labview开发工具设计与实现汉诺塔游戏。

游戏规则主要是有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,点击柱子上的A、B、C按钮,柱子顶上的木块弹起,再点一下想放的位置,木块移至该柱子上。

或者利用键盘上的上下左右光标键控制木块移动:

先按“左”、“右”键移动光标到某柱子下,按“上”键,柱子顶上的木块弹起,再左右移动光标,按“下”键木块放下。

点击还原按钮,可回到当前关卡的初始状态,点退出键结束游戏。

游戏一共有七关,从第一关开始有三层盘子,每过一关则增加一个盘子,随着盘子的增加相应的移动次数也在呈2的n次幂减一的规律增加,比如第一关三层就至少需要移动7次。

游戏采用标准状态机模板,分几步执行。

游戏模式:

第一步,初始化。

让柱子A显示三个木块,其他柱子不显示。

第二步,提起。

点击有木块的柱子后,顶端木块上移一格,原位置置0(点击无木块柱子为无效点击)。

进入第三步,放下。

再点击一个柱子,判断其顶端木块是否比第二步中弹起木块大。

若是,将弹起木块置0,并将其值赋给所点柱子顶端木块往上一格的位置。

然后返回第二步。

二、三步的转换过程中,都要判断柱子C上木块是否按要求归位,若是,进入第四步:

获胜。

弹出对话框提示是否继续,选是则木块数加1,返回第一步;选否进入第五步:

终止。

终止程序。

如图1所示,即最终显示效果图:

图1汉诺塔游戏效果图

3汉诺塔游戏设计和仿真

首先熟悉虚拟仪器的设计思想,而后便可着手进行汉诺塔游戏的相关设计,控件架构以及函数设置。

4.具体设计步骤

4.1.1.汉诺塔顶端搜索模块

搜索游戏中顶端模块,游戏中获取游戏时处于顶端的模块,并查看这个模块是否可以移动,控件图如图2所示:

图2顶端模块搜索控件图

4.1.2.背景音乐

通过可获取背景音乐文件,通过此控件读取音乐并打开

音乐文件,再经过一系列读取和判断播放出背景音乐,最后通过

和可关闭背景音乐

背景音乐控件图如图3所示:

图3背景音乐

4.1.3.游戏初始化

该模块用来定义游戏界面中的柱子和盘子,以及界面画面显示,且保证盘子放置到柱子上时的大小顺序,

游戏初始化控件图如图4所示:

图4游戏初始化控件图

图5初始化显示效果

4.1.4.盘子提起程序

该程序块的功能是游戏时点击A(或B,C)相对应柱子上顶端盘子提起。

相关控件如下:

图5盘子提起右移

图6点击按钮提起

图7盘子提起控件图

          

              图8 效果图

 

4.1.5.盘子放下程序

即通过判断n的数值决定盘子是否放下,游戏时提起的盘子是否符合转移规则,如果不合规则只能放下,此程序还决定盘子放下的位置。

具体控件图如下:

图9n=3盘子放下

图10点击按钮盘子放下

图11盘子放下控件图

4.1.6.获胜程序模块

为保证在进行游戏时可以由游戏者自己决定是否继续下一关从而丰富汉诺塔游戏的功能和人性化程度,即在游戏者完成一关时,通过弹出选择窗口,可以选择是否继续下一关。

具体控件图如图8所示:

图12获胜模块控件图

4.1.7.程序终止模块

在汉诺塔游戏过程中,除了使游戏重新恢复到初始状态外,还可以在游戏过程中通过结束按钮,结束当前正在进行的游戏,即可以不用完成游戏就可以退出或重新定义游戏。

相关控件图以及其前面板图如下:

图13游戏结束

 

4.2主程序前后面板

1.前面板

图14主程序前面板框图

2.主程序后面板框图

图15主程序后面板框图

4.3设计中遇到的问题

由于是第一次进行LabVIEW的课程设计,缺乏相关的设计经验,因此一开始的时候确实无从下手。

但是经过老师和同学的指点,包括自己独立思考与查阅相关资料,我渐渐对这个软件熟悉了,并且觉得图形化编程的好处实在是非常多的。

由于对编程软件的不熟悉,导致在找相关控件时花费了许多时间,而且常常找到的是错误的控件,这直接造成程序运行失误。

这一点在熟悉软件之后,好了很多。

总体来说,设计过程遇到的问题不少,但是收获也更多。

也算是为大四的毕业设计做了一个良好的准备,于我而言,受益良多。

5结果及性能分析

5.1运行结果

1.开始游戏后,运行如下:

图16运行效果图

 

2.游戏过关以后,则系统显示如下:

图17过关显示效果图

5.2性能分析

游戏模式:

点击柱子上的A、B、C按钮,柱子顶上的木块弹起,再点一下想放的位置,木块移至该柱子上。

或者利用键盘上的上下左右光标键控制木块移动:

先按“左”、“右”键移动光标到某柱子下,按“上”键,柱子顶上的木块弹起,再左右移动光标,按“下”键木块放下。

点击还原按钮,可回到当前关卡的初始状态,点退出键结束游戏。

演示模式:

电脑按预定程序自动将木块堆到最右边的柱子上。

规则:

一次只能移动一个木块,木块可以累起来,但是必须把小的放在大的上面,成功把木块顺序不变的堆到最右边的柱子上为胜利。

第一关为三个木块,每过一关增加一个木块,一共有7关。

游戏采用标准状态机模板,分几步执行。

游戏模式:

第一步,初始化。

让柱子A显示三个木块,其他柱子不显示。

第二步,提起。

点击有木块的柱子后,顶端木块上移一格,原位置置0(点击无木块柱子为无效点击)。

进入第三步,放下。

再点击一个柱子,判断其顶端木块是否比第二步中弹起木块大。

若是,将弹起木块置0,并将其值赋给所点柱子顶端木块往上一格的位置。

然后返回第二步。

二、三步的转换过程中,都要判断柱子C上木块是否按要求归位,若是,进入第四步:

获胜。

弹出对话框提示是否继续,选是则木块数加1,返回第一步;选否进入第五步:

终止。

终止程序。

演示模式:

一、四、五步同上。

用n来控制最小木块和其他木块的提起、放下,n为循环次数对4的余数。

当n为0时,提起最小木块,进入下一循环,此时n为1,放下最小木块(木块数为奇放左边,木块数为偶放右边)。

进入下一循环,此时n为2,提起其他木块(先判断最小木块之外两柱顶端木块大小,提起较小者),进入下一循环,此时n为3,放下其他木块。

再下一次,n回到0。

演示原理:

移动过程遵守以下原则,必能成功将所有木块移到最右边,且移动步数最少。

1、最小木块始终朝一个方向移动(木块数为奇数时向左,木块数为偶数时向右)。

2、移动一次最小木块,移动一次其他木块(只有一种放法)……轮流移动。

参考文献

[1]labview入门与提高.赵品编著.人民邮电出版社.2000.11

[2]labview高级应用.赵品编著.人民邮电出版社.2000.11

[3]labview印刷电路板设计教程.肖玲妮编著.清华大学出版社2003.8

[4]labview完全自学手册.龙马工作室编著.人民邮电出版社2005.10.2

[5]虚拟仪器设计基础教程.黄松岭,吴静著.清华大学出版社,2008

[6]AMTLAB和LabVIEW仿真技术及应用实例.聂春燕,张猛,张万里著.清华大学出版社,2008

[7]测试工程与LabVIEW应用.戴鹏飞,王胜开,王格芳,马欣著.电子工业出版社,2006

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1