收藏 分享(赏)

2013—贪吃蛇游戏Labview课程设计报告.doc

上传人:精品资料 文档编号:7953585 上传时间:2019-05-31 格式:DOC 页数:20 大小:2.67MB
下载 相关 举报
2013—贪吃蛇游戏Labview课程设计报告.doc_第1页
第1页 / 共20页
2013—贪吃蛇游戏Labview课程设计报告.doc_第2页
第2页 / 共20页
2013—贪吃蛇游戏Labview课程设计报告.doc_第3页
第3页 / 共20页
2013—贪吃蛇游戏Labview课程设计报告.doc_第4页
第4页 / 共20页
2013—贪吃蛇游戏Labview课程设计报告.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、Labview 课程设计贪吃蛇学院: 信息科学与工程学院班级: 自动化 1302 姓名: 赵仕军 学号: 20137214 引言:Labview 是一款程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于 C 和 BASIC 开发环境,但是 Labview 与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而 Labview 使用的是图形化编辑语言 G 编写程序,产生的程序是框图的形式。 同 C 语言和 BASIC 语言一样,Labview 也是通用的编程系统,有一个完成任何编程任务的庞大函数库。Labview 的函数库包括数据采集、GPIB、串口控制、数据分析

2、、数据显示及数据存储等。Labview 也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序的结果、单步执行等等,便于程序的调试。Labview 是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 Labview 采用数据流编程方式,程序框图中节点之间的数据流向决定了 VI 及函数的执行顺序。VI 指虚拟仪器,是 Labview的程序模块。Labview 提供很多外观与传统仪器类似的控件,可用来方便地创建用户界面。用户界面在 Labview 中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是 图

3、形化源代码,又称 G 代码。Labview 的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。本学期通过对于 Labview 的学习对于 Labview 有了一定的认识,在此基础上, 在 labview 平台上,利用设计多子 VI,我设计了一个贪吃蛇的小游戏。包含了失败提醒以及统计分数、开始暂停的功能。目录一、 程序设计1、 程序设计流程.2、 模块设计及说明3、 调试运行4、 程序不足分析二、 心得体会参考文献一、 程序设计1、 程序设计流程1.1 程序设计分析1)设计一个主界面,主界面的显示通过二维布尔型数组(后面按称作 LED)实现。2)设计食物的随机产生,通过随机产生一

4、系列数,每次产生两个,作为食物的坐标,并且相应坐标位置数组上赋值,点亮LED 灯。3)设计分数统计,并显示。4)设计按键操作,实现蛇的各个方向移动。每个按键赋予一个值,根据值判断方向,并且在相应方向上增加以及删除节点。5)吃食物,蛇移动等相关子 VI 的建立。1.2 设计流程全局变量 global VI添加 main VI添加按键 KeyScan 子 VI修改 global 全局 VImove 子 VI 初步完成,调试成功( 缺少 isDead VI)添加显示 freshDisplay VI添加数据初始化 initialize.VI添加食物产生 randFood.VI添加失败提醒 isDead

5、.VI添加按键处理 keyAction.VI(新建)调试运行2、模块设计及说明2.1 主 VI 模 块 main.vi前面板包括蛇显示界面,蛇移动范围界面,分数显示界面,蛇移动相关操作操作按键主程序组成:包含了一个主要 while 循环结构及分支 while 循环、顺序结构、条件结构、菜单操作模块、初始化局部变量分数、初始化变量模块子 VI、按键值赋值模块子 VI、根据按键值定义蛇动作模块子 VI、显示二维数组赋值模块子 VI、显示 LED赋值数组、判断能否继续游戏判定子 VI、食物随机生成子 VI、蛇吃到食物处理子 VI、蛇移动子 VI。分数显示模块:放在吃掉食物为真的情况下,不断加 1 达

6、到分数累计的作用。分数模块初始化:主 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)二维数组值用于

7、控制二维 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

