epr24pr3_ojanssen2/MazeParser.h

44 lines
1.2 KiB
C
Raw Normal View History

#include "std_lib_inc.h"
#ifndef MAZEPARSER_H
#define MAZEPARSER_H
2024-12-16 23:44:01 +01:00
/* Legende
* S - Spieler
* Z - Ziel
* . - Leerer Raum (begehbar)
* # - Wand
* A - Geist
* K - Schlüssel
* T - Tür
*/
2024-12-16 23:21:24 +01:00
namespace game
{
2024-12-16 23:44:01 +01:00
/// Erlaubte Zeichen in einem Labyrinth
/// Ist eine Konstante, darf also in global scope
static const vector<char> valid_maze_elements = {'Z', '.', '#', 'A', 'K', 'T'};
class Maze;
2024-12-16 23:21:24 +01:00
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<int> request_numbers_from_user(const int& amount_of_numbers);
2024-12-16 23:21:24 +01:00
2024-12-16 23:44:01 +01:00
/// 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);
2024-12-16 23:44:01 +01:00
2024-12-16 23:21:24 +01:00
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