DOS简简易易版版C语语言言贪贪吃吃蛇蛇
本文实例为大家分享了C语言实现贪吃蛇的具体代码,供大家参考,具体内容如
#include
#include
#include
#include
#include
#define WALL_LENGTH 22
#define LEFT x4b
#define RIGHT x4d
#define DOWN x5
#define UP x48
struct Snakes{
int x;
int y;
struct Snakes *prev;
struct Snakes *next;
};
struct Food{
int x;
int y;
};
struct Snakes *header;
struct Snakes *tailer;
struct Food *food;
int wall[WALL_LENGTH][WALL_LENGTH];
int direction = RIGHT;
/**/
void init();
void draw();
void move();
void doMove(int x1, int y1);
void eat();
void keydown();
void foods();
int isOver();
int isDrawSnake(int x, int y);
int isDrawFood(int x, int y);
int main(){
init();
while(1){
if(isOver()){
break;
}
move();
eat();
draw();
_sleep( 1 );
keydown();
}
printf("GAME OVER!");
system("pause");
}
void init(){
int y, x;
for(y= ; y < WALL_LENGTH; y++){
for(x= ; x < WALL_LENGTH; x++){
if(y == || y == WALL_LENGTH - 1 || x == || x == WALL_LENGTH - 1){
wall[y][x] = 1;
}
}
}
header=(struct Snakes *)malloc(sizeof(struct Snakes));
header->x=1 ;
header->y=1 ;
header->prev=NULL;
tailer=(struct Snakes *)malloc(sizeof(struct Snakes));
tailer->x=9;
tailer->y=1 ;
tailer->next=NULL;
tailer->prev=header;
header->next=tailer;
foods();
}
void draw(){
int y, x;
system("cls");
for(y= ; y < WALL_LENGTH; y++){
for(x= ; x < WALL_LENGTH; x++){
if(wall[y][x] == 1){
printf("[]");
}