基于labview的贪吃蛇游戏程序设计

合集下载

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

毕业设计论文-基于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贪吃蛇的游戏设计(电子综合设计)

基于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版)贪吃蛇实验报告

(完整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的贪吃蛇游戏程序设计

基于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的贪吃蛇游戏程序设计-推荐下载

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 DrawK();//开始画面
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课程设计报告

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)实现。

基于LabVIEW的贪吃蛇游戏设计

基于LabVIEW的贪吃蛇游戏设计

本科毕业设计(论文)题目:基于Lab VIEW的贪吃蛇游戏开发设计学号: ************名:***班级:11光电A1 专业:信息显示与光电技术学院:工学部入学时间:2011级指导教师:秦琴老师日期: 2011年6月8日毕业设计(论文)独创性声明本人所呈交的毕业论文是在指导教师指导下进行的工作及取得的成果。

除文中已经注明的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。

对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:日期:基于Lab VIEW的贪吃蛇游戏开发设计摘要采用Lab VIEW软硬件平台,结合键盘的游戏操作。

关键词: Lab VIEW软件平台;键盘;贪吃蛇游戏操作方案。

Dual mode snake game development designABSTRACTUsing LABVIEW software and hardware platform, can be achieved based on the PC screen and keyboard game operation and based on photoelectric diode and switch the snake game operation.Key words: LABVIEW software and hardware platform;Snake game operation.目录1 绪论 (6)2 LABVIEW简介 (7)2.1 LABVIEW概念 (7)2.2 LABVIEW特点 (7)3 游戏软件设计方案 (9)3.1设计思路简介及框图 (9)3.2游戏界面 (10)3.3主要程序介绍 (10)3.3.1 初始设定 (10)3.3.2 蛇运动方向控制 (11)3.3.3 蛇头运动控制 (13)3.3.4蛇尾运动控制 (15)3.3.5蛇身加长和要吃部分产生 (16)3.3.6蛇自撞与撞墙 (18)3.3.7分数与最高分 (18)4调试结果与优化 (20)4.1调试结果 (20)4.2进一步优化 (20)5 结论与总结 (21)致谢 (22)参考文献 (23)1 绪论手机游戏在当今社会普遍流行,种类和玩法也很丰富。

贪吃蛇程序设计报告(附C源码)

贪吃蛇程序设计报告(附C源码)

《计算机程序设计基础》课程设计题目用户管理系统学生姓名王孟学号 0909082920 指导教师郭克华学院信息科学与工程学院专业班级电气类 0829 完成时间 2009-7-1目录1.课程设计内容 (3)2.课程设计目的 (3)3.背景知识(可选项) (3)4.工具/准备工作(可选项) (4)5.设计步骤、方法等 (4)5.1. 步骤1:步骤名称(二级标题) (4)5.1.1. 步骤1.1:步骤名称(三级标题) ............................................ 错误!未定义书签。

5.2. 步骤2:步骤名称 (6)5.3. 步骤n:步骤名称 (8)6.设计结果及分析 (10)7.设计结论 (10)8.问题及心得体会 (10)9.对本设计过程及方法、手段的改进建议 (11)10.参考文献 (12)报告名称1. 课程设计内容产生一个固定大小没有边界的游戏区域,蛇从区域的中心开始,由玩家通过键盘控制蛇的运动方向,用蛇头去吃随机分布在游戏区域内的食物;蛇的运动限制在游戏区域内,游戏区域没有边界,所以蛇在区域内作循环运动;蛇的运动方向为直线运动,只走横和竖的方向,不走斜线;蛇的运动速度由游戏的难度来控制,难度越高,速度越快,游戏难度分为9个等级;蛇身体的长度从1开始每吃掉一份食物就增加一个长度;食物的出现安照随机分布的原则,蛇吃掉一份后随即在游戏区域内放一份新的食物;每吃掉一份食物得分为10*游戏的难度,游戏结束后统计全部的得分;游戏结束的条件为:在控制蛇的过程中蛇头碰到蛇的身体的任何部位;2. 课程设计目的(1)、通过c语言编程实现贪吃蛇游戏的运行。

(2)、对代码进行进一步的调试优化,以使游戏高效运行,操作化强,人性化强。

(3)、通过编程,使自己掌握C语言编程的基本方法,有独立编程的能力,并学到实战经验。

