#include<stdio.h>
#define High 20
#define Width 30
int moveDirection;
int canvas[High][Width] = {0};
void moveSnakeByDirection()
{
int i,j;
for (i=1;i<High-1;i++)
for(j=1;j<Width-1;j++)
if(canvas[i][j>0])
canvas[i][j]++;
int oldTail_i,oldTail_j,oldHead_i,oldHead_j;
int max = 0;
for(i=1;i<High-1;i++)
for(j=1;j<Width-1;j++)
if(canvas[i][j]>0)
{
if(max<canvas[i][j])
{
max = canvas[i][j];
oldTail_i = i;
oldTail_j = j;
}
if(canvas[i][j] == 2)
{
oldHead_i = i;
oldHead_j = j;
}
}
canvas[oldTail_i][oldTail_j] = 0;
int newHead_i,newHead_j;
if (moveDirection==1)//向上移动
{
newHead_i = oldHead_i-1;
newHead_j = oldHead_j;
}
if (moveDirection==2)//向下移动
{
newHead_i = oldHead_i+1;
newHead_j = oldHead_j;
}
if (moveDirection==3)//向左移动
{
newHead_i = oldHead_i;
newHead_j = oldHead_j-1;
}
if (moveDirection == 4)//向右移动
{
newHead_i = oldHead_i;
newHead_j = oldHead_j+1;
}
//小蛇是否和自身相撞或者和边框撞,游戏失败
if(canvas[newHead_i][newHead_j]>0||canvas[newHead_i][newHead_j]==-1)
{
printf("游戏失败!\n");
exit(0);
}
else
canvas[newHead_i][newHead_j] = 1;
}