X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=progcomp%2Fjudge%2Fmanager%2Fai_controller.h;fp=progcomp%2Fjudge%2Fmanager%2Fai_controller.h;h=7d62591df520168880cf331836f897e668b77002;hb=88fc5a96c424e9a451b98f3b680bc1980345320d;hp=0000000000000000000000000000000000000000;hpb=e3b15cd5dea739f7523920d83bda592db95a7b93;p=progcomp2012.git diff --git a/progcomp/judge/manager/ai_controller.h b/progcomp/judge/manager/ai_controller.h new file mode 100644 index 0000000..7d62591 --- /dev/null +++ b/progcomp/judge/manager/ai_controller.h @@ -0,0 +1,32 @@ +#ifndef AI_CONTROLLER_H +#define AI_CONTROLLER_H + +#include "controller.h" +#include "program.h" + +/** + * Class to control an AI program playing Stratego + * Inherits mostly from Program + */ +class AI_Controller : public Controller, private Program +{ + public: + AI_Controller(const Piece::Colour & newColour, const char * executablePath, const double newTimeout = 2.0) : Controller(newColour, executablePath), Program(executablePath), timeout(newTimeout) {} + virtual ~AI_Controller() {} + + + + virtual MovementResult QuerySetup(const char * opponentName,std::string setup[]); + virtual MovementResult QueryMove(std::string & buffer); + + virtual void Message(const char * message) {Program::SendMessage(message);} + + virtual bool Valid() const {return Program::Running();} + + + private: + const double timeout; //Timeout in seconds for messages from the AI Program + +}; + +#endif //AI_CONTROLLER_H