c语言贪吃蛇实现_c语言 贪吃蛇代码_c语言贪吃蛇代码

飞来科技  发布时间:2019-08-09 02:03:51

本文关键词:c语言贪吃蛇实现

c语言 贪吃蛇代码_c语言贪吃蛇代码_c语言贪吃蛇实现

....百度下 很多的.....

TC 贪吃蛇代码2008-06-08 13:50#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=32000;

struct Food *食品的结构体*

{

int x;*食品的横坐标*

int y;*食品的纵坐标*

int yes;*食品是否出现的函数*

}food;

struct Snack *蛇的结构体*

{

int x[N];

int y[N];

int node;*蛇的节数*

int direction; *蛇的方向*

int life;*蛇的人生c语言贪吃蛇实现,活着,1死亡*

}snake;

void Init(void); *图形驱动*

void Close(void); *关闭游戏变量*

void DrawK(void); *画图函数*

void GameOver(void);*输出失败函数*

void GamePlay(); *游戏控制函数 主要流程*

void PrScore(void); *成绩输出数组*

DELAY(char ch)*调节游戏速率*

{

if(ch==3)

{

delay(gamespeed); *delay是延迟函数*

delay(gamespeed);

}

else if(ch==2)

c语言贪吃蛇实现_c语言 贪吃蛇代码_c语言贪吃蛇代码

{

delay(gamespeed);

}

}

Menu()*游戏直到菜单*

{

char ch;

printf("Please choose the gamespeed:n");

printf("1-Fast 2-Normal 3-Slown");

printf("nPlease Press The numbers..n");

do

{ch=getch();}

while(ch!=1&&ch!=2&&ch!=3);

clrscr();

return(ch);

}

*主函数*

void main(void)

{

int ch;

ch=Menu();

Init();

DrawK();

GamePlay(ch);

Close();

}

void Init(void)

{

int gd=DETECT,gm;

initgraph(&gd,&gm,"c:tc");

cleardevice();

}

void DrawK(void)

{

setcolor(11);

setlinestyle(SOLID_LINE,,THICK_WIDTH);

for(i=50;i<=600;i+=10)

{

rectangle(i,40,i+10,49); *画出上边框*

rectangle(i,451,i+10,460); *画出下边框*

}

c语言贪吃蛇实现_c语言 贪吃蛇代码_c语言贪吃蛇代码

for(i=40;i<=450;i+=10)

{

rectangle(50,i,59,i+10); *画出左边框*

rectangle(601,i,610,i+10); *画出右边框*

}

}

void GamePlay(char ch)

{

randomize();*随机数发生器*

food.yes=1;*1代表要出现水果,表示以存在食物*

snake.life=0;

snake.direction=1;

snake.x[]=100;snake.y[]=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; *使用rand函数随机造成食物坐标*

while(food.x!=)

food.x++;

while(food.y!=)

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>;i--) *贪吃蛇的移动算法*

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1]; *贪吃蛇的人体移动硬件*

}

switch(snake.direction)*贪吃蛇的颈部移动硬件c语言贪吃蛇实现,借此来控制移动*

c语言贪吃蛇代码_c语言 贪吃蛇代码_c语言贪吃蛇实现

{

case 1:snake.x[]+=10;break;

case 2:snake.x[]-=10;break;

case 3:snake.y[]-=10;break;

case 4:snake.y[]+=10;break;

}

for(i=3;i<snake.node;i++) *分析是否头部与人体被撞*

{

if(snake.x[i]==snake.x[]&&snake.y[i]==snake.y[])

{

GameOver();

snake.life=1;

break;

}

}

*上面是分析能否撞到楼梯*

if(snake.x[]<55||snake.x[]>595||snake.y[]<55||snake.y[]>455)

{

GameOver();

snake.life=1;

}

if(snake.life==1) *或者死亡就退出循环*

break;

if(snake.x[]==food.x&&snake.y[]==food.y) *分析蛇是否吃到食品*

{

setcolor();

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=;i<snake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

delay(gamespeed);

DELAY(ch);

setcolor();

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

}

c语言贪吃蛇实现_c语言贪吃蛇代码_c语言 贪吃蛇代码

if(snake.life==1)

break;

key=bioskey(); *接受键盘*

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(void)

{

cleardevice();

setcolor(RED);

settextstyle(,,4);

outtextxy(200,200,"GAME OVER");

getch();

}

void PrScore(void)

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(,,2);

sprintf(str,"scord:%d",score);

outtextxy(55,20,str);

}

void Close(void)

{

getch();

closegraph();

}

本文来自互联网,由机器人自动采编,文章内容不代表本站观点,请读者自行辨别信息真伪,如有发现不适内容,请及时联系站长处理。

    相关阅读
    江苏快三开奖结果