3. 背景知识(可选项)本程序主要是一个交互式的游戏程序,通过玩家的键盘上下左右键控制贪吃蛇的运动方向。

基于NiosII贪吃蛇的游戏设计(电子综合设计)

基于NiosII贪吃蛇的游戏设计(电子综合设计)

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.基于NiosII和LED点阵的贪吃蛇游戏设计目录一、摘要 (2)二、设计目的 (2)三、贪吃蛇设计预期目标 (2)四、方案整体设计 (2)五、硬件系统的设计及实现 (3)六、软件系统的设计及实现 (11)七、心得体会 (14)八、参考文献 (15)九、附录 (15)一、摘要基于NiosII软核处理器和LED点阵显示屏的贪吃蛇游戏内容是:一条蛇在封闭的围墙里,围墙里随机出现一个食物。

玩家通过4个按键控制蛇上下左右移动,且蛇只能沿着头运动的轨迹移动。

蛇头撞到食物,则食物被吃掉,蛇身体增长一节,同时记1分,又出现食物,等待蛇来吃,如果蛇头在移动中出界或咬到自己的身体则游戏结束。

关键字:贪吃蛇Nios II LED点阵SOPC二、设计目的、掌握按键扫描电路的设计12、掌握用VHDL语言设计按键扫描电路的方法LED语言设计VHDL点阵的控制原理和用LED16*16 、掌握3.文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.点阵扫描电路的方法;4、掌握SOPC Builder的设计流程;5、掌握在Nios II中进行编程的方法;三、贪吃蛇设计预期目标1、基本功能(1)、完成按键扫描电路的设计;(2)、完成16*16 LED 点阵的扫描电路设计;(3)、完成SOPC Builder 中的系统设计;(4)、完成单色贪吃蛇游戏的基本设计(蛇移动方向的改变,吃到果子后蛇身变长,咬到自己或者出界时的失败处理等);(5)、完成游戏图形信息提示(游戏目前所处的等级等)。

2、提高功能(1)、能进行汉字动态显示(显示内容自动更新,形式自定,如百叶窗等);(2)、蛇头颜色与蛇身区别显示,并与果实颜色区别显示;(3)、游戏过程中加入声音提示和表情提示;(4)、所得分数在数码管上显示;(5)、能进行游戏难度的切换(不同难度下,蛇吃到相应数量的果子后升级)。

贪吃蛇

贪吃蛇

LabVIEW期末大作业——————————贪吃蛇游戏制作人:****************摘要:LabVIEW是由NI公司研制开发的一种程序开发环境,它使用的是图形化编程语言G语言编写程序,产生的程序是框图形式。

本程序利用LabVIEW的图形化编程特点,结合所学知识,编写了一个趣味贪吃蛇游戏,仅供休闲娱乐。

关键词:LabVIEW 图形化编程贪吃蛇引言:手机中有一款小游戏叫“贪吃蛇”,就是有一条小蛇,不停地在屏幕上游走,吃各个方向上出现的蛋,越吃越长。

只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。

本程序基于传统贪吃蛇游戏的特点,并适当增加一些趣味因素,最终利用LabVIEW制作一款完整的迷你贪吃蛇游戏。

本程序的主要实现如下功能:小蛇不停游走,键盘方向键可控制小蛇移动方向,吃过一个蛋后小蛇长度增加并随机产生另一个蛋,小蛇碰到四壁或者碰到自己时游戏结束并给出得分提示是否继续,游戏可以有多种难度选择,并设置暂停按钮。

1.界面设置设置贪吃蛇的界面主要包括这几方面,游戏屏幕的设置(包括小蛇和蛋的颜色形状)、开始后提示对话框及结束后得分对话框设置等。

1.1屏幕设置我们采用LabVIEW中提供的‘Express XY图’,这样就可以通过给定点的坐标来移动小蛇和显示小蛋。

我们对XY图的属性做如下修改:去除标尺及标签,设置标尺为50×50,去除两个方向的网格,使最终屏幕全黑,然后修改各条曲线的宽度、颜色和点样式,使小蛇小蛋能够以不同样式显示。

结果如右图所示:方形黄色的为蛋,圆形长条的为小蛇(刚开始只是一个点)。

