// // Created by moonleay on 12/16/24. // #include "Maze.h" #ifndef MAZEPARSER_H #define MAZEPARSER_H /* Legende * S - Spieler * Z - Ziel * . - Leerer Raum (begehbar) * # - Wand * A - Geist * K - Schlüssel * T - Tür */ 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'}; 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(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 is_valid_maze_element(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