This commit is contained in:
2024-08-02 16:37:41 +03:00
parent 26d1919258
commit cf809176b6
9 changed files with 266 additions and 138 deletions

44
snake/snake.c Normal file
View File

@@ -0,0 +1,44 @@
#include <stdio.h>
#include <stdlib.h>
#include "snake.h"
extern char board[BRD_SIZE_Y][BRD_SIZE_X];
void addSnakePart(snakePart* head) {
snakePart* tail = head;
while (tail->next != NULL)
tail = tail->next;
snakePart* newTail = (snakePart*) malloc(sizeof(snakePart));
newTail->visChar = '#';
newTail->dir = tail->dir;
switch (newTail->dir) {
case 'w':
newTail->x = tail->x;
newTail->y = tail->y + 1;
break;
case 's':
newTail->x = tail->x - 1;
newTail->y = tail->y;
break;
case 'a':
newTail->x = tail->x - 1;
newTail->y = tail->y;
break;
case 'd':
newTail->x = tail->x;
newTail->y = tail->y - 1;
break;
default:
printf("Invalid direction in func addSnakePart\n");
exit(1);
}
newTail->next = NULL;
tail->next = newTail;
board[newTail->y][newTail->x] = newTail->visChar;
}

17
snake/snake.h Normal file
View File

@@ -0,0 +1,17 @@
#ifndef SNAKE_H_
#define SNAKE_H_
#include "../globals.h"
typedef struct snakeNode {
int x;
int y;
char visChar;
char dir;
struct snakeNode* next;
} snakePart;
void addSnakePart(snakePart* head);
#endif // SNAKE_H_