《面向对象程序设计》贪吃蛇小游戏
一 实验开发背景及意义
1.1实验目的
面对对象课程设计课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基础知识的基础上,进一步加深对 C++语言的理解和掌握。提高和加强学生的计算机应用及软件开发能力,使学生具各初级程序员的基本素质,培养学生独立分析问题、解决问题,查阅资料以及目学能力,以适应信息管理行业目薪
月异的发展形势。
1.2实验主要软件
利用Microsoft Visual C++2010学习版设计制作一个贪吃蛇小游戏
C++图形库EasyX
1.3实验设计思想
程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,所以蛇头不可以向相反的方向移动,如果不按下意键,蛇自行在当前方向右前移,但按下有效方向键后,蛇头朝该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置一而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始面出蛇,这时,由于未清屏的原因,原来的蛇的位置和新的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后节用背景覆盖。食物的出现与消失也是画知形块和覆盖矩形块。
二 系统需求分析
2.1游戏规则
开始游戏后,W A S D键控制贪吃蛇的移动方向,当贪吃蛇向一个方向移动时,不能立刻向反方向移动。贪吃蛇撞到的自己的身体或者撞到墙时,游戏结束,并输出“GAME OVER!”。贪吃蛇吃到一个食物后,出现白闪烁一次,身体随之增加一个单位长度。
2.2流程图
三 主要函数
3.1贪吃蛇
snake.size = 3;
snake.speed = 10;
snake.dir=RIGHT;
for(int i=0;i< snake.size;i++)
{
[i].x=30-i*10;
[i].y=10;
}
3.2食物
food.x = rand() % 640;
food.y = rand() % 480;
lor = RGB(rand()%256,rand()%256,rand()%256);
food.r = rand()%10+5;
food.flag = true;
四 源代码
# include<stdio.h>
# include<graphics.h>
# include<conio.h>
# include<stdlib.h>
#define SNAKE_NUM 500
enum DIR //表示蛇的方向
{
UP,
DOWN,
LEFT,
RIGHT,
};
struct Food
{
int x;
int y;
int r;
bool flag;//定义食物是否被吃掉
DWORD color;
}food;
struct Snake
{
int size;
int speed;
int dir;
POINT coor[SNAKE_NUM];
}snake;
void GameInit()
{
//窗口
initgraph(640,480);
//设置随机数种子
srand(GetTickCount());//GetTickCount()获取系统开机 到现在所经过的毫秒数
//蛇
snake.size = 3;
snake.speed = 10;
snake.dir=RIGHT;
for(int i=0;i< snake.size;i++)
{
[i].x=30-i*10;
[i].y=10;
}
//食物
food.x = rand() % 640;//防止超出窗口
food.y = rand() % 480;
lor = RGB(rand()%256,rand()%256,rand()%256);//颜初始化
贪吃蛇编程教学 food.r = rand()%10+5;
food.flag = true;
}
void GameDraw()
{
BeginBatchDraw();
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论