课程设计贪吃蛇小游戏

课程设计贪吃蛇小游戏

ID:20237685

大小:120.00 KB

页数:14页

时间:2018-10-11

课程设计贪吃蛇小游戏_第1页
课程设计贪吃蛇小游戏_第2页
课程设计贪吃蛇小游戏_第3页
课程设计贪吃蛇小游戏_第4页
课程设计贪吃蛇小游戏_第5页
资源描述:

《课程设计贪吃蛇小游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。2.2、设计思想程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇2 的身体随蛇头移动,图形的实现是从

3、蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。2.3、流程图14开始初始化界面和蛇身放置食物蛇开始运动蛇吃到食?蛇长大蛇死亡?继续?退出界面NNYNY游戏者按键选择Y图2-1二、总体设计3.1运行环境本程序运行时需要硬件环境和支持环境。a.硬件环境:一般的PC机b.软件环境:WINGDOWS95或以上3.2系统流程14用流程图示出程序的主要控制流程和处理流程,如图3-1所示:14游戏载入内存并初始化界面判断

4、游戏是否开始单击工具栏按钮【玩】或者【游戏】—>【开始】开始游戏没有开始游戏,就返回初始界面贪吃蛇开始移动(初始方向向左)根据键盘消息判断蛇头的运动方向根据蛇头的坐标和食物的坐标判断蛇是否已经得到食物如果已经得到食物,则蛇的身体加长,积分器加一如果没有得到食物,则蛇的身体不变,积分器不变根据蛇头的坐标、蛇身体的坐标和墙壁的坐标判断蛇是否已经撞墙或者自己咬到自己如果没有撞墙并且没有自己咬到自己则程序继续进行如果已经撞墙或者自己咬到自己则程序终止贪吃蛇程序结束计时器开始计时积分器开始计分14图3-13.3用户接口设计a.用户看到的游戏界面:网状边框表示草地,绿色矩形串代表蛇,绿色空心

5、圆形代表食物。b.用户通过单击工具栏按钮【玩】或者【游戏】—>【开始】开始游戏。c.用户可以在窗口中直接看到游戏玩法的文字提示。d.游戏结束时程序会弹出窗口提示。四、详细设计4.1数据结构动态数组CArraym_aBody;//保存蛇身点类CPointm_pAim;//保存一个食物目标的坐标4.2函数4.2.1函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#defineN200#defineM200#include"graphics.h"#include#include#include<

6、string.h>#include#include#include#include#defineLEFT97//A#defineRIGHT100//D#defineDOWN115//S#defineUP119//W#defineEsc0x011binti,key;intscore=0;intgamespeed=250;//游戏速度可根据实际情况自行调整14structFood{intx;//食物的横坐标inty;//食物的纵坐标intyes;//判断是否要出现食物的变量}food;//食物的结构体str

7、uctSnake{intx[M];inty[M];intnode;//蛇的节数intdirection;//蛇的移动方向intlife;//蛇的生命,0表示活着,1表示死亡}snake;voidInit();//图形驱动voidClose();//图形结束voidDrawK();//开始画面voidGamePlay();//玩游戏的具体过程voidGameOver();//游戏结束voidPrScore();//输出成绩voidCSnakeView::IniAim()//随机函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。