自己写的贪吃蛇,a s w d控制移动方向, [ ] 控制速度加减,有Bug的话欢迎指出
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#define SNAKE_R21//行
#define SNAKE_L20//列
#define MOD 4
structNode{
int x,y;
}snake[SNAKE_R*SNAKE_L];
charmap[SNAKE_R+10][SNAKE_L+10];
intdir,cur_x,cur_y,lenth;
intans[4][2]={0,-1,-1,0,0,1,1,0};
intSPEED=50,score;
voidgotoxy(int x,int y)
{
COORD c;
c.X=x-1;c.Y=y-1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
voidinit()
{
int i,j;
lenth=0;
score=0;
memset(map,0,sizeof(map));
snake[lenth].x=SNAKE_R/2;
snake[lenth++].y=SNAKE_L/2;
for(i=0;i<=SNAKE_R;i++)
{
for(j=0;j<=SNAKE_L;j++)
{
if(i==0&&j==0)printf("╔");
elseif(i==0 &&j==SNAKE_L)printf("╗");
elseif(i==SNAKE_R &&j==0)printf("╚");
elseif(i==SNAKE_R &&j== SNAKE_L)printf("╝");
elseif(i==0 || i==SNAKE_R)printf("==");
elseif(j==0 || j==SNAKE_L)printf("‖");
elseprintf(" ");
}
printf("n");
}
gotoxy(snake[0].y*2+1,snake[0].x+1);
map[snake[0].x][snake[0].y]=1;
printf("■");
gotoxy(cur_y*2+1,cur_x+1);
printf("●");
gotoxy(SNAKE_L*2+14,SNAKE_R/2+1);
printf("Score: %d",score);
}
intJudge()
{
int x,y,t,i,j;
x=snake[0].x+ans[dir][0];
y=snake[0].y+ans[dir][1];
if(x<=0 || y<=0 || x>=SNAKE_R || y>=SNAKE_L || map[x][y])
{
if(map[x][y])
{
for(t=1;t<=5;t++)
{
gotoxy(y*2+1,x+1);
Sleep(400);
if(t%2)printf("■");
else printf(" ");
}
}
for(t=1;t<=5;t++)
{
Sleep(200);
for(i=0;i<lenth;i++)
{
x=snake[i].x;y=snake[i].y;
gotoxy(y*2+1,x+1);
if(!(t%2))printf(" ");
else printf("■");
}
}
for(t=1;t<=5;t++)
{