ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:343.22KB ,
资源ID:2171552      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2171552.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计吃蛇游戏课件.docx)为本站会员(微传9988)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

课程设计吃蛇游戏课件.docx

1、课程设计报告课程名称:面向对象程序设计 C+设计题目:用 C+实现贪吃蛇游戏专 业:计算机科学与技术 姓 名:学 号:指导教师:李 晓 虹2015 年 1 月 6 日1. 系统需求分析1.1 选题背景贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我们的编程能力不是很强,但是我们有信心,在这次学习中我们将从实践和实际的项目中提高自己的编程能力。因此我们选定了这个题目。1.2 关于编译软件本程序采用 Mi

2、crosoft Visual C+6.0 的英文版本进行编译。VisualC+6.0 是 Microsoft 公司推出的基于 Windows 操作系统的可视化 C+编程工具,尽管 Microsoft 公司推出了.NET 平台的集成开发环境,但由于其良好的界面和可操作性,加上支持标准 C/C+规范,但仍有相当多的编程人员使用 VisualC+6.0 进行应用系统的开发。1.3 关于兼容性本程序经过调试,可以在 XP 系统下编译运行,也可以在 Vista下运行,界面稍有不同,但不影响运行结果。2. 总体设计2.1 设计要求贪吃蛇算法 程序要求:游戏时,一条蛇在密闭的围墙内, 围墙内会随机出现一个食

3、物通过键盘上的 4 个光标键控制蛇向上下左右 4 个方向移动,蛇头接到食物,则表示食物被蛇吃掉,这时蛇的身体加长一节,同时计 10 分。接着又出现食物等待被蛇吃掉。如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体) ,则游戏结束。2.2 软件主要功能设计2.2.1 程序结构根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、停止游戏,设置游戏级别(速度) ,设置图片等。具体的程序结构如下面的图 1-1 所示。 图 2-1 贪吃蛇结构图2.2.2 程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物。贪吃蛇游戏开始游戏设

4、置游戏结束开始 初级中级高级结束载入游戏并初始化判断是否开始蛇开始移动根据键盘控制蛇移动方向判断蛇头和食物的坐标是否重合随机生成下一个食物判断蛇头和自身及墙、毒果是否重合游戏结束设置菜单选择游戏级别判断选择级别初级中级高级退出否否是是是否图 2-2 贪吃蛇流程图3. 详细设计3.1 界面设计这个程序的关键是表示蛇的图形以及蛇的移动。用一个小表示蛇的一节身体,身体每长一节,增加一个。移动时必须从蛇头开始,如果不按任何键,蛇自行在当前方向右前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇

5、头的新位置开始画出蛇,在界面中央有个静止不动的食物,用户通过键盘来控制蛇的走向,当蛇吃到食物时,分数增加十分,界面开始更新,蛇的身体增加一节,食物的位置变化一次,当蛇碰到界面时,游戏自动结束,显示用户最后的分数。3.2 数据结构设计snack.h 文件及类的设计如表 3.1 所示。表 3.11 Cmp 类的设计。classCmp friend class Csnake; intrSign; /横坐标 intlSign; /竖坐标 public: / friend boolisDead(constCmp Cmp(intr,int l)setPoint(r,l); Cmp() voidsetPoi

6、nt(intr,int l)rSign=r;lSign=l; Cmp operator-(constCmp Cmp operator+(constCmp ; constintmaxSize = 5; /初始蛇身长度 2 Csnake 类的设计。classCsnake CmpfirstSign; /蛇头坐标 CmpsecondSign;/蛇颈坐标 CmplastSign; /蛇尾坐标 CmpnextSign; /预备蛇头 int row; /列数 int line; /行数 int count; /蛇身长度 vectorsnakeMap;/整个游戏界面 queuesnakeBody; /蛇身 p

7、ublic: intGetDirections()const; chargetSymbol(constCmp Csnake(int n) /初始化游戏界面大小 if(n30)line=30+2; else line=n+2; row=line*3+2; boolisDead(constCmp void InitInstance(); /初始化游戏界面 boolUpdataGame(); /更新游戏界面 void ShowGame(); /显示游戏界面 ;3.3 函数设计3.3.1 文件及函数组成文件及函数的组成以及函数的功能如表 3.2 所示。这些函数是由两个源文件组成,main.cpp,sn

8、ack.cpp。main.cpp是总控所有的函数,使得整个函数得以运行,snack.cpp 的内容主要是 snack.h 的成员函数。表中的 s 是 Csnack 类的对象。表 3.23.3.2 函数的详细设计1. InitInstance 函数函数原型:void Csnake:InitInstance()。功能:初始化游戏界面,初始化蛇身,将方向上下左右分别用 4 个键表示。参数:无。返回值:无。工作方式:根据命令,调用相应函数,建立内存链表,将蛇身坐标压入队列,并将蛇身作为一个数组。要求:完成初始化,界面中给出蛇的相关信息。2. UpdataGame 函数函数原型:boolCsnake:U

9、pdataGame()。功能:获取用户按键信息,产生食物,并随机产生食物的相关坐标,判断在蛇没有死亡的状态下是否碰到食物,如果碰到则加 10分,蛇身增长一节,返回值定为 true,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体) ,返回值定为false,并且输出用户之前所得的分数。参数:蛇的横坐标 r,蛇的列坐标 l,记录用户成绩 score,获取用户按键信息 chioce。返回值:true 或者是 false。工作方式:获取用户输入按键信息,并且根据用户输入按键信息作为关键字,进行判断。要求:自动使蛇开始运动,并且及时获取用户的按键信息,随时判断是否在移动过程中碰到墙壁或者身体交

10、叉,给出结束息。3.main 函数函数原型:int main()功能:程序的入口点,总控函数。参数:没有死亡的信息 noDead。返回值:0。工作要求:依次调用初始化界面的成员函数,更新游戏界面的成员函数,显示游戏界面的成员函数。要求:调用程序信息。4.Csnake 函数函数原型:Csnake(int n)功能:初始化游戏界面大小。参数:int n。返回值:无。5.getSymbol 函数函数原型:char getSymbol(constCmpd#include “snake.h“ #include using namespace std; int main() Csnakes(20); s.

11、InitInstance(); /s.ShowGame(); intnoDead; do s.ShowGame(); noDead=s.UpdataGame(); while (noDead); system(“pause“); return 0; snack.cpp#include #include #include #include “snake.h“ using namespace std; /测试成功 voidCsnake:InitInstance() snakeMap.resize(line); / snakeMap竖坐标横坐标 for(inti=0;i#include using

12、namespace std; #ifndef SNAKE_H #define SNAKE_H classCmp friend class Csnake; intrSign; /横坐标 intlSign; /竖坐标 public: / friend boolisDead(constCmp Cmp(intr,int l)setPoint(r,l); Cmp() voidsetPoint(intr,int l)rSign=r;lSign=l; Cmp operator-(constCmp Cmp operator+(constCmp ; constintmaxSize = 5; /初始蛇身长度 cl

13、assCsnake CmpfirstSign; /蛇头坐标 CmpsecondSign;/蛇颈坐标 CmplastSign; /蛇尾坐标 CmpnextSign; /预备蛇头 int row; /列数 int line; /行数 int count; /蛇身长度 vectorsnakeMap;/整个游戏界面 queuesnakeBody; /蛇身 public: intGetDirections()const; chargetSymbol(constCmp Csnake(int n) /初始化游戏界面大小 if(n30)line=30+2; else line=n+2; row=line*3+2; boolisDead(constCmp void InitInstance(); /初始化游戏界面 boolUpdataGame(); /更新游戏界面 void ShowGame(); /显示游戏界面 ; #endif / SNAKE_H

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


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

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

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