Files
deepMiner/include/Robot.h
T
fegger 42876c1a93 Add HP and SmartBot; refactor bots and World
Introduce health (hp) and damage handling to Robot/BaseRobot
interfaces. Add SmartBot implementation. Refactor bot mining and
movement to use new World APIs (mine, mineAllPositive,
sortPositiveValues). Simplify RandomBot, DigDeepBot, and SortBot
logic, rename/overhaul World rearrange/display, and fix several
indexing/logic bugs and minor cleanups.
2026-04-26 20:41:36 +02:00

35 lines
963 B
C++

#pragma once
#include <string>
#include <system_error>
#include <type_traits>
class World;
/* Virtual interface implemented by all robot types. */
class Robot {
public:
virtual ~Robot () = default;
Robot ( const Robot & ) = default;
Robot &operator= ( const Robot & ) = default;
Robot ( Robot && ) = default;
Robot &operator= ( Robot && ) = default;
virtual void move ( int direction, const World &world ) = 0;
virtual int mine ( World &world ) = 0;
virtual int decideNextMove ( const World &world ) const = 0;
virtual void setPosition ( int x, int y ) = 0;
virtual int getScore () const = 0;
virtual void addScore ( int points ) = 0;
virtual int getX () const = 0;
virtual int getY () const = 0;
virtual std::string getName () const = 0;
virtual int getHp() const = 0;
virtual bool isAlive() const = 0;
virtual void takeDamage( int damage ) = 0;
protected:
Robot () = default;
};