1 #ifndef AI_CONTROLLER_H
2 #define AI_CONTROLLER_H
4 #include "controller.h"
8 * Class to control an AI program playing Stratego
9 * Inherits mostly from Program
11 class AI_Controller : public Controller, private Program
14 AI_Controller(const Piece::Colour & newColour, const char * executablePath, const double newTimeout = 60.0) : Controller(newColour, executablePath), Program(executablePath), timeout(newTimeout) {}
15 virtual ~AI_Controller() {}
19 virtual MovementResult QuerySetup(const char * opponentName,std::string setup[]);
20 virtual MovementResult QueryMove(std::string & buffer);
22 virtual void Message(const char * message)
24 //fprintf(stderr, "Sending message \"%s\" to AI program...\n", message);
25 Program::SendMessage(message);
27 virtual void Pause() {Program::Pause();} //Hack wrapper
28 virtual void Continue() {Program::Continue();} //Hack wrapper
30 virtual bool Valid() const {return Program::Running();}
34 const double timeout; //Timeout in seconds for messages from the AI Program
38 #endif //AI_CONTROLLER_H