fix: fixed Information Mode, fixed Bowie, fixed docs

This commit is contained in:
moonleay 2025-01-19 04:32:35 +01:00
parent c856139997
commit b49868a8ef
Signed by: moonleay
GPG key ID: 82667543CCD715FB
3 changed files with 16 additions and 7 deletions

View file

@ -35,7 +35,15 @@ namespace game {
if (maze.is_pos_free(target_position, false)) if (maze.is_pos_free(target_position, false))
this->pos = target_position; this->pos = target_position;
else else
{
this->move_left = !this->move_left; this->move_left = !this->move_left;
if (this->move_left)
target_position.change_x(-1);
else
target_position.change_x(1);
if (maze.is_pos_free(target_position, false))
this->pos = target_position;
}
} }
bool Entity::connelly_move_up(const Maze& maze) { bool Entity::connelly_move_up(const Maze& maze) {

View file

@ -40,7 +40,7 @@ namespace game
return true; return true;
} }
void Maze::render(const Player& player, const vector<Entity> entities, const bool& infomode_enabled) void Maze::render(const Player& player, const vector<Entity>& entities, const bool& infomode_enabled)
{ {
for (int y = 0; y < field.size(); ++y) for (int y = 0; y < field.size(); ++y)
{ {
@ -62,9 +62,9 @@ namespace game
} }
if (y == 0 && infomode_enabled) if (y == 0 && infomode_enabled)
{ {
int steps = this->calculate_steps_until_win(player.get_pos(), 5); const int steps = this->calculate_steps_until_win(player.get_pos(), 5);
if (steps > 999) if (steps < 999)
cout << steps << "Schritte bis zum Ziel"; cout << steps << " Schritte bis zum Ziel";
} }
cout << "\n"; cout << "\n";
} }
@ -92,7 +92,7 @@ namespace game
return {x_diff, y_diff}; return {x_diff, y_diff};
} }
int Maze::calculate_steps_until_win(const Vector2d& position, const int& steps) { int Maze::calculate_steps_until_win(Vector2d position, const int& steps) {
if (!this->is_pos_free(position, false)) if (!this->is_pos_free(position, false))
return 999; return 999;
if (this->get_field(position) == 'Z') if (this->get_field(position) == 'Z')

View file

@ -43,8 +43,9 @@ namespace game
/// Zeige das Spielfeld in der Konsole an /// Zeige das Spielfeld in der Konsole an
/// @param player Der Spieler /// @param player Der Spieler
/// @param entities Die Entities auf dem Spielfeld
/// @param infomode_enabled Ob der Infomode aktiv ist /// @param infomode_enabled Ob der Infomode aktiv ist
void render(const Player& player, vector<Entity> entities, const bool& infomode_enabled); void render(const Player& player, const vector<Entity>& entities, const bool& infomode_enabled);
/// Kriege den Wert einer Position /// Kriege den Wert einer Position
/// @param pos Die gewollte Position /// @param pos Die gewollte Position
@ -69,7 +70,7 @@ namespace game
/// @param position Die Startposition /// @param position Die Startposition
/// @param steps Wie viele Schritte maximal gegangen werden sollten /// @param steps Wie viele Schritte maximal gegangen werden sollten
/// @returns Wie viele Schritte benötigt werden /// @returns Wie viele Schritte benötigt werden
int calculate_steps_until_win(const Vector2d& position, const int& steps); int calculate_steps_until_win(Vector2d position, const int& steps);
/// Kriege alle eingelesenen Entities /// Kriege alle eingelesenen Entities
vector<Entity> get_entities(); vector<Entity> get_entities();