Aktualizovat du4 /snake.c

This commit is contained in:
Tomáš Vlček 2026-04-15 20:34:40 +00:00
parent d969732a71
commit c8ac633661

View File

@ -3,19 +3,16 @@
struct snake* add_snake(struct snake* snake,int x,int y) struct snake* add_snake(struct snake* snake,int x,int y)
{ {
if (snake == NULL) //vytvor novu prazdnu instanciu a alokuj jej pamat
{ struct snake* newSnake = (struct snake*)malloc(sizeof(struct snake));
return NULL; //prida X,Y suradnice do polia do novej hlavicky
} newSnake->x = x;
//pomocna smernikova premenna newSnake->y = y;
struct snake* currentPtr = snake;
while (currentPtr != NULL) //nalinkuje ju na staru hlavicku
{ newSnake->next = snake;
//uloz dalsiu cast
struct snake* nextPtr = currentPtr->next; return newSnake;
free(currentPtr);
currentPtr = nextPtr;
}
} }
struct snake* remove_snake(struct snake* snake){ struct snake* remove_snake(struct snake* snake){
@ -24,18 +21,8 @@ struct snake* remove_snake(struct snake* snake){
void free_snake(struct snake* sn) void free_snake(struct snake* sn)
{ {
//pomocna smernikova premenna
} struct snake* currentPtr = sn;
int is_snake(struct snake* snake,int x,int y){
if (snake == NULL)
{
return 1;
}
//pomocna pointer premanna
struct snake* currentPtr = snake;
//preiteruje cez kazdu cast hada (ulozi sa kopia dalsiej casti, uvolni sa aktualna, a aktualna sa prepise s dalsiou)
while (currentPtr != NULL) while (currentPtr != NULL)
{ {
//uloz dalsiu cast //uloz dalsiu cast
@ -43,7 +30,22 @@ int is_snake(struct snake* snake,int x,int y){
free(currentPtr); free(currentPtr);
currentPtr = nextPtr; currentPtr = nextPtr;
} }
}
int is_snake(struct snake* snake,int x,int y){
//helper pointer/smernikova premena
struct snake currentPtr* = snake;
while (currentPtr != NULL)
{
if (currentPtr->x == x && currentPtr->y == y)
{
return 1;
}
//prejdi na dalsiu cast
currentPtr = currentPtr->next;
}
return 0; return 0;
} }