From 3779d1724f12baa7d5e7c408a708cb26a0accfd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Mon, 18 Oct 2021 13:27:30 +0200 Subject: [PATCH] Ex 14: add isWall(). --- lib/Board.cpp | 9 ++++++--- lib/include/Board.hpp | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/Board.cpp b/lib/Board.cpp index 9a169ba..db7c081 100644 --- a/lib/Board.cpp +++ b/lib/Board.cpp @@ -59,13 +59,16 @@ static Cell cellAtPosition(GridPosition point) { return Cell(board[point.y][point.x]); } +bool isWall(GridPosition point) { + return cellAtPosition(point) == Cell::wall; +} + bool isWalkableForPacMan(GridPosition point) { - return cellAtPosition(point) != Cell::wall && cellAtPosition(point) != Cell::pen; + return !isWall(point) && !isInPen(point); } bool isWalkableForGhost(GridPosition target_position, GridPosition current_position, bool isEyes) { - const Cell cell = cellAtPosition(target_position); - if (cell == Cell::wall) + if (isWall(target_position)) return false; return isEyes || isInPen(current_position) || !isInPen(target_position); } diff --git a/lib/include/Board.hpp b/lib/include/Board.hpp index ae24e7b..d0ae875 100644 --- a/lib/include/Board.hpp +++ b/lib/include/Board.hpp @@ -8,6 +8,7 @@ namespace pacman { +bool isWall(GridPosition point); bool isWalkableForPacMan(GridPosition point); bool isWalkableForGhost(GridPosition target_position, GridPosition current_position, bool isEyes); bool isInPen(GridPosition point);