labview-贪吃蛇程序_第1页
labview-贪吃蛇程序_第2页
labview-贪吃蛇程序_第3页
labview-贪吃蛇程序_第4页
labview-贪吃蛇程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

虚拟仪器课程设计 论文 虚拟仪器课程设计 论文 20092009 级级 题题 目 目 基于 labview 的贪吃蛇游戏 学学 院 院 工学院 班班 级 级 机械 094 学生姓名 学生姓名 林成艺 学号 学号 09550410 成成 绩 绩 基于 labview 的贪吃蛇游戏 一 程序设计背景一 程序设计背景 小时候经常玩的一款小游戏叫 贪吃蛇 就是有一条小蛇 不停地在屏幕上游走 吃 各个方向上出现的小圆点 越吃越长 只要蛇头碰到屏幕四壁或者碰到自己的身子 游戏 就立刻结束 本程序基于传统贪吃蛇游戏的特点利用 LabVIEW 制作一款贪吃蛇游戏 本 程序的主要实现如下功能 小蛇不停游走 键盘方向键可控制小蛇移动方向 吃过一个原 点后小蛇长度增加并随机产生另一个蛋 小蛇碰到四壁或者碰到自己时游戏结束 二 程序介绍二 程序介绍 1 界面设置界面设置 设置贪吃蛇的界面主要包括这几方面 游戏屏幕的设置 包括小蛇和蛋的颜色形状 结束 后对话框设置等 1 1 屏幕设置屏幕设置 通过给定点的坐标来移动小蛇和显示小蛋 去除标尺及标签 设置标尺为 50 50 去 除两个方向的网格 使最终屏幕全灰色 然后修改各条曲线的宽度 颜色和点样式 使小 蛇小蛋能够以相同样式显示 结果如右图所示 一个蓝色的为蛋 3 个蓝色的为小蛇 1 2 对话框设置对话框设置 设置对话框 我们采用编程 对话框与用户界面中的单按钮对话框 主要是在游戏失 败时 显示游戏结束 2 小蛇控制方法小蛇控制方法 小蛇的控制主要有这几方面构成 开始游戏后小蛇就要按照一定的方向不停地移动 通过键盘方向键控制小蛇移动方向 由于设置上 下 左 右四个方向 其中有两对是互 斥的方向 需要加以控制以禁止 否则小蛇在反向的时候会撞到自己 遇到蛋时 需要增 加蛇身长度 2 1 小蛇的运动小蛇的运动 由于蛇本身是一个可增加元素的数组 所以用一个含两个一维方向数组的簇来进行操 作 小蛇自动不停移动的程序 然而为了使之后与小蛋碰撞后能便捷的增加长度 这里采用这 样的方法实现 小蛇没按方向移动一个 就在小蛇数组的开头添加一个点 此时这两个点 是相邻的 然后将添加的点与蛋所在坐标比较 如果不同 就将蛇数组的最后一个元素删 除 表示没有吃到蛋 如果相同 就保留这个元素 此时 相对于前一个位置时 小蛇的 长度增加了 并且删除这个蛋 重新随机产生另一个蛋 循环往复 在 while 循环上添加 移位寄存器 直到游戏结束 插入蛇头新坐标的子程序如下 当未输入指令时事件的延时事件为 150 每毫秒 当没有吃到删除小蛇尾部子程序 当有吃到删除小蛇尾部子程序 2 2 键盘控制小蛇游走方向键盘控制小蛇游走方向 这部分采用一个事件结构 当键按下时 通过判断类型是否相等 类如当按下左时显 示 left 为真 事件结构输出为 left 到外部条件结构中 有子程序可以看出 右 1 左 1 上 1 下 1 都是蛇头相对于墙壁的距离 2 3 撞墙和自杀撞墙和自杀 这里讲一下我们对于小蛇撞墙或者自杀的情况 撞墙的意思是小蛇碰到了周围的墙壁 这需要从蛇数组中获取当前新添加的元素 然后与边缘 0 13 13 0 比较 当超过这个 边缘时 就跳出一级循环 游戏结束 其中表示蛇头的位置 数组索引第一位 索引产生的 蛇头的 2 维坐标 xy 当 x 13 或 X13 或 Y 0 时蛇头出界 为或 任 何满足条件的游戏结束 自杀的情况比撞墙较复杂蛇头与蛇尾的索引一样时就认为发生了自杀 并跳出循环结束游 戏 3 小原点位置小原点位置 小原点的位置随即产生小原点的位置随即产生产生一个产生一个 0 1 的随即数字 乘于的随即数字 乘于 14 后产后产 生一个生一个 2 维数组 维数组 4 图表示游戏界面的大小为 20 x20 5 小蛇的初始位置的第一二三点位置分别为 1 0 1 1 1 2 初始小圆点位置为 12 3 6 由上往下分别为 小蛇的初始位置 初始方向 原点的初始 位置 7 本程序用到的结构及元件 ForFor 循环循环 将连接到总数 N N 接线端的值n作为执行次数的子程序框图 计数接线端 i i 提 供了当前的循环总数 其取值在 0 到n 1 的范围内 WhileWhile 循环循环 重复执行内部的子程序框图 直到条件接线端 输入端 接收到特定的布尔值 将布尔值连接至 While 循环的条件接线端 右键单击条件接线端 从快捷菜单 中选择真真 T T 时停止时停止或真真 T T 时继续时继续 也可将一个错误簇连线至条件接线端 右 键单击条件接线端 从快捷菜单中选择真真 T T 时停止时停止或真真 T T 时继续时继续 While 循 环永远至少执行一次 条件结构条件结构 包括一个或多个子程序框图 或分支 当结构执行时 仅有一个子程序框图或 分支在执行 连接至选择器接线端的值可以是布尔 字符串 整数 或枚举类 型 它决定了执行哪个分支 右键单击结构边框 可添加或删除分支 Us 可使 用标签工具来输入条件选择器标签的值 并配置每个分支处理的值 三 程序改进三 程序改进 1 原程序的游戏界面过小 影响玩家的操作 将游戏界面由 原程序的游戏界面过小 影响玩家的操作 将游戏界面由 14x14 改为改为 20 x20 的游戏界面 如图分别为原图和改过的图 的游戏界面 如图分别为原图和改过的图 2 原游戏小蛇的行动速度过快 经更改 将小蛇的速度降为原来的一半 3 本游戏主要针对于国内 所以将所以英语汉化 如结束界面的更改 4 将小蛇的初始位置由左中位置改为界面左上方 四 存在的一些问题四 存在的一些问题 1 该属性节点的作用不明确该属性节点的作用不明确 2 事件结构事件结构 条件结构 条件结构 while 结构的具体运行机制不明确 结构的具体运行机制不明确 3 该数组的作用不明确 该数组的作用不明确 4 中的中的创建数组作用不明确 创建数组作用不明确 五 程序来源说明原文件来源于网址五 程序来源说明原文件来源于网址 3 总结总结 作为一种图形编程工具 LabVIEW 让我们对编程的印象耳目一新 通过这学期的学习 我们不仅了解了 LabVIEW 的基本使用方法 还对以前学习过的编程思想用了更深刻的理 解 其实不管是 c 还是图形编程 本质上都是一样的 只是具体操作时各有优劣 虽然前面做了很多的练习 但是在面对这一份所谓的大作业的时候还是觉得有一些无 从下手 毕竟先前都是有题目的 可以照着例题找方法 是一种复刻 但是 创造往往是 最困难的 一开始准备等老师给课题 然而又觉得有些心有不甘 听说有其他组的同学准 备做一些小游戏 于是我们着手开始了我们的 snake 开头往往是最难的 当我们终于解决了如何让一个点在 XY 图上动起来之后 一切都 是那么的顺其自然了 我们想到了一个又一个问题 如何显示蛋 如何吃掉蛋 如何吃掉 蛋之后让蛇加一截 如何让蛇撞墙之后结束游戏 发现问题和解决问题的过程都是艰辛且 快乐的 我们并不满足于传统的贪食蛇游戏 希望可以做出自己的特色 于是我们给他附 上我们自己的烙印 比如变速 比如设置难度等级 又比如添加障碍物等等 对于最后的 成品 已经基本上达到了我们的预期 另外 这款游戏的后续开发空也间很大 可以添加 很多想法 比如可以增加蛋的数量 可以增加蛋的品种 对于不同的蛋产生不同的特效 可以有突然改变方向 突然改变速度 增长蛇身长度 无敌小蛇 无死亡限制 突然隐身 蛇身 旋转石头模式等等 由于时间有限 这些想法没有一一去实现 但我们仔细考虑下 这些都是可行的 比如增长蛇身长度 可以根据当前得分 在蛇尾按方向方向反方向增加 蛇数组元素 当然这可能导致小蛇立刻死亡 当然这可以作为游戏的一个难度 需要玩家 在适当的方向吃小蛋 对于无敌小蛇模式 那也比较简单 可以采用一个计数值并使用一 个条件结构 在这段计数值内使程序不执行蛇头位置的比较 而隐身小蛇只需要使蛇身在 一段计数值内不在 XY 图上显示 然而小蛇实际是继续运动的 旋转石头是基于变态难度 中产生的石头 让其围绕

温馨提示

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

评论

0/150

提交评论