From 72fb039acdac25ef107e77bf7acfccb97d0af5fc Mon Sep 17 00:00:00 2001 From: Matus Tokarcik Date: Wed, 17 Apr 2024 14:54:00 +0200 Subject: [PATCH] cv9 --- cv9/snake.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 cv9/snake.c diff --git a/cv9/snake.c b/cv9/snake.c new file mode 100644 index 0000000..9852808 --- /dev/null +++ b/cv9/snake.c @@ -0,0 +1,54 @@ +#include "snake.h" +#include + +struct snake* add_snake(struct snake* snake,int x,int y){ + struct snake* head = calloc(1,sizeof(struct snake)); + head->x = x; + head->y = y; + head->next = snake; + return head; +} +struct snake* remove_snake(struct snake* snake){ + + if(snake == NULL){ + return NULL; + } + if(snake->next == NULL){ + free(snake); + return NULL; + } + struct snake* prev = NULL; + + + for(struct snake* current = snake; current->next != NULL; current = current->next){ + prev = current; + } + + free(prev->next); + + prev->next = NULL; + + return snake; + +} + +void free_snake(struct snake* sn){ +} + +int is_snake(struct snake* snake,int x,int y){ + struct snake* this = snake; + while (this->next != NULL){ + + if(this->x == x && this->y == y){ + return 1; + } + this = this->next; + } + 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; +}