基于labview的贪吃蛇游戏程序设计
毕业设计论文-基于Java的游戏设计贪吃蛇

毕业设计(论文)中文摘要1 绪论贪吃蛇是世界知名的益智类小游戏,选择这个题目一方面是为了将我们自己的所学知识加以运用;另一方面,我希望通过自己的所学知识把它剖析开来,通过自己的动手实践,真正的了解它的本质和精髓。
希望通过这次实践,能从中提高自己的编程能力。
并从中学会从零开始分析设计程序,达到学以致用,活学活用的目的。
另外,通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的。
本游戏的开发语言为Java,开发工具选用Eclipse。
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
这里采用Java作为开发语言主要是基于Java的面向对象和可移植性。
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
Java语言的特点1.1.1 简单性Java与C++语言非常相近,但Java比C++简单,它抛弃了C++中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。
Java实现了自动的垃圾收集,简化了内存管理的工作。
1.1.2 平台无关性Java引进虚拟机原理,并运行于虚拟机,实现不同平台之间的Java接口。
Java 的数据类型与机器无关。
1.1.3 安全性Java的编程类似C++,但舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。
它提供了安全管理器,防止程序的非法访问。
1.1.4 面向对象Java吸收了C++面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。
1.1.5 分布式Java建立在TCP/IP网络平台上,提供了用HTTP和FTP协议传送和接收信息的库函数,使用其相关技术可以十分方便的构建分布式应用系统。
贪吃蛇游戏程序设计实验报告

贪吃蛇游戏程序设计实验报告贪吃蛇游戏程序设计实验报告1、引言1.1 文档目的1.2 背景介绍1.3 项目概述2、需求分析2.1 用户需求2.2 功能需求2.3 非功能需求3、总体设计3.1 系统结构3.2 使用的开发工具和技术3.3 程序流程图3.4 数据结构设计4、模块设计4.1 游戏界面模块设计4.2 蛇的移动模块设计4.3 食物模块设计4.4 游戏结束判定模块设计5、开发过程5.1 编码规范5.2 界面设计与实现5.3 功能模块实现5.4 联合测试与整合调试6、测试结果与分析6.1 单元测试6.2 集成测试6.3 性能测试6.4 用户验收测试7、部署与运维7.1 系统环境要求7.2 安装步骤7.3 运行与维护8、问题与解决方案8.1 开发中的问题8.2 解决方案9、结论9.1 实验总结9.2 实现目标9.3 后续改进方向附件:- 源代码文件- 参考文献法律名词及注释:- 版权:保护原创作品的独有权利,防止他人未经授权使用、复制或传播。
- 许可证:授权他人在特定条件下使用受版权保护的作品。
- 商标:用于标识特定产品或服务来源的标识,可以是文字、图形、颜色或声音。
- 专利:通过创造一种新的发明而获得的对该发明的独有权利,防止他人在未获许可的情况下制造、使用或销售该发明。
- 使用条款:规定使用软件、服务或作品的条件和限制。
- 免责声明:声明作者或提供者对使用软件、服务或作品时可能产生的损害不承担责任。
全文结束 \。
基于NiosII贪吃蛇的游戏设计(电子综合设计)

