Update all header files
This commit is contained in:
parent
691ca4782b
commit
d92175317d
@ -2,12 +2,17 @@
|
||||
|
||||
// global configuration macros
|
||||
#define MAX_MAP_SIZE 10
|
||||
#define MAX_PORTALS 5 // Maximalanzahl an Portale
|
||||
|
||||
// struct for storing game configuration
|
||||
typedef struct config_t
|
||||
{
|
||||
const int windowSize; // feste Größe des Spielfensters
|
||||
int mapWidth; // =10 //Kartenbreite
|
||||
int mapHeight; // =10 //Kartenhöhe
|
||||
//Breite und Höhe sind gleich -> Spielfeld ist quadratisch
|
||||
int blockSizePx; // Pixelgröße von einem Block
|
||||
//wird über windowSize/mapHeight berechnet
|
||||
int cycleDurationMs; // ms between each game loop iterartion (game speed)
|
||||
int difficulty; // 0-3 //Schwierigkeitsgrad
|
||||
int snakeDefaultLength; // = 2 //Länge der Schlange
|
||||
@ -16,3 +21,4 @@ typedef struct config_t
|
||||
|
||||
// global config struct defined in config.c
|
||||
extern config_t config;
|
||||
|
||||
|
@ -1,5 +1,9 @@
|
||||
void placeFood(int cnt);
|
||||
// platziert zufällig (mit bestimmtem Algorithmus) Fressen auf dem Spielfeld
|
||||
#include <stdbool.h>
|
||||
|
||||
void ckeckEaten();
|
||||
// Überprüft, ob Snake gefressen hat
|
||||
void placeFood();
|
||||
// platziert zufällig (mit bestimmtem Algorithmus) Fressen auf dem Spielfeld
|
||||
// darf nicht auf der Schlange oder auf Wänden sein
|
||||
|
||||
bool ckeckEaten();
|
||||
// Überprüft, ob Snake gefressen hat -> true wenn gefressen
|
||||
// Vergleich mit gameData_t foodX, foodY
|
@ -10,11 +10,20 @@ typedef enum gameState_t
|
||||
RUNNING
|
||||
} gameState_t;
|
||||
|
||||
typedef struct portal_t
|
||||
{
|
||||
int posX, posY;
|
||||
int targetX, targetY;
|
||||
|
||||
char * color;
|
||||
} portal_t;
|
||||
|
||||
typedef struct gameData_t
|
||||
{
|
||||
snake_t snake;
|
||||
int mapCollisions[MAX_MAP_SIZE][MAX_MAP_SIZE]; // Position der Wände
|
||||
int mapPortals[MAX_MAP_SIZE][MAX_MAP_SIZE]; // Position der Portale
|
||||
portal_t mapPortals[MAX_PORTALS];
|
||||
int mapPortalCount; // Anzahl der Portale
|
||||
|
||||
int foodX, foodY; // Positon des Futters (es gibt immer nur 1 Futter)
|
||||
int lifesRemaining; // implementieren wir nicht!!
|
||||
@ -27,20 +36,26 @@ typedef struct gameData_t
|
||||
extern gameData_t game;
|
||||
|
||||
void gameInit();
|
||||
// berechnet BlockSizePx: windowSize/mapWidth
|
||||
// ruft snakeInit auf
|
||||
// ruft place Food auf
|
||||
// ruft placeFood auf
|
||||
// platziert Wände
|
||||
|
||||
void handleCollision();
|
||||
bool checkIsCollided();
|
||||
// Überprüft, ob Snake mit Gegenstand/Wand kollidiert ist
|
||||
// if true -> gibt 1 an runGameCycle zurück
|
||||
|
||||
|
||||
void handlePortals(); // optional
|
||||
// Prüft, ob Snake sich auf einem Portal befindet
|
||||
//if true: snakeSetHeadPos auf
|
||||
|
||||
void runGameCycle();
|
||||
// macht immer: handleKeyboardEvents();
|
||||
// optional: ruft checkCollision() auf
|
||||
// ruft placeFood() auf
|
||||
// ruft checkEaten() auf
|
||||
// if checkEaten then snakeGrow()
|
||||
// if TickDue: Snakemove(), TickTimerReset
|
||||
// optional: ruft checkCollision auf
|
||||
// ruft place food auf
|
||||
// ruft checkEaten auf
|
||||
// if checkEaten then snakeGrow
|
||||
// ruft snakeMove auf
|
||||
// ruft snakeMove() auf
|
||||
//ruft am Ende vom gameCycle renderGame() auf
|
||||
|
@ -1,14 +1,13 @@
|
||||
void showStartScreen();
|
||||
//zum Starten Enter drücken
|
||||
//optional: "E" eingeen für Settings
|
||||
//optional: "E" eingeben für Settings
|
||||
|
||||
void showLeaderboard();
|
||||
//zeigt die besten Spieldurchläufe inkl. Punktestand an
|
||||
|
||||
void menuNavigate();
|
||||
//über Tastaturbefehle im Menü navigieren
|
||||
|
||||
void showSettings(); //optional
|
||||
//Menü zum Auswählen über Tastaturbefehle
|
||||
//startet Settungs-Menü
|
||||
|
||||
void menuHandleInput();
|
||||
void menuHandleInput(int event); //als Übergabeparameter: int(?) event -> welcher Datentyp hängt von SDL ab
|
||||
//switch case für welcher Modus
|
||||
//switch case für welche Taste gedrückt wurde
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include "game.h"
|
||||
#include "snake.h"
|
||||
void renderGame(gameData_t game, snake_t snake);
|
||||
void renderGame();
|
||||
//erstellt aus Spielfeldstruktur die graphische Anzeige mit SDL-Framework
|
@ -1,6 +1,7 @@
|
||||
|
||||
#pragma once
|
||||
#include <stdbool.h>
|
||||
#include "config.h"
|
||||
|
||||
typedef enum snakeDirection_t
|
||||
{
|
||||
@ -16,19 +17,18 @@ typedef struct snake_t
|
||||
int headX;
|
||||
int headY; // aktuelle Position der Schlange
|
||||
snakeDirection_t direction;
|
||||
int tail[512][2];
|
||||
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
|
||||
// Speicherbereich reservieren
|
||||
|
||||
void snakeGrow();
|
||||
// Snake wird um 1 Glied länger (nach Fressen)
|
||||
|
||||
void snakeMove();
|
||||
// bewegt die Schlang einen Schritt in die aktuelle Richtung
|
||||
// bewegt die Schlange einen Schritt in die aktuelle Richtung
|
||||
// ruft lokale Variable dir von snakeSetDir auf
|
||||
|
||||
void snakeSetDir(snakeDirection_t dir); // Richtung als Übergabeparameter
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "food.h"
|
||||
#include <stdbool.h>
|
||||
|
||||
// platziert zufällig (mit bestimmtem Algorithmus) Fressen auf dem Spielfeld
|
||||
void placeFood(int count)
|
||||
@ -7,7 +8,7 @@ void placeFood(int count)
|
||||
}
|
||||
|
||||
// Überprüft, ob Snake gefressen hat
|
||||
void ckeckEaten()
|
||||
bool ckeckEaten()
|
||||
{
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5,7 +5,9 @@ extern "C" {
|
||||
}
|
||||
|
||||
//initialize SDL window
|
||||
//ruft gameInit auf
|
||||
//ruft showStartScreen
|
||||
//initialize game
|
||||
//main loop: processInputEvents, runGameCycle
|
||||
//uninitialize SDL
|
||||
|
||||
|
||||
@ -32,6 +34,5 @@ int main(int argc, char *argv[])
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
|
||||
placeFood(3);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user