#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
void printStr(char *buf, int startX, int startY);
void Food();
void move();
void die();
void eat();
void PRI();
void initsnake();
char* ch="■";
char* bh="YOU LOST!";
//up=53,down=50,left=49,right=51
int fx=51;
//结构体
struct coor
{
int n;
int x;
int y;
}snake[100];
struct
{
int x;
int y;
}food;
int main()
{
int FX;
initsnake();
Food();
l:
while(!kbhit())
{
die();
move();
PRI();
eat();
Sleep(50);
system("cls");
}
FX=getch();
if(FX==53||FX==49||FX==50||FX==51)
{
fx=FX;
}
else if(FX==' ')
{
system("cls");
printStr("游戏暂停,任意按键继续", 40, 24);
system("pause");
}
goto l;
return 0;
}
//初始化
void initsnake()
{
system("mode con: cols=100 lines=50");
printf("**************************************\n");
printf("******方向键1(左)2(下)3(右)5(上)******\n");
printf("**********空格键可以暂停游戏**********\n");
printf("**************************************\n");
system("pause");
snake[0].n=0;
snake[0].x=0;
snake[0].y=0;
printStr("●",snake[0].x,snake[0].y);
fx=51;
}
//生成食物
void Food()
{
srand(time(NULL));
food.x=rand()%25*4;
food.y=rand()%25*2;
printStr(ch,food.x,food.y);
}
/*
*function: 在控制台指定的位置输出字符串
*参数:buf,输出的字符串;startX、startY为控制台的X,Y坐标
*/
void printStr(char *buf, int startX, int startY)
{
HANDLE hd;
COORD pos;
pos.X = startX;
pos.Y = startY;
hd = GetStdHandle(STD_OUTPUT_HANDLE); /*获取标准输出的句柄*/
SetConsoleCursorPosition(hd, pos); /*设置控制台光标输出的位置*/
printf("%s", buf);
}
//移动
void move()
{
int i;
for(i=snake[0].n;i>0;i--)
{
snake[i].x=snake[i-1].x;
snake[i].y=snake[i-1].y;
}
switch(fx)
{
case 53:
snake[0].y-=1;
break;
case 50:
snake[0].y+=1;
break;
case 49:
snake[0].x-=2;
break;
case 51:
snake[0].x+=2;
break;
default :
break;
}
}
//判断死亡
void die()
{
if(snake[0].x>100||snake[0].x<0||snake[0].y<0||snake[0].y>50)
{
printStr(bh, 30, 24);
printf("你的得分是%d",snake[0].n);
getch();
}
}
//吃食物
void eat()
{
if(snake[0].x==food.x&&snake[0].y==food.y)
{
snake[0].n++;
Food();
}
}
//输出蛇及食物
void PRI()
{
int i;
for(i=0;i<=snake[0].n;i++)
printStr("●", snake[i].x,snake[i].y );
printStr(ch,food.x, food.y);
}
贪吃蛇C
猜你喜欢
转载自blog.csdn.net/u011256974/article/details/89206894
今日推荐
周排行