X-Git-Url: https://git.ucc.asn.au/?p=progcomp2012.git;a=blobdiff_plain;f=manager%2Fgame.h;fp=manager%2Fgame.h;h=f6d7b6bc92552903ad4d3374d60666c9642e4e91;hp=9a02044e1dbc8f5ee383600ee5f96c006e7443cb;hb=b563784f7e8b559fc100e174331c99fc6a1beda8;hpb=4a3c0478160e7e9b637a12e7cf22f8da61b66ad2 diff --git a/manager/game.h b/manager/game.h index 9a02044..f6d7b6b 100644 --- a/manager/game.h +++ b/manager/game.h @@ -13,7 +13,8 @@ class Game { public: - Game(const char * redPath, const char * bluePath, const bool enableGraphics, double newStallTime = 1.0, const bool allowIllegal=false, FILE * newLog = NULL, const Piece::Colour & newRevealed = Piece::BOTH); + Game(const char * redPath, const char * bluePath, const bool enableGraphics, double newStallTime = 1.0, const bool allowIllegal=false, FILE * newLog = NULL, const Piece::Colour & newRevealed = Piece::BOTH, int maxTurns = 5000, const bool printBoard = false); + Game(const char * fromFile, const bool enableGraphics, double newStallTime = 1.0, const bool allowIllegal=false, FILE * newLog = NULL, const Piece::Colour & newRevealed = Piece::BOTH, int maxTurns = 5000, const bool printBoard = false); virtual ~Game(); @@ -32,10 +33,12 @@ class Game int TurnCount() const {return turnCount;} static Game * theGame; - private: + public: int logMessage(const char * format, ...); + FILE * GetLogFile() const {return log;} Controller * red; Controller * blue; + private: Piece::Colour turn; public: @@ -48,10 +51,36 @@ class Game private: FILE * log; + Piece::Colour reveal; int turnCount; + + static bool gameCreated; + + FILE * input; + + int maxTurns; + const bool printBoard; }; +class FileController : public Controller +{ + public: + FileController(const Piece::Colour & newColour, FILE * newFile) : Controller(newColour, "file"), file(newFile) {} + virtual ~FileController() {} + + virtual void Message(const char * string) {} //Don't send messages + virtual MovementResult QuerySetup(const char * opponentName, std::string setup[]); + virtual MovementResult QueryMove(std::string & buffer); + virtual bool Valid() const {return file != NULL;} + + private: + FILE * file; + + +}; + + #endif //MAIN_H