epr24pr3_ojanssen2/MazeParser.h

47 lines
1.3 KiB
C
Raw Normal View History

//
// Created by moonleay on 12/16/24.
//
#include "Maze.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'};
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(int amount_of_numbers);
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 is_valid_maze_element(char target);
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