Revamped manager program and added manual page
[progcomp2012.git] / manager / controller.h
1 #ifndef CONTROLLER_H
2 #define CONTROLLER_H
3
4 #include "stratego.h"
5 #include <string>
6
7 /**
8  * Class to control a player for Stratego
9  * Abstract base class
10  */
11
12 class Controller
13 {
14         public:
15                 Controller(const Piece::Colour & newColour) : colour(newColour) {}
16                 virtual ~Controller() {}
17
18                 MovementResult Setup(const char * opponentName);
19
20                 MovementResult MakeMove(std::string & buffer);
21
22
23
24                 void Message(std::string & buffer) {Message(buffer.c_str());}
25                 virtual void Message(const char * string) = 0;
26
27                 virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]) = 0;
28                 virtual MovementResult QueryMove(std::string & buffer) = 0;
29
30                 const Piece::Colour colour; 
31
32
33 };
34
35
36
37
38
39 #endif //CONTROLLER_H
40
41

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