8、.vi判断动作并将动作信息传递给蛇头,并保存动作节点位置相关信息,包含转向点的坐标,转向次数,以及转向点的转向2.4 刷 新 显 示 updateDisplay.vi前面板:根据 0 灭,-1 亮的原则。将 snake_buff 数组值与 0 比较,等于 0,对应坐标布尔数组赋值 F,不等于 0,对应坐标布尔数组赋值 T,给二维布尔数组 LED 显示。程序框图:2.5 判 断 游 戏 是 否 继 续 isDead.vi判 断 蛇 是 否 撞 墙 或 者 咬 到 自 己 , 满 足 上 述 情 况 deadFlag 布尔型显示控件,作为标志位显示为 1,用于触发相应条件语句。2.5 判 断 蛇

9、是 否 吃 掉 食 物 isFoodEaten.vi判断蛇是否碰到食物,碰到食物便增加一个头节点。通过四个方向来判断,在四个方向哪个方向上增加节点。2.6 随 机 产 生 食 物 randFood.vi随机在游戏界面横坐标及纵坐标中产生随机数,组合作为食物位置并点亮相应 LED 灯,同时限定了食物坐标的范围是在 18X18 界面范围内。2.7 蛇移动 move.vi蛇根据按键方向移动,过程中不断更新头节点和尾节点坐标以及 方向。如果吃到了食物,会增加一节长度。运动的同时会删除尾节点,延伸到下一个节点。将转向信息赋值给尾节点,同时将值赋值到二维数组 snake_buff 中点亮相应 LED 灯。

10、2.8 菜单栏设计开始(start) 、暂停(stop)、退出(停止)功能实现:1) 失败后点击开始,重新初始化程序,以及各变量;2) Stop 暂停游戏,并且点击开始能当前继续游戏;3、调试运行运行界面如下:点击开始:外圈灯全部点亮,生成一条长度为三的蛇,初始方向向右移动。同时产生食物,初始化坐标为(6,6) 。成功吃到食物:增加一个节点并加一分,当前得分为 6 分失败提醒:弹出一个对话框,下一次开始又进入初始化,并且分数记零5、 程序不足分析1)按键操作采用的是鼠标点击界面的方向键,达到蛇运动控制效果,而非通过键盘操作直接控制2)蛇形采用简易的方块,并没有做到逼真的蛇形3)计分单一化,应当

11、设置关卡,采用过关制,并且每一关的蛇移动速度会加快,从而增加游戏难度4)界面不够美观二、 心得体会从学长那得知 Labview 这门课很重要,无论是以后继续研究生,或是直接工作,对自己的帮助都很大。这个软件的实用性很强啊,学好了用于实际中,可以省下很多不必要的工作。这门课的发展前景,即使我们在以后的工作中不在这方面发展,这门课留给我们的学习思想和技术技能都是很宝贵的。Labview 采用的是 G 语言,也就是图形化语言,它不仅是一种编程环境,也是一门编程语言。Labview 因为采用的是图形化语言,比较适合于专业知识比较薄弱的学习者。Labview采用的编程思想和传统 C 语言一样,是嵌套,主

12、函数包含子函数的思想。所以,当要编写比较大的程序时,整个结构就显得很大很复杂,编写起来比较困难。同时感觉这是一门实践性很强的课,很多知识是从上课听老师讲的,或是书上看来的,而且听完、看完之后,自己还觉的不错,觉得自己已经掌握的很好了,但真到实际做东西的时候,就会觉得困难重重,这时再去查书,便有了对知识的更深层次的理解,其实在这方面更应该感谢网络给我们带来的方便,有任何问题,上网搜一下,很多问题都可以迎刃而解,而且很多网友都有自己独特的见解,在他们的讨论中看到了很多有用的东西。在这次虚拟仪器设计过程中,遇到很多的困难,我通过上网,加一些QQ 群,论坛各种询问,在这样的努力下,终于实现了功能,我当时特别兴奋。学以促用,用以促学,我们感觉这也是这门课教给我们的重要知识。带着问题学习才能学到真正的知识。在这学期的学习中我们学到了很多,也认识到我们需要学的东西更多,仅凭现在学到的东西是远远不够的,要想在这方面作出一些成绩,必须继续学下去的,经常练手做些小项目。参考文献:【1】Labview 程序设计基础与提高(机械工业出版社 张兰勇等编著)【2】Labview 实践教程(电子工业出版社 RobertH.Bishop National Istruments 著)【2】Labview 大学实用教程(中国工信出版社 Jeffery Travis Jim Kring 著)

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报