c语言贪吃蛇游戏报告,贪吃蛇游戏c程序报告.docx

一、读程序题部分(贪吃蛇)

1、程序的功能

设计游戏界面,包括画墙、画蛇、画食物,并且设置蛇和食物的届性,编 写蛇的运动方式和游戏方式。

2、主函数分析

主函数中前两行与编写图形程序有关,第三行中调用Speed函数,把Speed 函数的返回值付给变量speed第五行dwall函数的作用是画墙,函数中乂调用 wall函数来画墙上的砖块

3、函数的调用关系

Setcoloc() lineO sedillstvleQ birf)

ngotox>t)i~i~i~~t~~ir~

n

gotox>t)

SrandQ randQsetlinestyle() recLangle() GameChwQ

cleaide^

4、数据变量定义作用

定义食物的横坐标food.x和食物的纵坐标food.y可以有效的随机设置食物出 现在界面的任何地方;

定义snake.life表示蛇的生死以否,好判断是否结束游戏

snake.dir=1;/*方向向右 */

定义snake.x[0]和snake.y[0俵示蛇头的坐标,在后面蛇撞墙死的问题上用的 到蛇头的坐标;

定义蛇的节数snake.node方便蛇每吃到食物节数增加;

定义snake.level,显示蛇的闯关数

5、主要函数的功能、流程图

dwall():画墙

wall():画组成墙的砖

Speed。选择贪吃蛇的速度 line():画线函数,画砖的线条

gotoxy():定位坐标

Play():调用各函数,开始完游戏

GameOver():结束游戏

6、程序的不足及改进

没有障碍墙,游戏过丁简单;没有游戏奖励,游戏趣味性不高;

改进:设置障碍墙,蛇撞到墙也死;

代码:for(j=200;j<=300;j+=10)

(

wall(j,300);/*画横的障碍墙*/

}

for(j=300;j<=350;j+=10)

(

wall(300,j);/*画竖的障碍墙*/

}

不足:没有游戏奖励,游戏趣味性不高;

改进:增加生命值,蛇每吃到三颗食物,则增加一个生命值;

代码:定义food.level,在Play函授中初始化,在设置蛇每吃到一颗食物就增 长一节身体的代码后加上

if(snake.node%3==0)

{snake.level++; /*除第一关外,其余每吃 3

颗食物,就增加一个生命值*/

gotoxy(5,2);

printf("The level is %d",snake.level); /* 左上角显示出生命值(级别)

*/

}

7、加上注释、改进后的完整代码

#include

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

#define N 100/*贪吃蛇的最大长度*/

#define P 0x1970/*定义暂停功能键*/ int i,key;

int speed;/*游戏速度 */

struct FOOD

{

int x;/*食物的横坐标*/

int y;/*食物的纵坐标*/

int flag;/*标志是否要出现食物*/

}food;

struct Snake

{

int x[N];

int y[N];

int node;/*蛇的节数*/

int dir;/*蛇移动方向*/

int life;/*标志是死是活*/

int level;/*定义生命值(级另U) */

}snake;

void GameOver();/*结束游戏 */

void Play();/*玩游戏过程*/

void dwall();/* 画墙*/

void wall(int x,int y);/* 画组成墙的砖 */

int Speed();/*选择贪吃蛇的速度*/

main()

{

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,"");

speed=Speed();/将函数返回值赋给speed*/

cleardevice();/* 活屏 */

dwall();/*开始画墙*/

Play();/*开始完游戏*/

getch();

closegraph();/*退出图形界面*/

}

void wall(int x,int y)

{

int sizx=9;

int sizy=9;

setcolor(15);/*白色画砖的上边和左边*/

line(x,y,x+sizx,y);

line(x,y+1,x+sizx

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值