1.2对话框设置设置对话框,我们采用编程->对话框与用户界面中的‘单按钮对话框’和‘双按钮对话框’。

前者主要是在点击开始游戏时给出操作提示,后者是在游戏失败时给出得分,并提示用户是否继续游戏,两者需要结合平铺顺序结构以及一些循环结构使用。

制作的效果如下:2.小蛇控制小蛇的控制主要有这几方面构成,开始游戏后小蛇就要按照一定的方向不停地移动,通过键盘方向键控制小蛇移动方向(由于设置上、下、左、右四个方向,其中有两对是互斥的方向,需要加以控制以禁止,否则小蛇在反向的时候会撞到自己),遇到蛋时,需要增加蛇身长度。

基于FPGA的贪吃蛇游戏设计

基于FPGA的贪吃蛇游戏设计

基于FPGA的贪吃蛇游戏一、项目简介贪吃蛇游戏是一款比较古老且流行的游戏,该项目做的是一款以FPGA 实验板为控制端,显示器为终端的贪吃蛇游戏。

涉及到的关键技术是:配置生成nios核,了解VGA格式,贪吃蛇游戏软件设计。

二、整体设计思路整体思路是基于DE2实验板,用QuartusII自带的nios核做一个32位的CPU,载入程序后就可以通过DE2板上的4个按键和显示器来玩贪吃蛇的游戏了。

同时在实验板的LCD上显示玩家所得的分数。

由于使用的是VGA格式传送图象信号,所以显示器要求支持VGA格式。

FPGA使用的是Altera大学计划的DE2板子。

同时板上提供了丰富的输入输出设备。

该项目使用到的资源有:4个按键,外扩的SRAM,Flash,VGA 模块,LCD显示模块。

完全满足项目的设计要求。

三、硬件说明硬件以实验板为基础设计。

以下原理图中的悬空引脚网络号都是连向CycloneII 2C35(CycloneIV4CE1155)芯片的。

整个系统的硬件主要由电源模块,CPU及存储器,按键模块,LCD模块,VGA模块,下载调试模块组成。

下面将依次介绍。

系统硬件框图如下:首先介绍实验板上自带的50M晶振。

它作为基准时钟源,然后通过数字逻辑电路内部分频至不同的频率作为不同模块的时钟源。

50M晶振电路原理图如下:虽然可以在FPGA内部就开辟出RAM和ROM区。

但一般应用都不这样做,而是采用外部专用芯片。

一是价格原因,二是FPGA的SOPC应用一般规模很大,内部开辟的RAM区大小难以达到设计要求,而内部ROM根本就没有掉电后依然能储存数据的这个特性。

所以使用外接SRAM和FLASH 是必要且必须的。

SRAM芯片网络连接原理图如下:FLASH芯片网络连接原理图如下:按键部分是通过施密特触发器来进行硬件按键消抖动的。

这样编写软件时就不用考虑按键消抖,简化了程序。

按钮按键和电平按键电路原理图如下:LCD用于显示一些必要的系统提示。

一种基于LabVIEW的贪吃蛇游戏的设计

一种基于LabVIEW的贪吃蛇游戏的设计

图1 贪吃蛇游戏程序流程图
2.2 硬件仿真与制作
通过Protues软件画出该电路图并进行仿真,来检验电路的合理性。

当通过仿真之后在画出其PCB图并制作电路板,并检验电路板的电路是否正确无误。

最后通过NIELVIS平台来实现电路板的正常运行。

3 设计内容
3.1 程序设计
(1)程序界面设计:通过LabVIEW中提供的数组来构建一个二维布尔数组作为游戏的界面,显示贪吃蛇和蛋。

这样就可以通过控制按键来控制贪吃蛇移动到指定的位置。

再通过设定布尔灯的颜色以及布尔灯的大小使得贪吃蛇和蛋可
图2 4线-16线译码器原理 
[3]廖远江.虚拟仪器技术及其应用[M].北京:北京大学出版社,2016.
[4]阎石.数字电子技术基础[M].第五版.北京:高等教育出版社,2006.。

labVIEW实验报告-北京航空航天大学

labVIEW实验报告-北京航空航天大学

