#include "../std_lib_inc.h" #ifndef MAZEPARSER_H #define MAZEPARSER_H /* Legende * S - Spieler * Z - Ziel * . - Leerer Raum (begehbar) * # - Wand * A - Animaltronic * K - Schlüssel * T - Tür * B - Bowie * C - Connellys */ namespace game { /// Erlaubte Zeichen in einem Labyrinth /// Ist eine Konstante, darf also in global scope static const vector valid_maze_elements = {'Z', '.', '#', 'A', 'K', 'T', 'B', 'C'}; static const vector valid_enemies = {'A', 'B', 'C'}; static constexpr int MAX_MAZE_SIZE = 20; class Maze; class MazeParser { private: /// Lese eine bestimmte Anzahl an Nummern aus der Konsole /// @param amount_of_numbers Wie viele Nummern eingelesen werden sollen /// @return Die eingelesenen Nummern static vector request_numbers_from_user(const int& amount_of_numbers); /// Kontrolliere, ob ein Zeichen im Labyrinth vorkommen darf /// @param target Das Zeichen, welches Kontrolliert werden soll /// @return Ob das gegebene Zeichen in einem Labyrinth vorkommen darf static bool validate_maze_element(const char& target); static bool is_valid_enemy(const char& target); public: /// Lese ein Labyrinth aus der Konsole /// @return Das Labyrinth /// @throws runtime_exception Falls die Eingabe nicht korrekt verlaufen ist. static Maze request_maze_from_user(); }; } // game #endif //MAZEPARSER_H