// // Created by moonleay on 12/12/24. // #include "PositionVector.h" #ifndef PLAYER_H #define PLAYER_H namespace game { class Maze; // use instead of include to speed up the compiler :) /// Ein Spieler. /// Besitzt einen veränderbaren Positionsvektor class Player { /// Die Position des Spielers PositionVector pos; int keys_in_inventory; public: /// Ein Spieler. /// Besitzt einen veränderbaren Positionsvektor /// @param target_x Die Startposition des Spielers (X-Koordinate) /// @param target_y Die Startposition des Spielers (Y-Koordinate) Player(int target_x, int target_y); /// Ein Spieler /// @param pos Die Startposition des Spielers explicit Player(PositionVector pos); /// Kriege die Position des Spielers /// @return Die Position des Spielers PositionVector get_pos() const; /// Aktuallisiere die Position des Spielers ohne weitere Checks /// @param target Das ziel void update_position(PositionVector target); /// Bewege den Splieler um den Bewegungsvektor, insofern die Zielposition begehbar ist /// @param maze Das Maze /// @param move_vector Die gewollte Bewegung /// @return Die neue Position des Spielers Maze move(Maze& maze, PositionVector move_vector); /// Check, if a player has at least one key /// @return If the player as an available key bool has_key_available() const; }; } // maze #endif //PLAYER_H