30 lines
591 B
C
30 lines
591 B
C
#include "grid.h"
|
|
#include "snake.h"
|
|
|
|
void crawl(Snake *snake)
|
|
{
|
|
int i;
|
|
Coord new_head = snake->pos[0];
|
|
switch (snake->dir)
|
|
{
|
|
case LEFT:
|
|
new_head.x = (new_head.x - 1 + NBC) % NBC;
|
|
break;
|
|
case RIGHT:
|
|
new_head.x = (new_head.x + 1) % NBC;
|
|
break;
|
|
case TOP:
|
|
new_head.y = (new_head.y - 1 + NBL) % NBL;
|
|
break;
|
|
case BOTTOM:
|
|
new_head.y = (new_head.y + 1) % NBL;
|
|
break;
|
|
}
|
|
|
|
for (i = SNAKE_SIZE - 1; i > 0; i--)
|
|
{
|
|
snake->pos[i] = snake->pos[i - 1];
|
|
}
|
|
|
|
snake->pos[0] = new_head;
|
|
} |