From b49868a8ef4ec6eb667cfbfc82b513828aa41572 Mon Sep 17 00:00:00 2001 From: moonleay Date: Sun, 19 Jan 2025 04:32:35 +0100 Subject: [PATCH] fix: fixed Information Mode, fixed Bowie, fixed docs --- src/Entities/Entity.cpp | 8 ++++++++ src/Environment/Maze.cpp | 10 +++++----- src/Environment/Maze.h | 5 +++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp index 4e2662a..f9cb67a 100644 --- a/src/Entities/Entity.cpp +++ b/src/Entities/Entity.cpp @@ -35,7 +35,15 @@ namespace game { if (maze.is_pos_free(target_position, false)) this->pos = target_position; else + { 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) { diff --git a/src/Environment/Maze.cpp b/src/Environment/Maze.cpp index 373bab8..eac97e9 100644 --- a/src/Environment/Maze.cpp +++ b/src/Environment/Maze.cpp @@ -40,7 +40,7 @@ namespace game return true; } - void Maze::render(const Player& player, const vector entities, const bool& infomode_enabled) + void Maze::render(const Player& player, const vector& entities, const bool& infomode_enabled) { for (int y = 0; y < field.size(); ++y) { @@ -62,9 +62,9 @@ namespace game } if (y == 0 && infomode_enabled) { - int steps = this->calculate_steps_until_win(player.get_pos(), 5); - if (steps > 999) - cout << steps << "Schritte bis zum Ziel"; + const int steps = this->calculate_steps_until_win(player.get_pos(), 5); + if (steps < 999) + cout << steps << " Schritte bis zum Ziel"; } cout << "\n"; } @@ -92,7 +92,7 @@ namespace game 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)) return 999; if (this->get_field(position) == 'Z') diff --git a/src/Environment/Maze.h b/src/Environment/Maze.h index 15373b7..81e551d 100644 --- a/src/Environment/Maze.h +++ b/src/Environment/Maze.h @@ -43,8 +43,9 @@ namespace game /// Zeige das Spielfeld in der Konsole an /// @param player Der Spieler + /// @param entities Die Entities auf dem Spielfeld /// @param infomode_enabled Ob der Infomode aktiv ist - void render(const Player& player, vector entities, const bool& infomode_enabled); + void render(const Player& player, const vector& entities, const bool& infomode_enabled); /// Kriege den Wert einer Position /// @param pos Die gewollte Position @@ -69,7 +70,7 @@ namespace game /// @param position Die Startposition /// @param steps Wie viele Schritte maximal gegangen werden sollten /// @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 vector get_entities();