#include "Maze.h" #include "../Entities/Player.h" #include "../Util/GameState.h" #include "../Entities/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(); /// Starte das Spiel void run_game(); /// Kriege den aktuellen Status des Spiels /// @returns Den aktuellen Status GameState get_state() const; bool is_enemy_at_pos(const PositionVector& position) const ; }; } // game #endif //GAME_H