pvjc22/du7/snake.c
2022-04-26 21:41:30 +02:00

64 lines
1.3 KiB
C

#include "snake.h"
#include <stdlib.h>
struct snake* add_snake(struct snake* snake,int x,int y){
struct snake* novyZaciatok = calloc(1, sizeof(struct snake)); //alokujem pamäť smerníka
novyZaciatok->x = x; //nastavím súradnice hada
novyZaciatok->y = y;
if (snake != NULL) { //ak má had telo,
novyZaciatok->next = snake; //tak mu iba pridám hlavu
} else {
novyZaciatok->next = NULL; //inak musím vytvoriť nové telo
}
return novyZaciatok;
}
struct snake* remove_snake(struct snake* snake){
if (snake == NULL) return NULL;
else if (snake->next == NULL) {
free(snake);
return NULL;
}
else {
struct snake* medzipamat = calloc(1, sizeof(struct snake));
medzipamat = snake;
while (snake->next->next != NULL) snake = snake->next;
free(snake->next);
snake->next = NULL;
snake = medzipamat;
free(medzipamat);
return snake;
}
}
void free_snake(struct snake* sn){
struct snake* nasledujuci = calloc(1, sizeof(struct snake));
while (sn != NULL) {
nasledujuci = sn->next;
free(sn);
sn = nasledujuci;
}
free(nasledujuci);
}
int is_snake(struct snake* snake,int x,int y){
return 0;
}
int step_state(struct state* st){
int nx = (st->snake->x + st->sx);
int ny = (st->snake->y + st->sy);
return END_CONTINUE;
}