X-Git-Url: https://git.ucc.asn.au/?p=progcomp2012.git;a=blobdiff_plain;f=judge%2Fmanager%2Fstratego.h;h=a2cd8bd4d8f2a1e4a59c9aa1131f288a0f11613e;hp=d2e667ff072897a1252c22133b141a7f8f5f5add;hb=7c42b4b7e5ed6e423f0c023ad6e8a2aa47a4f081;hpb=e1153eebe8cfd0c881cef2ff8fca63f130e736b3 diff --git a/judge/manager/stratego.h b/judge/manager/stratego.h index d2e667f..a2cd8bd 100644 --- a/judge/manager/stratego.h +++ b/judge/manager/stratego.h @@ -28,6 +28,9 @@ class Piece typedef enum {RED=0, BLUE=1, NONE=2, BOTH=3} Colour; //Used for the allegiance of the pieces - terrain counts as NONE. + static Colour OppositeColour(const Colour & compare); + + Piece(const Type & newType, const Colour & newColour) : type(newType), colour(newColour), beenRevealed(false) {} virtual ~Piece() {} @@ -73,10 +76,14 @@ class Piece switch (colour) { case RED: - return Graphics::Colour(1,0,0); + return Graphics::Colour(1.0,0,0); break; case BLUE: - return Graphics::Colour(0,0,1); + #ifdef __MACOSX__ //Horrible HACK to make pieces green on Mac OSX, because Blue doesn't exist on this operating system. + return Graphics::Colour(0,1.0,0); + #else + return Graphics::Colour(0,0,1.0); + #endif //__MACOSX__ break; case NONE: return Graphics::Colour(0.5,0.5,0.5); @@ -106,7 +113,7 @@ class Board virtual ~Board(); //Destructor void Print(FILE * stream, const Piece::Colour & reveal=Piece::BOTH); //Print board - void PrintPretty(FILE * stream, const Piece::Colour & reveal=Piece::BOTH); //Print board using colour + void PrintPretty(FILE * stream, const Piece::Colour & reveal=Piece::BOTH, bool showRevealed=true); //Print board using colour #ifdef BUILD_GRAPHICS void Draw(const Piece::Colour & reveal=Piece::BOTH, bool showRevealed = true); //Draw board