虚拟仪器设计与仿真实验报告院(系)名称自动化科学与电气工程学院专业名称控制科学与工程任课教师李秀芝学生学号xxxxxxxxx学生姓名romee小小2013年11月5日实验一虚拟信号发生器设计(基础实验)一、实验目的本实验属于虚拟仪器仿真基础实验,通过查阅相关的资料,学习LabVIEW软件,掌握编程过程、思路和方法。

独立设计一个虚拟信号发生器的前面板和软件编程,进行程序的调试,研究实验现象,解决实验过程中的问题,根据信号发生器的工作原理,实现基本功能。

二、实验设备Windows 7系统的PC机三、实验原理说明利用labVIEW的运算控件,基本波形发生器,任意波形发生器和波形图控件,设计虚拟信号发生器,并能实现实际信号发生器的主要功能。

要求:运行时使用界面简单,易于操作。

四、实验要求1)实现功能:有正弦波、方波、三角波、锯齿波、噪声以及任意波形的发生,并能任意切换产生信号的类型。

2)实现指标:(1)任意波形可以实现公式输入;(2)频率、幅度、相位、偏移量可调可控;(3)方波占空比可控;(4)噪声任意可加,波形与数码同时显示,同时显示输出频谱特性;五、实验方法及实验步骤1)打开labVIEW程序,新建一个VI程序。

2)按照方案设计的内容建立前面板图,分别写好各自的标签,分别调用显示和输入控件,设计波形显示界面,可调旋钮和输入控件的位置,使界面简单,利于操作,添加必要说明美化操作界面3)设计后面板,编写信号发生器的程序。

首先设计整体的while循环,然后设置基本信号发生器,任意信号发生器和噪声发生器的基本参数,采样频率、幅值、移量、相位等参数,并配置可调旋钮。

4)利用波形选择按钮组成的一维布尔数列,转换出8,4,2,1,0五种不同的状态,用于在条件结构中选择不同的波形发生,同时利用“噪声”按钮选择是否叠加噪声,之后将波形发生器与波形显示器相连接,用于输出波形。

同时对输出波形进行FFT变换到频域下,连接波形显示器以观察幅度—频率响应和相位—频率响应。

基于NiosII的贪吃蛇游戏设计(电子设计)

基于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作为游戏的主控制单元,按键识别模块中的每个按键通过产生中断的方式,在中断处理函数中完成按键的标识,并在在软件程序的主体部分完成按键的识别。

基于Labview的贪吃蛇游戏设计报告

基于Labview的贪吃蛇游戏设计报告

基于Labview的贪吃蛇游戏设计报告虚拟仪器实验报告题⽬:基于labview的贪吃蛇游戏设计学⽣姓名:刘国斌⽩宏韬指导⽼师:陈林1.⽬的及基本要求本程序是基于常看到的⼀款⼩游戏贪吃蛇⽽设计的,即有⼀条⼩蛇不停地在屏幕上游⾛,吃各个⽅向上出现的苹果,越吃越长,只要蛇头碰到屏幕四壁或者碰到⾃⼰的⾝⼦,游戏就⽴刻结束。

本程序基于传统贪吃蛇游戏的特点利⽤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 后⾯板程序框图设计如何控制蛇移动去吃苹果同时避免碰到⾃⼰的⾝体或者撞墙是⼀个复杂的程序。

特此将程序分成多个⼦程序来编写使程序简单明了。

下⾯分别介绍贪吃蛇程序中的各个⼦VI。

1.主程序程序框图主程序程序框图运⽤平铺式顺序结构,第⼀帧是游戏介绍,第⼆帧是程序主程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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图上动起来之后,一切都是那么的顺其自然了。

我们想到了一个又一个问题,如何显示蛋,如何吃掉蛋,如何吃掉蛋之后让蛇加一截,如何让蛇撞墙之后结束游戏…..发现问题和解决问题的过程都是艰辛且快乐的。

对于最后的成品,已经基本上达到了我们的预期。

另外,这款游戏的后续开发空也间很大,可以添加很多想法,比如可以增加蛋的数量,可以增加蛋的品种,对于不同的蛋产生不同的特效,可以有突然改变方向、突然改变速度、增长蛇身长度、无敌小蛇(无死亡限制)、突然隐身蛇身、旋转石头模式等等,由于时间有限,这些想法没有一一去实现,但我们仔细考虑下这些都是可行的。

相关文档
最新文档