上代码:
操作说明:↑8,↓2,←4,→6
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<conio.h>
#include<time.h>
#define Map_long 20
#define Map_high 15
typedef struct snake{
int goods_class;
int direction;
}SNAKE;
SNAKE Snake[Map_high][Map_long] = { { 0 } };
unsigned die = 0;
unsigned snake_move = 0;
unsigned eat_food = 0;
unsigned snake_long = 3;
void Move(int ch);
void HideCursor();
int main(void)
{
system("mode con:cols=43 lines=20");
HideCursor();
unsigned i, j;
unsigned food = 0;
unsigned food_x, food_y;
unsigned score = 0;
char ch = '\0';
srand((unsigned)time(NULL));
for (i = 0; i < Map_long; i++)
{
Snake[0][i].goods_class = 1;
Snake[Map_high - 1][i].goods_class = 1;
}
for (i = 0; i < Map_high; i++)
{
Snake[i][0].goods_class = 1;
Snake[i][Map_long - 1].goods_class = 1;
}
for (i = 0; i < snake_long; i++)
Snake[Map_high / 2][Map_long / 2 + i].goods_class = snake_long + i;
while (1)
{
while (!_kbhit())
{
switch (ch)
{
case 72:Move(8); break;
case 75:Move(4); break;
case 77:Move(6); break;
case 80:Move(2); break;
default:break;
}
if (eat_food == 2)
{
food = 0;
eat_food = 0;
snake_long++;
score++;
}
do{
if (food == 1)
break;
food_x = rand() % Map_long;
food_y = rand() % Map_high;
if (Snake[food_y][food_x].goods_class == 0)
{
Snake[food_y][food_x].goods_class = 2;
food++;
break;
}
} while (1);
printf("Grade:%u\n", scor