在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;