git.ucc.asn.au
/
progcomp2012.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added check for rubbish move multipliers
[progcomp2012.git]
/
judge
/
manager
/
main.cpp
diff --git
a/judge/manager/main.cpp
b/judge/manager/main.cpp
index
9d2cad1
..
e65ef0d
100644
(file)
--- a/
judge/manager/main.cpp
+++ b/
judge/manager/main.cpp
@@
-62,8
+62,9
@@
int main(int argc, char ** argv)
Piece::Colour SetupGame(int argc, char ** argv)
{
Piece::Colour SetupGame(int argc, char ** argv)
{
- char * red = NULL; char * blue = NULL; double timeout = 0.00001; bool graphics = false; bool allowIllegal = false; FILE * log = NULL;
- Piece::Colour reveal = Piece::BOTH; char * inputFile = NULL; int maxTurns = 5000; bool printBoard = false;
+ char * red = NULL; char * blue = NULL; double stallTime = 0.0; bool graphics = false; bool allowIllegal = false; FILE * log = NULL;
+ Piece::Colour reveal = Piece::BOTH; char * inputFile = NULL; int maxTurns = 5000; bool printBoard = false; double timeoutTime = 2.0;
+
for (int ii=1; ii < argc; ++ii)
{
if (argv[ii][0] == '-')
for (int ii=1; ii < argc; ++ii)
{
if (argv[ii][0] == '-')
@@
-73,15
+74,29
@@
Piece::Colour SetupGame(int argc, char ** argv)
case 't':
if (argc - ii <= 1)
{
case 't':
if (argc - ii <= 1)
{
- fprintf(stderr, "ARGUMENT_ERROR - Expected
timeout
value after -t switch!\n");
+ fprintf(stderr, "ARGUMENT_ERROR - Expected
stall time
value after -t switch!\n");
exit(EXIT_FAILURE);
}
if (strcmp(argv[ii+1], "inf") == 0)
exit(EXIT_FAILURE);
}
if (strcmp(argv[ii+1], "inf") == 0)
-
timeout
= -1;
+
stallTime
= -1;
else
else
-
timeout
= atof(argv[ii+1]);
+
stallTime
= atof(argv[ii+1]);
++ii;
break;
++ii;
break;
+
+ case 'T':
+ if (argc - ii <= 1)
+ {
+ fprintf(stderr, "ARGUMENT_ERROR - Expected timeout value after -T switch!\n");
+ exit(EXIT_FAILURE);
+ }
+ if (strcmp(argv[ii+1], "inf") == 0)
+ timeoutTime = -1;
+ else
+ timeoutTime = atof(argv[ii+1]);
+ ++ii;
+ break;
+
case 'g':
#ifdef BUILD_GRAPHICS
graphics = !graphics;
case 'g':
#ifdef BUILD_GRAPHICS
graphics = !graphics;
@@
-192,20
+207,22
@@
Piece::Colour SetupGame(int argc, char ** argv)
}
}
}
}
-
+ if (graphics && stallTime == 0.0)
+ stallTime = 0.00001; //Hack so that SDL events (ie SDL_QUIT) will have time to be captured when graphics are enabled
if (inputFile == NULL)
{
if (inputFile == NULL)
{
- if (red == NULL || blue == NULL) //Not enough
argument
s
+ if (red == NULL || blue == NULL) //Not enough
player
s
{
fprintf(stderr, "ARGUMENT_ERROR - Did not recieve enough players (did you mean to use the -f switch?)\n");
exit(EXIT_FAILURE);
}
{
fprintf(stderr, "ARGUMENT_ERROR - Did not recieve enough players (did you mean to use the -f switch?)\n");
exit(EXIT_FAILURE);
}
- Game::theGame = new Game(red,blue, graphics, timeout, allowIllegal,log, reveal,maxTurns, printBoard);
+
+ Game::theGame = new Game(red,blue, graphics, stallTime, allowIllegal,log, reveal,maxTurns, printBoard, timeoutTime);
}
else
{
}
else
{
- Game::theGame = new Game(inputFile, graphics,
timeout, allowIllegal,log, reveal,maxTurns, printBoard
);
+ Game::theGame = new Game(inputFile, graphics,
stallTime, allowIllegal,log, reveal,maxTurns, printBoard, timeoutTime
);
}
if (Game::theGame == NULL)
}
if (Game::theGame == NULL)
@@
-247,7
+264,8
@@
void PrintResults(const MovementResult & result, string & buffer)
{
switch (result.type)
{
{
switch (result.type)
{
- case MovementResult::VICTORY:
+ case MovementResult::VICTORY_FLAG:
+ case MovementResult::VICTORY_ATTRITION: //It does not matter how you win, it just matters that you won!
s << "VICTORY ";
break;
case MovementResult::SURRENDER:
s << "VICTORY ";
break;
case MovementResult::SURRENDER:
UCC
git Repository :: git.ucc.asn.au