epr24pr3_ojanssen2/Maze.h

50 lines
1.2 KiB
C++

//
// Created by moonleay on 12/13/24.
//
#include "std_lib_inc.h"
#include "PositionVector.h"
#ifndef MAZE_H
#define MAZE_H
namespace game
{
class Maze
{ // class -> members private by default
/// Das Spielfeld
vector<vector<char>> field = {
{'#', '.', '.', '.', '.'},
{'#', '.', '#', '.', '.'},
{'.', 'Z', '#', '.', '.'},
{'.', '#', '#', '#', '.'},
{'.', '.', '.', '.', '.'}
// ^ Spieler startet hier (4,0)
};
/* Legende
* S - Spieler
* Z - Ziel
* . - Leerer Raum (begehbar)
* # - Wand
*/
public:
/// Das Spielfeld
Maze();
/// Kontrolliere, ob der Spieler am Ziel ist
/// @param pos Die Position des Spielers
/// @return Ob der Spieler am Ziel ist
bool is_player_at_goal(PositionVector pos) const;
/// Kontrolliere, ob eine bestimmte Position begehbar ist
/// @param pos Die Position, die überprüft werden soll
/// @return Ob die Position begehbar ist
bool is_pos_free(PositionVector pos) const;
/// Zeige das Spielfeld in der Konsole an
/// @param pos Die Position des Spielers
void render(PositionVector pos) const;
};
} // game
#endif //MAZE_H