From a3165d07578df6c5af4fc674cfc3272a0abc34f9 Mon Sep 17 00:00:00 2001 From: przemek83 <4788832+przemek83@users.noreply.github.com> Date: Fri, 11 Oct 2024 07:52:53 +0200 Subject: [PATCH] Divide Game::moveEnemyTanks method. --- src/Game.cpp | 25 ++++++++++++++++--------- src/Game.h | 2 ++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Game.cpp b/src/Game.cpp index aef4e52..6c76e77 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -111,15 +111,8 @@ void Game::moveEnemyTanks() if (const auto now{std::chrono::system_clock::now()}; tank.canFire(now)) bullets_.emplace_back(tank.fire(now)); - const int randomDirection{distribution_(randomGenerator_)}; - - Direction direction{Direction::UP}; - if (((tank.getX() % Config::getInstance().getTileSize()) == 0) && - ((tank.getY() % Config::getInstance().getTileSize()) == 0) && - (randomDirection < 4)) - direction = static_cast(randomDirection); - else - direction = tank.getDirection(); + + Direction direction{getEnemyTankDirection(tank)}; movement(tank, direction); } } @@ -239,3 +232,17 @@ bool Game::canDrive(Point point, Direction direction) const [&map = map_](Point corner) { return map.canDrive(corner); }); } + +Direction Game::getEnemyTankDirection(Tank& tank) +{ + const int randomDirection{distribution_(randomGenerator_)}; + Direction direction{Direction::UP}; + if (((tank.getX() % Config::getInstance().getTileSize()) == 0) && + ((tank.getY() % Config::getInstance().getTileSize()) == 0) && + (randomDirection < 4)) + direction = static_cast(randomDirection); + else + direction = tank.getDirection(); + + return direction; +} diff --git a/src/Game.h b/src/Game.h index 91b82c5..03858f3 100644 --- a/src/Game.h +++ b/src/Game.h @@ -51,6 +51,8 @@ class Game bool canDrive(Point point, Direction direction) const; + Direction getEnemyTankDirection(Tank& tank); + Status status_; std::mt19937 randomGenerator_; bool playerDestroyed_{false};