#ifndef AGENT_H #define AGENT_H #include #include class Agent { public: Perception fCurrentPerception; PictureEnvironment* fEnvironment; sf::Color fColor; int fDotSize; int fMoveSize; int fXPos; int fYPos; Agent(); Agent(PictureEnvironment* iEnvironment, int iDotSize, int iMoveSize); virtual void loop(); virtual void move(); virtual void paint(); }; class RepaintAgent : public Agent { public: //list of possible movement vectors, to be used to perceive the environment std::vector> fMovements; std::vector fValidMovementIndexes; std::vector fCurrentMovement; RepaintAgent(PictureEnvironment* iEnvironment, int iDotSize, int iMoveSize); virtual void loop(); virtual void move(); virtual void paint(); }; class PullPaintAgent : public RepaintAgent { public: PullPaintAgent(PictureEnvironment* iEnvironment, int iDotSize, int iMoveSize); virtual void loop(); virtual void move(); }; #endif // AGENT_H