在dos环境下用C语言编写一个贪吃蛇游戏

程序设计和描述

1

,侧壁(

墙壁

)

这个类指定了游戏的范围。

2

,蛇(

)

使用这个类生成一个实例snake。

,移动(

移动

)

这个类用来控制蛇的操作,就是上下左右移动蛇头。

,食物(

食物

)

此类别是游戏过程中随机食物生产的控制和显示。

审判死亡(

死亡的

)

这一类是判断游戏过程中玩家的操作是否导致蛇死亡,包括蛇头是否咬到自己的身体,蛇头是否触碰到自己的身体。

以及游戏《面壁者》。

,蛇形节点(

蛇形节点

)

这种控制是蛇吃随机生产的食物来增加自己的长度,包括蛇长的增加和尾巴的变化。

,得分统计(

得分

)

这一类是由于玩家的游戏记录和游戏结束时的比分输出。

...

一些功能和描述

1.char menu();

/*

用于玩家选择的游戏速度。返回一。

价值

*/

2.延迟(char ch 1);

/*

用来控制游戏速度。

*/

3 . void draw map();

/*

绘制游戏地图功能

*

无效菜单()

/*

游戏帮助信息的输出

*

...

部分课程详细说明

1

蛇的构造

蛇类{

公共:

int x[n]

int y[n];

int节点;

//

蛇体长

int方向;//

蛇运动的方向

(同Internationalorganizations)国际组织

生活;//

蛇活着,审判死亡。

}

2

,随机食物

食物

使用

兰德(

)函数生成随机数,然后坐标定位。

无效食物(无效){

...

int pos _ x = 0;

int pos _ y = 0;

pos _ x = rand()% length;//x

坐标的确定

pos _ y = rand()%(width-1);//y

坐标的确定

...

}

确定黑鱼的方向

使用

转换

语句来确定方向

...

开关(){

案例VK_UP:{

OutChar2。y-;

y-;

打破;

}

案例VK _左:{

OutChar2。y++;

y++;

打破;

}

案例VK_DOWN:{

OutChar2。x-;

x-;

打破;

}

案例' VK _右:{

OutChar2。x++;

x++;

打破;

}

}

密码

# include & ltiostream & gt

# include & ltctime & gt

# include & ltconio.h & gt

# include & ltwindows.h & gt

# include & lttime.h & gt

使用命名空间std

int得分=0,t=300,f = 1;//

分数和时间间隔

/毫秒

(控制蛇的速度)

双ss=0,TT = 0;//

用于统计时间的参数

类节点

{

Node(): x(0),y(0),previous(0),next(0) { }

int x;

int y;

节点*先验;

节点*下一个;

朋友类蛇;

};

类蛇

{

公共:

snake();

~ Snake();

void输出();

void move();

void change _ point(char);

私人:

节点*头;

节点*尾部;

枚举p{ UP

,右,下,左}点;//

方向

int food_x,food _ y;//

食物坐标

静态常数int N = 23

int game[N][N];

void add_head(int,int);//

如下添加坐标

甲,乙

的节点

void delete _ tail();//

删除最后一个节点

void greate _ food();//

生产食物

void gotoxy(int,int);

};

void menu();

//

游戏操作菜单

int main()

{

系统("颜色a ");

//

最初的

煤矿管理局

窗口颜色是黑色(背景)和浅绿色(文本)

cout & lt& lt" \n\n\n\n\n\n

";

for(int I = 0;我& lt23;i++)

{char star[]={ "欢迎来到贪吃蛇游戏!"};

cout & lt& ltstar[I];

睡眠(170);}

cout & lt& lt" \n\n

祝你好运!

“& lt& ltendl

睡眠(3000);

if(kb hit()){ char kk = getch();if(kk = = 9)f = 5;} //

如果执行,吃一颗星plus。

分钟

系统(“cls”);

snake s;

menu();

system(" color 1a ");

s . output();

while(真)

{

char keydown = getch();

if(keydown = = 32)getch();

if(keydown==27)返回0;

s . change _ point(keydown);

而(!kbhit())

{clock_t start,endstart =时钟();

s . move();

s . output();

睡眠(t);

end = clock();TT =(double)(end-start)/CLOCKS _ PER _ SEC;ss+= TT;

cout & lt& lt"

时间:

“& lt& lt(int)ss;