问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言编写贪吃蛇游戏的程序

发布网友 发布时间:2022-04-23 13:57

我来回答

3个回答

热心网友 时间:2023-04-30 17:26

回答:Mr.emily
大师
6月3日 16:45 #define N 200
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define Esc 0x011b
int i,key;
int score=0;
int gamespeed=50000;
struct Food
{int x;
int y;
int yes;
}food;
struct Snake
{int x[N];
int y[N];
int node;
int direction;
int life;
}snake;
void Init();
void Close();
void DrawK();
void GamePlay();
void GameOver();
void PrScore();
void main()
{ Init();
DrawK();
GamePlay();
Close();

}
void Init()
{int gd=DETECT,gm;
initgraph(&gd,&gm,"F:\\tuoboc2");/*此处为turboc的路径,读者可以根据自己的电脑而改*/
cleardevice();
}
void DrawK()
{setbkcolor(LIGHTGREEN);
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
for(i=50;i<=600;i+=10)
{rectangle(i,40,i+10,49);
rectangle(i,451,i+10,460);
}
for(i=40;i<=450;i+=10)
{rectangle(50,i,59,i+10);
rectangle(601,i,610,i+10);
}
}
void GamePlay()
{randomize();
food.yes=1;
snake.life=0;
snake.direction=1;
snake.x[0]=100;snake.y[0]=100;
snake.x[1]=110;snake.y[1]=100 ;
snake.node=2;
PrScore();
while(1)
{while(!kbhit())
{ if(food.yes==1)
{food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;
}
if(food.yes==0)
{setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i--)
{snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
switch(snake.direction)
{case 1:
snake.x[0]+=10;break;
case 2:
snake.x[0]-=10;break;
case 3:
snake.y[0]-=10;break;
case 4:
snake.y[0]+=10;break;
}
for(i=3;i<snake.node;i++)
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{ GameOver();
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455)
{GameOver();
snake.life=1;
}
if(snake.life==1)
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)
{setcolor(0);
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;
snake.y[snake.node]=-20;
snake.node++;
food.yes=1;
score+=10;
PrScore();
}
setcolor(4);
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
delay(gamespeed);
setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
if(snake.life==1)
break;
key=bioskey(0);
if(key==Esc)
break;
else if(key==UP&&snake.direction!=4)
snake.direction=3;
else if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}
}
void GameOver()
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(3,0,4);
outtextxy(100,100,"Mengmeng,i love you!");
getch();
}
void PrScore()
{char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);
}
void Close()
{ getch();
closegraph();
}

Mr.emily

热心网友 时间:2023-04-30 17:26

回答:Mr.emily
大师
6月3日
16:45
#define
N
200
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
#define
LEFT
0x4b00
#define
RIGHT
0x4d00
#define
DOWN
0x5000
#define
UP
0x4800
#define
Esc
0x011b
int
i,key;
int
score=0;
int
gamespeed=50000;
struct
Food
{int
x;
int
y;
int
yes;
}food;
struct
Snake
{int
x[N];
int
y[N];
int
node;
int
direction;
int
life;
}snake;
void
Init();
void
Close();
void
DrawK();
void
GamePlay();
void
GameOver();
void
PrScore();
void
main()
{
Init();
DrawK();
GamePlay();
Close();
}
void
Init()
{int
gd=DETECT,gm;
initgraph(&gd,&gm,"F:\\tuoboc2");/*此处为turboc的路径,读者可以根据自己的电脑而改*/
cleardevice();
}
void
DrawK()
{setbkcolor(LIGHTGREEN);
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
for(i=50;i<=600;i+=10)
{rectangle(i,40,i+10,49);
rectangle(i,451,i+10,460);
}
for(i=40;i<=450;i+=10)
{rectangle(50,i,59,i+10);
rectangle(601,i,610,i+10);
}
}
void
GamePlay()
{randomize();
food.yes=1;
snake.life=0;
snake.direction=1;
snake.x[0]=100;snake.y[0]=100;
snake.x[1]=110;snake.y[1]=100
;
snake.node=2;
PrScore();
while(1)
{while(!kbhit())
{
if(food.yes==1)
{food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;
}
if(food.yes==0)
{setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i--)
{snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
switch(snake.direction)
{case
1:
snake.x[0]+=10;break;
case
2:
snake.x[0]-=10;break;
case
3:
snake.y[0]-=10;break;
case
4:
snake.y[0]+=10;break;
}
for(i=3;i<snake.node;i++)
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455)
{GameOver();
snake.life=1;
}
if(snake.life==1)
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)
{setcolor(0);
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;
snake.y[snake.node]=-20;
snake.node++;
food.yes=1;
score+=10;
PrScore();
}
setcolor(4);
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
delay(gamespeed);
setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
if(snake.life==1)
break;
key=bioskey(0);
if(key==Esc)
break;
else
if(key==UP&&snake.direction!=4)
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}
}
void
GameOver()
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(3,0,4);
outtextxy(100,100,"Mengmeng,i
love
you!");
getch();
}
void
PrScore()
{char
str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);
}
void
Close()
{
getch();
closegraph();
}
Mr.emily