基于NiosII和LED点阵的贪吃蛇游戏设计目录一、摘要 (2)二、设计目的 (2)三、贪吃蛇设计预期目标 (2)四、方案整体设计 (2)五、硬件系统的设计及实现 (3)六、软件系统的设计及实现 (11)七、心得体会 (14)八、参考文献 (15)九、附录 (15)一、摘要基于NiosII软核处理器和LED点阵显示屏的贪吃蛇游戏内容是:一条蛇在封闭的围墙里,围墙里随机出现一个食物。
玩家通过4个按键控制蛇上下左右移动,且蛇只能沿着头运动的轨迹移动。
蛇头撞到食物,则食物被吃掉,蛇身体增长一节,同时记1分,又出现食物,等待蛇来吃,如果蛇头在移动中出界或咬到自己的身体则游戏结束。
关键字:贪吃蛇Nios II LED点阵SOPC二、设计目的1、掌握按键扫描电路的设计2、掌握用VHDL语言设计按键扫描电路的方法3、掌握16*16 LED点阵的控制原理和用VHDL语言设计LED点阵扫描电路的方法;4、掌握SOPC Builder的设计流程;5、掌握在Nios II中进行编程的方法;三、贪吃蛇设计预期目标1、基本功能(1)、完成按键扫描电路的设计;(2)、完成16*16 LED 点阵的扫描电路设计;(3)、完成SOPC Builder 中的系统设计;(4)、完成单色贪吃蛇游戏的基本设计(蛇移动方向的改变,吃到果子后蛇身变长,咬到自己或者出界时的失败处理等);(5)、完成游戏图形信息提示(游戏目前所处的等级等)。
2、提高功能(1)、能进行汉字动态显示(显示内容自动更新,形式自定,如百叶窗等);(2)、蛇头颜色与蛇身区别显示,并与果实颜色区别显示;(3)、游戏过程中加入声音提示和表情提示;(4)、所得分数在数码管上显示;(5)、能进行游戏难度的切换(不同难度下,蛇吃到相应数量的果子后升级)。
四、方案整体设计为了实现游戏的控制、显示、设置等功能,系统需要具有控制模块,动态扫描显示模块,按键识别模块。
本设计中采用Nios II软核CPU作为游戏的主控制单元,按键识别模块中的每个按键通过产生中断的方式,在中断处理函数中完成按键的标识,并在在软件程序的主体部分完成按键的识别。
(完整word版)贪吃蛇实验报告

《计算机程序设计》课程设计报告课题名称贪吃蛇游戏班级学号姓名指导教师设计时间至设计地点常熟理工学院计算机科学与工程学院常熟理工学院计算机科学与工程学院目录1需求解析 (1)2系统解析和设计 (1)数据构造的设计和选择的原因 (1)系统模块区分和模块构造 (2)流程图 (2)数据种类、全局变量和函数说明 (3)3程序测试和运转结果 (4)4课程报告小结 (5)分数重叠显示 (5)速度太快 (5)食品可能出此刻蛇身上 (5)附录 A :程序源代码 (6)《 C 程序设计》课程设计1 需求解析【论述课程设计应当达成的功能】使用键盘的上下左右,来控制蛇的运动方向,ESC 键退出,并显示得分。
2系统解析和设计2.1 数据构造的设计和选择的原因本游戏中波及的主要数据构造是怎样表示运动的蛇、食品状态等问题。
2.1.1 从游戏参照画面中我们能够看到,贪吃蛇的身体是一节节的,由一个个大小同样的方块构成,那么我们能够用一个 (x,y) 坐标为左上角的、固定宽度的正方形来表示一节蛇身。
为表示连续的多节身体,那么我们能够采纳数组(或链表,或线性表)等数据构造来表示。
下边以数组方式为例:struct Point {int x, y;}struct Point nodes[MAX_LENGTH];// 蛇身数组, MAX_LENGTH为最大蛇长贪吃蛇是在不停的运动的,我们研究蛇的运动能够发现这样的特色:1. 蛇头由键盘控制,键盘不操作时,保持原有方向运动;(用 int direction; 表示 )2.运动时,蛇身后边一节挪动到前面一节的地点。
当我们用 nodes[0]表示蛇头的时候, nodes[1] 运动到 nodes[0]处; nodes[2] 运动到 nodes[1]处 ...。
3. 吃到一个食品此后,蛇身会增添一节。
即该数组中的有效数据个数加一。
(用 int length;表示 )依据上边的状况,我们能够设计蛇的数据构造以下:struct Snake {struct Point nodes[MAX_LENGTH];// 蛇身数组,保留每节蛇身的坐标。
基于labview的贪吃蛇游戏程序设计

成绩评定表课程设计任务书目录1 目的及基本要求 12 贪吃蛇游戏设计原理 13 贪吃蛇游戏设计和仿真 1 3.1 前面板设计 13.2后面板程序框图 23.3 程序改进 63.4 程序存在的不足 84 结果及性能分析 94.1 运行结果 94.2性能分析 10参考文献 111 目的及基本要求本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。
本程序基于传统贪吃蛇游戏的特点利用LabVIEW 制作的一款完整的迷你贪吃蛇游戏。
熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。
要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。
2 贪吃蛇游戏设计原理贪吃蛇游戏大体上可分为以下几个部分:1) 控制部分就是通过输入输出来控制蛇的运动2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算3) 图象显示部分就是将游戏显示出来本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋;4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续;5.游戏可以有多种难度选择等3 贪吃蛇游戏设计与仿真3.1 前面板设计采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。
对XY图的属性做如下修改:1.去除标尺及标签,设置标尺为0:1000;2.去除两个方向的网格,使最终屏幕全黑;3.修改各条曲线的宽度、颜色和点样式,使小蛇苹果能够以不同样式显示。
11电气自动化-111102106--火亚超基于labview的贪吃蛇游戏程序设计-推荐下载

