Added image output to manager, added plots to results pages
[progcomp2012.git] / judge / manager / stratego.h
index c8f4f9d..f439e80 100644 (file)
@@ -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() {}
 
@@ -106,7 +109,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
@@ -124,12 +127,12 @@ class Board
                
                static bool LegalResult(const MovementResult & result)
                {
-                       return (result == MovementResult::OK || result == MovementResult::DIES || result == MovementResult::KILLS || result == MovementResult::BOTH_DIE || result == MovementResult::VICTORY || result == MovementResult::DRAW || result == MovementResult::DRAW_DEFAULT || result == MovementResult::SURRENDER);
+                       return (result == MovementResult::OK || result == MovementResult::DIES || result == MovementResult::KILLS || result == MovementResult::BOTH_DIE || result == MovementResult::VICTORY_FLAG || result == MovementResult::VICTORY_ATTRITION || result == MovementResult::DRAW || result == MovementResult::DRAW_DEFAULT || result == MovementResult::SURRENDER);
                }
 
                static bool HaltResult(const MovementResult & result)
                {
-                       return (result == MovementResult::VICTORY || result == MovementResult::DRAW || result == MovementResult::DRAW_DEFAULT || result == MovementResult::SURRENDER || !LegalResult(result));
+                       return (result == MovementResult::VICTORY_FLAG || result == MovementResult::VICTORY_ATTRITION || result == MovementResult::DRAW || result == MovementResult::DRAW_DEFAULT || result == MovementResult::SURRENDER || !LegalResult(result));
                }               
 
                MovementResult MovePiece(int x, int y, const Direction & direction, int multiplier=1,const Piece::Colour & colour=Piece::NONE); //Move piece from position in direction

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