下载此文档

课程设计贪吃蛇小游戏.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
课程设计报告
课程名称:面向对象程序设计C++
设计题目:贪吃蛇小游戏
专业:计算机科学与技术
姓名:
学号:
指导教师:李晓虹
2016 年 1 月 1 日
一、开发背景及意义

贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。
系统需求分析
、程序功能
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
、设计思想
程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇2 的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个结构体:食物与蛇。
、流程图
开始
初始化界面和蛇身
放置食物
蛇开始运动
蛇吃到食?
蛇长大
蛇死亡?
继续?
退出界面
N
N
Y
N
Y
游戏者按键选择
Y
图2-1
总体设计
运行环境
本程序运行时需要硬件环境和支持环境。
a. 硬件环境:一般的PC机
b. 软件环境:WINGDOWS 95或以上

用流程图示出程序的主要控制流程和处理流程,如图3-1所示:
游戏载入内存并初始化界面
判断游戏是否开始
单击工具栏按钮【玩】
或者【游戏】—>【开始】开始游戏
没有开始游戏,就返回初始界面
贪吃蛇开始移动(初始方向向左)
根据键盘消息判断蛇头的运动方向
根据蛇头的坐标和食物的坐标判断蛇是否已经得到食物
如果已经得到食物,则蛇的身体加长,积分器加一
如果没有得到食物,则蛇的身体不变,积分器不变
根据蛇头的坐标、蛇身体的坐标和墙壁的坐标判断蛇是否已经撞墙或者自己咬到自己
如果没有撞墙并且没有自己咬到自己则程序继续进行
如果已经撞墙或者自己咬到自己则程序终止
贪吃蛇程序结束
计时器开始计时
积分器开始计分
图3-1

:网状边框表示草地,绿色矩形串代表蛇,绿色空心圆形代表食物。
【玩】或者【游戏】—>【开始】开始游戏。


四、详细设计

动态数组CArray<CPoint,CPoint> m_aBody; // 保存蛇身
点类 CPoint m_pAim;//保存一个食物目标的坐标
函数

函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用
#define N 200
#define M 200
#include""
#include<>
#include<>
#include<>
#include<>
#include<>
#include<>
#include <>
#define LEFT 97//A
#define RIGHT 100//D
#define DOWN 115//S
#define UP 119//W
#define Esc 0x011b
int i,key;
int score=0;
int gamespeed=250;//游戏速度可根据实际情况自行调整
struct Food
{
int x;//食物的横坐标
int y;//食物的纵坐标
int yes;//判断是否要出现食物的变量
}food;//食物的结构体
struct Snake
{
in

课程设计贪吃蛇小游戏 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人feng1964101
  • 文件大小116 KB
  • 时间2018-10-15