基于labview的贪吃蛇游戏程序设计姓名 火亚超学号 111102122专 业电气工程及其自动化指导教师 陈永超 成绩日 期 2014.061 设计实现的基本要求本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。
本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。
2 贪吃蛇游戏设计原理贪吃蛇游戏大体上可分为以下几个部分:1) 控制部分就是通过输入输出来控制蛇的运动2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算3) 图象显示部分就是将游戏显示出来本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋;4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续;5.游戏可以有多种难度选择等3 贪吃蛇游戏设计与仿真3.1 前面板设计采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。
对XY图的属性做如下修改:1.去除标尺及标签,设置标尺为0:1000;2.去除两个方向的网格,使最终屏幕全黑;3.修改各条曲线的宽度、颜色和点样式,使小蛇苹果能够以不同样式显示。
图1 主程序前面板3.2 后面板程序框图设计如何控制蛇移动去吃苹果同时避免碰到自己的身体或者撞墙是一个复杂的程序。
特此将程序分成多个子程序来编写使程序简单明了。
下面分别介绍贪吃蛇程序中的各个子程序。
1.主程序程序框图主程序程序框图运用平铺式顺序结构,第一帧是游戏介绍,第二帧是程序主程序。
在主程序的上半部分采用一个while循环、一个事件结构和一个条件结构来设置游戏的输入循环,根据按键以否来判断游戏的下步动作方向。
贪吃蛇游戏程序设计一课程设