热心网友 时间:2023-04-30 17:27

回答:Mr.emily
大师
6月3日
16:45
#define
N
200
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
#define
LEFT
0x4b00
#define
RIGHT
0x4d00
#define
DOWN
0x5000
#define
UP
0x4800
#define
Esc
0x011b
int
i,key;
int
score=0;
int
gamespeed=50000;
struct
Food
{int
x;<br>int
y;<br>int
yes;<br>}food;
struct
Snake
{int
x[N];<br>int
y[N];<br>int
node;<br>int
direction;<br>int
life;<br>}snake;
void
Init();
void
Close();
void
DrawK();
void
GamePlay();
void
GameOver();
void
PrScore();
void
main()
{
Init();
DrawK();
GamePlay();
Close();
}
void
Init()
{int
gd=DETECT,gm;<br>initgraph(&gd,&gm,"F:\tuoboc2");/*此处为turboc的路径,读者可以根据自己的电脑而改*/<br>cleardevice();<br>}
void
DrawK()
{setbkcolor(LIGHTGREEN);<br>setcolor(11);<br>setlinestyle(SOLID_LINE,0,THICK_WIDTH);<br>for(i=50;i<=600;i+=10)<br>{rectangle(i,40,i+10,49);<br>rectangle(i,451,i+10,460);<br>}
for(i=40;i<=450;i+=10)
{rectangle(50,i,59,i+10);<br>rectangle(601,i,610,i+10);<br>}
}
void
GamePlay()
{randomize();<br>food.yes=1;<br>snake.life=0;<br>snake.direction=1;<br>snake.x[0]=100;snake.y[0]=100;<br>snake.x[1]=110;snake.y[1]=100
;<br>snake.node=2;<br>PrScore();<br>while(1)<br>{while(!kbhit())<br>{
if(food.yes==1)<br>{food.x=rand()%400+60;<br>food.y=rand()%350+60;<br>while(food.x%10!=0)<br>food.x++;<br>while(food.y%10!=0)<br>food.y++;<br>food.yes=0;<br>}
if(food.yes==0)
{setcolor(GREEN);<br>rectangle(food.x,food.y,food.x+10,food.y-10);<br>}
for(i=snake.node-1;i>0;i--)
{snake.x[i]=snake.x[i-1];<br>snake.y[i]=snake.y[i-1];<br>}
switch(snake.direction)
{case
1:<br>snake.x[0]+=10;break;<br>case
2:<br>snake.x[0]-=10;break;<br>case
3:<br>snake.y[0]-=10;break;<br>case
4:<br>snake.y[0]+=10;break;<br>}
for(i=3;i<snake.node;i++)
{
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])
{
GameOver();
snake.life=1;
break;
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455)
{GameOver();<br>snake.life=1;<br>}
if(snake.life==1)
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)
{setcolor(0);<br>rectangle(food.x,food.y,food.x+10,food.y-10);<br>snake.x[snake.node]=-20;<br>snake.y[snake.node]=-20;<br>snake.node++;<br>food.yes=1;<br>score+=10;<br>PrScore();<br>}
setcolor(4);
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
delay(gamespeed);
setcolor(0);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
if(snake.life==1)
break;
key=bioskey(0);
if(key==Esc)
break;
else
if(key==UP&&snake.direction!=4)
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}
}
void
GameOver()
{
cleardevice();
PrScore();
setcolor(RED);
settextstyle(3,0,4);
outtextxy(100,100,"Mengmeng,i
love
you!");
getch();
}
void
PrScore()
{char
str[10];<br>setfillstyle(SOLID_FILL,YELLOW);<br>bar(50,15,220,35);<br>setcolor(6);<br>settextstyle(0,0,2);<br>sprintf(str,"score:%d",score);<br>outtextxy(55,20,str);<br>}
void
Close()
{
getch();
closegraph();
}
Mr.emily
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2023文科男生最吃香的专业 哪些专业好就业 在南京想找上海音乐学院的老师,怎么找? 荔枝核怎么服用-荔枝核煮水一般煮几颗合适 属虎适合什么名字2022年新生儿 有内涵热门名字精选 国内读研好,还是出国读研好 出国读研和国内读研哪个更好 在一个比例中,如果两个外项互为倒数。那么两个内向的什么是一?_百度知 ... 两个外项互为倒数,一个内向是8分之3,另一个内项是多少【怎样求出来... 在一个比例中,两个外向互为倒数,其中一个内项是8,另一个内项是_百度... 在比例中两个外项互为倒数,其中一个内向是2.75,另一个内项是多少_百度... 上火了,嘴角上长了几颗粒粒,怎么办? 贪吃蛇游戏的C语言编程 一般是什么引起上嘴唇有好多白色颗粒状白点,怎样进行 嘴唇上长了很多小颗粒 c#编程贪吃蛇 我的上嘴唇长了好多小颗粒(就上唇有),不痛不痒.谁能告诉是怎么回事啊!?怎样才能让它们消失呢? 贪吃蛇plc编程思路 上嘴唇有些黄色小颗粒 怎么办? 贪吃蛇编程 嘴唇上好多小颗粒,淡白色,密密麻麻是怎么回事,谁能告诉我要任何解决,急 求贪吃蛇的程序代码(c语言) 嘴巴上唇长很多白色小颗粒,像鱼籽一样的,请问是什么原因,应该怎么去除? 我嘴唇上长了一些小颗粒,有好几年了,不疼不痒可是好像越来越多了,嘴角处最多,这是什么病?要怎么治啊 我嘴角里面出现很多小颗粒,怎么回事 嘴唇上面长了一些白色的小颗粒要怎么消除 嘴巴周围下巴长很多小颗粒,该怎么办 嘴边有哪种摸起来的小颗粒怎么去掉? 一个女头像背景是蓝色头顶拿着花情侣头像 卡通情侣头像女的胸前拿花 求情侣头像,女的头上戴花,且有花遮住左眼,求另一半的图片。在线等,急求! 嘴唇、下巴上长了好多的小颗粒,怎么办 我的上嘴唇长了这样的东西,密密麻麻的小颗粒在表皮内,不仔细看就是一片一片的白,不疼不痒的,就类似图 嘴角密密麻麻小颗粒 不痛不痒的。怎么办啊 好久了下不去 求贪吃蛇的C++程序代码 嘴唇上有小颗粒很多是怎么了 如何自己编写一个贪吃蛇的游戏软件? 鼻子和嘴附近有小颗粒像鸡皮疙瘩一样里面有脂肪粒怎么解决 在dos环境下c语言编程编一个贪吃蛇游戏 嘴巴周围长白包颗粒是脂肪粒吗,怎么去除 关於贪吃蛇编程 嘴唇上长了好多小颗粒,不痛不痒,密密麻麻 怎样用c++编一个简单的贪吃蛇游戏 急求 设计贪吃蛇实验报告 win7 word自动保存文件被删除了如何恢复? 如何恢复上次保存的word文档?【200分】 word自动恢复的文档不小心被我删掉了,怎么办? word文档编辑完没有保存,还可以恢复吗 word意外关闭后,自动保存的文件误删掉了,后又从回收站还原,但还是找不到,怎么办? 有哪些新能源产品? 国产新能源车有哪些品牌?