write content of snakeSetHeadPos() in snakeUpdateHeadPos() snakeSetHeadPos() set head-position via transfer parameters
47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include "config.h"
|
|
|
|
typedef enum snakeDirection_t
|
|
{
|
|
DOWN = 0,
|
|
UP,
|
|
LEFT,
|
|
RIGHT
|
|
} snakeDirection_t; // Bewegungsrichtung
|
|
|
|
typedef struct snake_t
|
|
{
|
|
int length; // aktuelle Länge der Schlange
|
|
int headX;
|
|
int headY; // aktuelle Position der Schlange
|
|
snakeDirection_t direction;
|
|
int tail[MAX_MAP_SIZE*MAX_MAP_SIZE][2];
|
|
bool isAlive; // lebt die Schlange noch oder ist sie mit sich selbst kollidiert?
|
|
} snake_t;
|
|
|
|
|
|
void snakeInit();
|
|
// Snake mit bestimmter Startlänge an Startposition erstellen
|
|
|
|
void snakeGrow();
|
|
// Snake wird um 1 Glied länger (nach Fressen)
|
|
|
|
void snakeMove();
|
|
// bewegt die Schlange einen Schritt in die aktuelle Richtung
|
|
// ruft lokale Variable dir von snakeSetDir auf
|
|
|
|
void snakeSetDir(snakeDirection_t dir); // Richtung als Übergabeparameter
|
|
// definiert aktuelle Bewegungsrichtung der Schlange
|
|
|
|
bool snakeIsAlive();
|
|
// Überprüfen, ob Schlange noch lebt
|
|
// Prüft Kollision mit sich selbst
|
|
|
|
void snakeSetHeadPos(int xPos, int yPos); // optional
|
|
// für handlePortals
|
|
// generiert zufällige Zielposition(Übergabeparameter), wohin sich die Schlange nach Betreten eines Portals bewegt
|
|
|
|
void snakeUpdateHeadPos();
|
|
// berechnet neue Position des Kopfs anhand der aktuellen Bewegungsrichtung
|