Update all header files

This commit is contained in:
Julia09055x 2023-11-09 15:13:10 +01:00
parent 691ca4782b
commit d92175317d
8 changed files with 52 additions and 26 deletions

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}