#include "Maze.h" #include "Player.h" #include "GameState.h" #include "Entity.h" #ifndef GAME_H #define GAME_H namespace game { /// Eine Instanz des Spiels class Game { private: /// Das Labyrinth Maze maze; /// Der Spieler Player player; /// Die Gegner des Spieles vector enemies; /// Der Status des Spiels GameState state; /// bool infomode_enabled; public: explicit Game(Maze& maze); /// Bearbeite die Eingabe des Spielers /// @param input Die Eingabe des Nutzers /// @return Der Bewegungsvektor, um den sich den Spieler bewegen möchte /// @throws UnkownAction Wenn die Eingabe des Spielers unbekannt ist void handle_user_input(const char& input); /// Kontrolliere, ob das Spiel beendet werden sollte bool should_end_game() const; /// Starte das Spiel void run_game(); /// Kriege den aktuellen Status des Spiels /// @returns Den aktuellen Status GameState get_state() const; /// Krontroliere ob ein Geist sich an einer Position befindet /// @param position Die Position /// @returns Ob sich dort ein Geist aufhält bool is_enemy_at_pos(const Vector2d& position) const ; }; } // game #endif //GAME_H