版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程号:ZXXXXXXXX虚拟仪器设计课程设计班级:XXXXXXXX学号:XXXXXXXXXX姓名:XXX目录1、2048游戏设计的内容 31.1游戏规则 31.2设计要求 32、2048游戏的程序设计 32.1程序框图 42.2前面板的设计 42.3初始化程序设计 52.4用户控制程序设计 52.5移动程序和相同值累计程序设计(关键) 52.6随机数生成程序设计 72.7失败/成功程序设计 72.8声音控制程序设计 82.9可拓展的功能 93、总结 93.1对知识的复习 93.2收获 9
LabVIEW环境下的2048游戏设计1、2048游戏设计的内容2048是一款比较流行的数字游戏,最早于2014年3月20日发行。原版2048首先在GitHub上发布,原作者是GabrieleCirulli,后被移植到各个平台。这款游戏是基于《1024》和《小3传奇》的玩法开发而成的新型数字游戏。1.1游戏规则2048游戏共有16个格子,初始时初始数字由2或者4构成。(1)向一个方向滑动,所有格子会向那个方向运动。(2)相同数字的两个格子,相撞时数字会相加。(3)每次滑动时,空白处会随机刷新出一个数字的格子。(4)当界面不可运动时(当界面全部被数字填满时),游戏结束;当界面中最大数字是2048时,游戏胜利。1.2设计要求(1)美观的界面;(2)使用↑、↓、→、←四个方向键进行操作;(3)具有开始游戏、结束游戏功能按钮等基础功能;(4)游戏得分的正确记录;(5)游戏失败和胜利的提示。2、2048游戏的程序设计根据2048的游戏规则,软件设计需要实现的基本功能有:随机生成2或4,上移、下移、左移、右移,判断游戏失败与胜利,显示游戏得分,游戏失败和胜利的提示。2.1程序框图图1程序框图图2VI层次结构图通过LabVIEW的VI层次结构图(上图2)可以看出,2048游戏采用了一个子VI结构。生成2或4、上移、下移、左移、右移、是否失败、胜利,通过主VI和子VI协同实现;在游戏运行过程中,当条件满足时,就会执行相应的程序。2.2前面板的设计利用一个4×4的二维数组存储棋盘,为了美观和用户体验,只做了一个自定义控件(见图3),分别为空白、2、4、8、16、…、8192共14个图片元素。在前面板放置输入数组、分数显示框、重新开始按钮、结束按钮,并进行合理布局合理布局(见图4)。图3控件2048图4前面板设计2.3初始化程序设计在程序运行开始时,需要对数组进行初始化,在初始化程序中,先生成一个4行4列的数组(数组元素均为0)。然后通过For循环生成一个一维数组(元素个数为4,且为0,1,2,3中的数)随机在n行n列(n=0,1,2,3,)的位置生成21=2图5初始化程序2.4用户控制程序设计用户控制部分使用一个事件结构来检测事件,事件分别为:超时、输入数组改变、方向键改变、键按下,可以处理游戏过程中用户可能的键盘操作。其中,键按下事件是在用户按下键盘上的↑、↓、→、←四个方向键时,通过扫描键盘上按键扫描代码,判断出键盘上按下的按键,分别转到对应的上移、下移、右移、左移状态。图6用户控制程序2.5移动程序和相同值累计程序设计(关键)上移、下移、右移、左移四种移动状态是2048游戏中最主要、最频繁的操作。四个方向的移动程序都可以由左移程序来实现(数组反转即为右移程序,数组转置即为上移程序,数组反转、转置即为下移程序)。因此以左移程序和左移相同值累计程序来进行说明。左移程序设计:用户按下键盘上的←方向键时,执行左移程序,左移程序每次扫描一行数组元素进行处理:若同行内存在相同元素,且元素间相邻或间隔元素为0时,将元素整体左移。(示例:若输入数组为[0101],则经过左移程序的处理输出[1100])并且将输入数组与输出数组进行比较,输出比较值。(用于判断是否失败)图7左移程序图8相同值累计程序当数组进行完左移处理后,需要进一步进行相邻相同元素的累计到左侧数组元素上。具体程序(见图8)实现流程如下:当两个相邻的元素输入时,第2个数会进入条件结构的“真”部分。实现两元素累计后的输出和得分计算的功能。若某次动作为有效动作(指移动完成后,两相同元素相加的过程),其该动作的得分为2n+1。(举例:输入数组为[1100],则输出数组为[2000],得分为2n+1=212.6随机数生成程序设计当数组进行完移动程序和相同值累计程序后,要在空白位置生成一个“2”或“4”,用索引数组函数和替换数组子集实现。图9随机数生成程序2.7失败/成功程序设计本游戏设定当用户合成“2048”会提示“您已达成合成2048”的字样。实现过程:两层For循环的嵌套,使得数组元素遍历与11比较(此处的11指的是211=2048)当数组16个元素中出现2048提示成功,仍可继续进行游戏。(直至合成而对于失败的判定,关键在于移动程序和相同值累计程序反馈回来的比较信号,若这八个返回值全部为真,说明4×4的数组已经完全占满,已经没有动作的空间,此时利用条件结构弹出提示弹窗“GameOver!!!”。图10失败/成功程序2.8声音控制程序设计观察原版的2048游戏,当进行移动和合成的时候,会产生提示音。因此录制了游戏中的动作声音和合成声音。通过静音键和方向键的值的变化来共同控制声音的播放与否。图11声音控制前面板图12声音控制程序至此,全部程序设计完成。2.9可拓展的功能显示历史最高分和排行榜:采用配置文件,利用配置文件的队列特性,保存程序运行中的得分数据。3、总结3.1对知识的复习通过此次的设计,对课程的知识达到了复习的效果,本设计中出现了例如:数据类型,程序结构中的循环结构、事件结构、条件结构,对于音频文件的播放,数组函数的使用,对于子VI的应用等知识。同时也更加熟悉了前面板的美观设计。3.2收获我平日闲暇时刻喜欢玩2048
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:心血管防控新创新研究进展 心内科查房
- 某运输公司安全生产和岗位责任制模板
- 2025年山东省技能兴鲁职业技能大赛(饲料兽药技术员)考前模拟试题及答案
- ISO9001风险及机遇评价措施应对表
- 易栓症筛查知识科普2026
- 全民阅读活动周参与攻略
- 2026届鹤壁市高三下学期第五次调研考试历史试题含解析
- 2025-2026学年安徽省六安市高三第二次调研历史试卷含解析
- 2026年虚拟现实显示技术创新报告
- 循证康复实践中的康复-技术融合
- 盆底康复中心运营管理
- 新疆乌鲁木齐天山区2026届中考历史全真模拟试卷含解析
- 辽宁省能源集团招聘笔试题库2026
- 2026年乡村医生培训考试试卷及答案(共十九套)
- 2026年湖北省武汉市辅警协警笔试真题及答案
- GB/T 47417-2026蜂蜜中水不溶物的测定
- 管道拆除安全措施方案
- 成人2型糖尿病口服降糖药联合治疗专家共识(2025版)课件
- 110kV变电站电气设备吊装专项施工方案
- 便利店工作制度详细流程
- 2026年云南省初中学业水平考试数学仿真卷(一)(含答案)
评论
0/150
提交评论