#pragma once #include "Robot.h" #include /* Base robot implementation shared by all concrete robot types. */ class BaseRobot : public Robot { public: BaseRobot(std::string name, int startX, int startY); ~BaseRobot() override = default; void move(int direction, const World& world) override; int decideNextMove(const World& world) const override; void setPosition(int x, int y) override; int getScore() const override { return score_; } void addScore(int points) override { score_ += points; } int getX() const override { return x_; } int getY() const override { return y_; } std::string getName() const override { return name_; } int getHp() const override { return hp_;} bool isAlive() const override { return hp_ > 0; } void takeDamage( int damage ) override; protected: int x_; int y_; int score_; std::string name_; int hp_; static constexpr int MaxHp = 100; };