void GamePlay();//玩游戏的具体过程
void GameOver();//游戏结束
void PrScore();//输出成绩
(2)主函数main()主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即
玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序
void main()//主函数
{
Init();//图形驱动
DrawK();//开始画面
GamePlay();//玩游戏的具体过程
Close();//图形结束
}
void Init()//图形驱动
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");/*此处为turboc的路径,读者可以根据自己的电脑而改*/cleardevice();
{
GameOver();//本次游戏结束snake.life=1;//蛇死
}
if(snake.x[0]==food.x&&snake.y[0]==food.y)//吃到食物以后
{
setcolor(0);//把画面上的食物去掉rectangle(food.x,food.y,food.x+10,food.y-10);
{
cleardevice();
PrScore();
setcolor(RED);
outtextxy(100,100,"我会回来的!!!!!");
getch();
}
2013—贪吃蛇游戏Labview课程设计报告

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、程序设计流程………………………………….2、模块设计及说明………………………………3、调试运行………………………………………4、程序不足分析……………………………………二、心得体会参考文献一、程序设计1、程序设计流程1.1程序设计分析1)设计一个主界面,主界面的显示通过二维布尔型数组(后面按称作LED)实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩评定表课程设计任务书目录1 目的及基本要求 0本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。
本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。
04.1 运行结果 (8)1 目的及基本要求本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。
本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。
熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。
要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。
2 贪吃蛇游戏设计原理贪吃蛇游戏大体上可分为以下几个部分:1) 控制部分就是通过输入输出来控制蛇的运动2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算3) 图象显示部分就是将游戏显示出来本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋;4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续;5.游戏可以有多种难度选择等3 贪吃蛇游戏设计与仿真3.1 前面板设计采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。
对XY图的属性做如下修改:1.去除标尺及标签,设置标尺为0:1000;2.去除两个方向的网格,使最终屏幕全黑;3.修改各条曲线的宽度、颜色和点样式,使小蛇苹果能够以不同样式显示。
图1 主程序前面板3.2 后面板程序框图设计如何控制蛇移动去吃苹果同时避免碰到自己的身体或者撞墙是一个复杂的程序。
特此将程序分成多个子程序来编写使程序简单明了。
下面分别介绍贪吃蛇程序中的各个子程序。
1.主程序程序框图主程序程序框图运用平铺式顺序结构,第一帧是游戏介绍,第二帧是程序主程序。
在主程序的上半部分采用一个while循环、一个事件结构和一个条件结构来设置游戏的输入循环,根据按键以否来判断游戏的下步动作方向。
在主程序的下半部分运用while循环来控制游戏的循环。
游戏结束时通过用户的输入指令来决定游戏是否循环,输入“Yes”指令时游戏继续,否则游戏结束跳出循环。
在while循环里再运用一个while循环来控制游戏的运动循环,当发生“自杀”事件或者“撞墙”事件时游戏结束跳出循环,否则游戏继续循环。
图2 主程序程序框图2.XY坐标子程序此程序的作用是把蛇的活动按有无蛇身、苹果赋值。
通过XY坐标来显示蛇移动的轨迹,同时删除已走过的轨迹路径,避免与新的路径混淆使程序出错。
程序框图见下面:图3 输入XY坐标图4 删除XY坐标3.小蛇的移动控制由于蛇本身是一个可增加元素的数组,所以用一个含两个一维方向数组的簇来进行操作。
每次读取坐标或者增添完坐标后都要用簇解绑及簇捆绑来处理,这样也便于在XY图中显示。
控制小蛇游走的方法是给定一个方向direction,然后利用这个direction 的值来控制当前点与下一点的变换。
小蛇不停的移动,为了使之与苹果碰撞后能便捷的增加长度,这里采用这样的方法实现:小蛇每按direction移动一个,就在小蛇数组的开头添加一个点(此时这两个点是相邻的),然后将添加的点与苹果所在坐标比较,如果不同,就将蛇数组的最后一个元素删除,表示没有吃到苹果;如果相同,就保留这个元素(此时,相对于前一个位置时,小蛇的长度增加了),并且删除这个苹果,重新随机产生另一个苹果。
循环往复(在while循环上添加移位寄存器)直到游戏结束。
插入蛇头新坐标的子程序框图图5 蛇头新坐标的子程序框图4.苹果增减的控制对于苹果的操作主要是判断当前苹果的位置与蛇头位置是否相同,在相同的情况下,需要将苹果的位置重新赋值,这是处理一个苹果的时候。
如果要设计多个苹果,只需判断当前苹果的个数是否减少,并在减少后随机产生一个新的苹果。
程序里一次性最多可以产生20个苹果,用数组存储。
当苹果的数量明显少于最大值时就随机产生一个苹果。
当蛇头与苹果的位置相同时消掉该苹果,否则保留该苹果。
为了便于苹果与蛇同时在屏幕上显示,特将苹果套用蛇数组的格式绑定为簇,然后与蛇数组合并为一个数组后同时显示在XY图上。
图6 苹果增减程序框图5.撞墙事件把蛇当前所在的位置的坐标与围墙的宽度作比较,如果超出了宽度范围则视为撞墙事件游戏结束,否则游戏继续。
在设计程序中运用了两个<、两个>和一个逻辑与运算符号参与编辑,通过X、Y坐标与World Size作比较,最后结果为真则游戏继续,否则游戏结束。
图7 撞墙事件程序框图6.自杀事件自杀事件比撞墙事件复杂,不过思路都一样,都是通过坐标的比较来判断。
不同是的自杀事件是通过判断蛇头的坐标与蛇身的坐标是否一致,如果一致则认为发生了自杀事件,并跳出循环结束游戏,否则游戏继续。
再此VI中运用了两个条件结构来判断是否结束程序;运用一个WHILE循环比较蛇头与蛇身的坐标,当蛇头坐标与蛇身坐标一致时跳出循环游戏结束(只有当蛇的位移坐标有两个以上时才开始判断是否发生自杀事件)。
以下是本VI的程序框图:图8 自杀事件程序框图3.3 程序改进1.控制方向的改进在整个程序运行中我发现一个问题,即在游戏运行过程中想要准确控制蛇的移动方向不是很方便,因为原程序仅仅采用两个方向键“left”键和“right”键来控制。
他把方向按不同的象限分成八个部分,沿逆时针方向依次分布为0、1、2、3、4、5、6、7,其中X轴正半轴是0负半轴是4,Y轴正半轴是2负半轴是6。
根据这样的划分当按下不同的键时有不同的反应。
当按下“left”键时,程序自动把当前蛇的方向值加1(设为X)后与程序允许的最大方向值Y做比较。
如果X>Y则返回值“true”,蛇向X值所指向的方向移动;否则返回值“false”,蛇向0值所指向的方向移动。
图9 left键控制方向的程序框图当按下“right”键时,蛇移动方向控制与“left”键相似,不同的是把蛇当前的方向值减1后的值X与方向值0做比较。
如果X<0则返回值“true”,蛇向方向值为7的方向移动;否则返回值“false”,蛇向反向值为X的方向移动。
图10 right键控制方向的程序框图这样的设置不是很理想,需要用户在游戏过程中不断的准确计算好下一步的方向值。
话说这样设计可以让用户在游戏过程中锻炼思维的反应力和脑计算力,但是同时给用户在游戏过程中带来很大的不便,不利于游戏的继续进行。
我构思着如果把方向键从复杂的左右两键改成简单的上下左右四个键,不仅可以形象的描述各个方向的控制移动,而且可以提高用户的玩游戏的速度,有一个好的心情。
为此我经过大量的实验和改进,最后终于把自己的构想用程序表达出来了。
下面简单介绍我修改的程序。
我的构思主要是得益于原作者的程序思路,是在他的基础上修改的。
在方向控制程序中运用了一个while循环、事件结构和条件结构。
运用事件结构是因为需要运用事件结构中事件数据节点的“V键”节点来控制方向的改变,而事件结构是与while循环配套使用的。
运用条件结构是便于不同方向键按下时激活不同的条件状态控制蛇的移动。
下面仅就“down键”来说明我的思路。
当按下“down键”时,把当前的方向值X与下方向值6做比较,如果结果为“true”时输出方向为“down”,如果结果为“false”时输出方向为“down”,即强制性的向下移动。
其他方向上的控制跟“down”方向的控制相同,中心思想是强制性实施动作。
图11 down键控制的程序框图2.添加“游戏暂停”按钮原程序中没有暂停按钮是一个很大的缺憾,假设发生这种情况即用户使用这个程序的过程中可能会有急事需要离开可是又不想结束掉正在运行的程序,这样的设计就不够人性化。
如果添加一个“暂停”按钮这个问题就可以迎刃而解了。
为此我在“运动循环”中添加了一个“暂停”按钮。
即在一个while循环中添加一个“等待下一个整数倍毫秒”来控制等待时间,一个“非”来激活命令。
图12 暂停按钮的程序框图3.4 程序存在的不足(一)、可能是时间太过仓促,本程序在设计上存在一些不足。
我把自己看到的一些不足列举如下:1.程序初始化时蛇身过长。
虽说在设计程序时有专门控制蛇身长度的控件,可是在修改初始化时蛇身长度的数值后蛇身的长度依然没有太多的变化。
2.蛇身长度无节制的增长。
蛇在移动过程中蛇身长度会增长,即使是在没有吃掉苹果时蛇身的长度也会增长,这些都有悖常理。
3.感觉把collision_self.vi程序弄的复杂化了。
(二)、我看不懂的部分程序由于程序很复杂,我有很多看不懂的地方,列举如下:1.我不知道子VI是如何运用的。
在程序中常用子VI,这虽然便于简化程序框图,却给我读程序造成很大的不便。
不便的原因主要是在上课实践过程中没有运用过子VI完成作业或者做练习,虽然我在潜意识里知道子V I的用途很大。
看着遍布程序框图的子VI我不知道它怎么运用、为什么这样运用,练习子VI 的原程序框图了解该子VI后我还是不知道如何运用。
2.我不知道两个while循环是如何合作的。
在主程序的第二帧中的那两个子while循环没有任何的联系,我不知道它们是怎么合作的。
4 结果及性能分析4.1 运行结果1.未运行的时候前面板如图13图13 未运行时前面板2.运行的时候前面板如图14图14 运行时的前面板4.2 性能分析开头往往是最难的,当我们终于解决了如何让一个点在XY图上动起来之后,一切都是那么的顺其自然了。
我们想到了一个又一个问题,如何显示蛋,如何吃掉蛋,如何吃掉蛋之后让蛇加一截,如何让蛇撞墙之后结束游戏…..发现问题和解决问题的过程都是艰辛且快乐的。
对于最后的成品,已经基本上达到了我们的预期。
另外,这款游戏的后续开发空也间很大,可以添加很多想法,比如可以增加蛋的数量,可以增加蛋的品种,对于不同的蛋产生不同的特效,可以有突然改变方向、突然改变速度、增长蛇身长度、无敌小蛇(无死亡限制)、突然隐身蛇身、旋转石头模式等等,由于时间有限,这些想法没有一一去实现,但我们仔细考虑下这些都是可行的。