Revamped manager program and added manual page
[progcomp2012.git] / manager / controller.h
index 1fac88d..c7fe3d6 100644 (file)
@@ -2,28 +2,40 @@
 #define CONTROLLER_H
 
 #include "stratego.h"
-#include "program.h"
+#include <string>
 
 /**
- * Class to control an AI program for a game of Stratego
- * Inherits most features from the Program class
+ * Class to control a player for Stratego
+ * Abstract base class
  */
 
-class Controller : public Program
+class Controller
 {
        public:
-               Controller(const Piece::Colour & newColour, const char * executablePath) : Program(executablePath), colour(newColour) {}
+               Controller(const Piece::Colour & newColour) : colour(newColour) {}
                virtual ~Controller() {}
 
-               MovementResult Setup(const char * opponentName); //Requests the AI program for the initial positioning of its pieces.
+               MovementResult Setup(const char * opponentName);
 
-               MovementResult MakeMove(std::string & buffer); //Queries the AI program for a response to the state of Board::theBoard
+               MovementResult MakeMove(std::string & buffer);
 
-               const Piece::Colour colour; //Colour identifying the side of the AI program.
+
+
+               void Message(std::string & buffer) {Message(buffer.c_str());}
+               virtual void Message(const char * string) = 0;
+
+               virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]) = 0;
+               virtual MovementResult QueryMove(std::string & buffer) = 0;
+
+               const Piece::Colour colour; 
 
 
 };
 
+
+
+
+
 #endif //CONTROLLER_H
 
 

UCC git Repository :: git.ucc.asn.au