贪吃蛇游戏Labview课程设计报告_第1页
贪吃蛇游戏Labview课程设计报告_第2页
贪吃蛇游戏Labview课程设计报告_第3页
贪吃蛇游戏Labview课程设计报告_第4页
贪吃蛇游戏Labview课程设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Labview课程设计—贪吃蛇学院:信息科学与工程学院班级:自动化1302姓名:赵仕军学号:20137214引言:Labview是一款程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是Labview与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而Labview使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。同C语言和BASIC语言一样,Labview也是通用的编程系统,有一个完成任何编程任务的庞大函数库。Labview的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。Labview也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序的结果、单步执行等等,便于程序的调试。Labview是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而Labview采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是Labview的程序模块。Labview提供很多外观与传统仪器类似的控件,可用来方便地创建用户界面。用户界面在Labview中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。Labview的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。本学期通过对于Labview的学习对于Labview有了一定的认识,在此基础上,在labview平台上,利用设计多子VI,我设计了一个贪吃蛇的小游戏。包含了失败提醒以及统计分数、开始暂停的功能。目录程序设计程序设计流程………………….模块设计及说明………………调试运行………程序不足分析……心得体会参考文献程序设计程序设计流程1.1程序设计分析1)设计一个主界面,主界面的显示通过二维布尔型数组(后面按称作LED)实现。2)设计食物的随机产生,通过随机产生一系列数,每次产生两个,作为食物的坐标,并且相应坐标位置数组上赋值,点亮LED灯。3)设计分数统计,并显示。4)设计按键操作,实现蛇的各个方向移动。每个按键赋予一个值,根据值判断方向,并且在相应方向上增加以及删除节点。5)吃食物,蛇移动等相关子VI的建立。1.2设计流程全局变量globalVI添加mainVI 添加按键KeyScan子VI修改global全局VImove子VI初步完成,调试成功(缺少isDeadVI)添加显示freshDisplayVI添加数据初始化initialize.VI添加食物产生randFood.VI添加失败提醒isDead.VI添加按键处理keyAction.VI(新建)调试运行2、模块设计及说明2.1主VI模块main.vi前面板包括蛇显示界面,蛇移动范围界面,分数显示界面,蛇移动相关操作操作按键主程序组成:包含了一个主要while循环结构及分支while循环、顺序结构、条件结构、菜单操作模块、初始化局部变量分数、初始化变量模块子VI、按键值赋值模块子VI、根据按键值定义蛇动作模块子VI、显示二维数组赋值模块子VI、显示LED赋值数组、判断能否继续游戏判定子VI、食物随机生成子VI、蛇吃到食物处理子VI、蛇移动子VI。分数显示模块:放在吃掉食物为真的情况下,不断加1达到分数累计的作用。分数模块初始化:主VI程序框图:2.2全局变量模块global.vi1)显示模块全局变量存放每一位led灯的状态,0表示灭,-1表示亮2)蛇头、蛇尾节点全局变量存放蛇头、蛇尾的位置、方向信息3)蛇转向点全局变量存放蛇头转向的位置、方向信息4)蛇转向信息全局变量cur_turn_index记录当前时刻方向next_turn_index记录下一时刻方向turn_size记录转向次数(设定0为向上,1为向下,2为向左,3为向右转向)4)画面最大显示存放显示界面以及蛇运动范围最大行、列格数信息。5)二维数组值用于控制二维LED点阵数组的量灭6)食物位置全局变量存放随机产生的食物的位置信息2.2初始化各全局变量initialize.vi生成一个宽度为18X18的显示界面,最外边一圈LED灯点亮。同时生成一个长度为三个方形LED,头节点位于坐标为(3,5),尾节点位于坐标(3,3)的方块蛇,出始运动方向向右。2.3按键赋值KeyScan.vi前面板:主程序:实现对上下左右键值赋值上0、下1、左2、右3,并设立使能信号变量,有键值才使能判断按键动作子VI有效。2.3按键动作判断KeyAction.vi判断动作并将动作信息传递给蛇头,并保存动作节点位置相关信息,包含转向点的坐标,转向次数,以及转向点的转向2.4刷新显示updateDisplay.vi前面板:根据0灭,-1亮的原则。将snake_buff数组值与0比较,等于0,对应坐标布尔数组赋值F,不等于0,对应坐标布尔数组赋值T,给二维布尔数组LED显示。程序框图:2.5判断游戏是否继续isDead.vi判断蛇是否撞墙或者咬到自己,满足上述情况deadFlag布尔型显示控件,作为标志位显示为1,用于触发相应条件语句。2.5判断蛇是否吃掉食物isFoodEaten.vi判断蛇是否碰到食物,碰到食物便增加一个头节点。通过四个方向来判断,在四个方向哪个方向上增加节点。2.6随机产生食物randFood.vi随机在游戏界面横坐标及纵坐标中产生随机数,组合作为食物位置并点亮相应LED灯,同时限定了食物坐标的范围是在18X18界面范围内。2.7蛇移动move.vi蛇根据按键方向移动,过程中不断更新头节点和尾节点坐标以及方向。如果吃到了食物,会增加一节长度。运动的同时会删除尾节点,延伸到下一个节点。将转向信息赋值给尾节点,同时将值赋值到二维数组snake_buff中点亮相应LED灯。2.8菜单栏设计开始(start)、暂停(stop)、退出(停止)功能实现:失败后点击开始,重新初始化程序,以及各变量;Stop暂停游戏,并且点击开始能当前继续游戏;3、调试运行运行界面如下:点击开始:外圈灯全部点亮,生成一条长度为三的蛇,初始方向向右移动。同时产生食物,初始化坐标为(6,6)。成功吃到食物:增加一个节点并加一分,当前得分为6分失败提醒:弹出一个对话框,下一次开始又进入初始化,并且分数记零程序不足分析1)按键操作采用的是鼠标点击界面的方向键,达到蛇运动控制效果,而非通过键盘操作直接控制2)蛇形采用简易的方块,并没有做到逼真的蛇形3)计分单一化,应当设置关卡,采用过关制,并且每一关的蛇移动速度会加快,从而增加游戏难度4)界面不够美观心得体会从学长那得知Labview这门课很重要,无论是以后继续研究生,或是直接工作,对自己的帮助都很大。这个软件的实用性很强啊,学好了用于实际中,可以省下很多不必要的工作。这门课的发展前景,即使我们在以后的工作中不在这方面发展,这门课留给我们的学习思想和技术技能都是很宝贵的。 Labview采用的是G语言,也就是图形化语言,它不仅是一种编程环境,也是一门编程语言。Labview因为采用的是图形化语言,比较适合于专业知识比较薄弱的学习者。Labview采用的编程思想和传统C语言一样,是嵌套,主函数包含子函数的思想。所以,当要编写比较大的程序时,整个结构就显得很大很复杂,编写起来比较困难。同时感觉这是一门实践性很强的课,很多知识是从上课听老师讲的,或是书上看来的,而且听完、看完之后,自己还觉的不错,觉得自己已经掌握的很好了,但真到实际做东西的时候,就会觉得困难重重,这时再去查书,便有了对知识的更深层次的理解,其实在这方面更应该感谢网络给我们带来的方便,有任何问题,上网搜一下,很多问题都可以迎刃而解,而且很多网友都有自己独特的见解,在他们的讨论中看到了很多有用的东西。在这次虚拟仪器设计过程中,遇到很多的困难,我通过上网,加一些QQ群,论坛各种询问,在这样的努力下,终于实现了功能,我当时特别兴奋。学以促用,用以促学,我们感觉这也是这门课教给我们的重要知识。带着问题学习才能学到真正的知识。在这学期的学习中我们学到了很多,也认识到我们需要学的东西更多,仅凭现在学到的东西是远远不够的,要想在这方面作出一些成绩,必须继续学下去的,经常练手做些小项目。 参考文献:【1】Labview程序设计基础与提高(机械工业出版社张兰勇等编著)【2】Labview实践教程(电子工业出版社RobertH.BishopNationalIstruments著)【2】Labview大学实用教程(中国工信出版社JefferyTravisJimKring著)基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于ATmega16单片机的流量控制器的开发基于MSP430单片机的远程抄表系统及智能网络水表的设计基于MSP430单片机具有数据存储与回放功能的嵌入式电子血压计的设计基于单片机的氨分解率检测系统的研究与开发锅炉的单片机控制系统基于单片机控制的电磁振动式播种控制系统的设计基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制一种RISC结构8位单片机的设计与实现HYPERLINK"/detail.htm?3899

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论