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
Began implementation of networking
[progcomp2012.git]
/
judge
/
manager
/
main.cpp
diff --git
a/judge/manager/main.cpp
b/judge/manager/main.cpp
index
ce4cd20
..
83b3c63
100644
(file)
--- a/
judge/manager/main.cpp
+++ b/
judge/manager/main.cpp
@@
-64,6
+64,7
@@
Piece::Colour SetupGame(int argc, char ** argv)
{
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;
+ bool server = false; bool client = false;
for (int ii=1; ii < argc; ++ii)
{
if (argv[ii][0] == '-')
@@
-184,6
+185,26
@@
Piece::Colour SetupGame(int argc, char ** argv)
system("less manual.txt");
exit(EXIT_SUCCESS);
}
+ else if (strcmp(argv[ii]+2, "server") == 0)
+ {
+ if (client == true)
+ {
+ fprintf(stderr, "ARGUMENT_ERROR - Can't be both a server and a client!\n");
+ exit(EXIT_FAILURE);
+ }
+ server = true;
+
+ }
+ else if (strcmp(argv[ii]+2, "client") == 0)
+ {
+ if (server == true)
+ {
+ fprintf(stderr, "ARGUMENT_ERROR - Can't be both a server and a client!\n");
+ exit(EXIT_FAILURE);
+ }
+ client = true;
+
+ }
else
{
fprintf(stderr, "ARGUMENT_ERROR - Unrecognised switch \"%s\"...\n", argv[ii]);
@@
-211,15
+232,34
@@
Piece::Colour SetupGame(int argc, char ** argv)
if (inputFile == NULL)
{
- if (red == NULL || blue == NULL) //Not enough arguments
+ if (server)
+ {
+ if (red != NULL && blue != NULL)
+ {
+ fprintf(stderr, "ARGUMENT_ERROR - When using the --server switch, only supply ONE (1) player.\n");
+ exit(EXIT_FAILURE);
+ }
+ }
+ else if (red == NULL || blue == NULL) //Not enough players
{
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, stallTime, allowIllegal,log, reveal,maxTurns, printBoard, timeoutTime);
+
+ if (client)
+ {
+ blue = red; red = NULL;
+ }
+
+ Game::theGame = new Game(red,blue, graphics, stallTime, allowIllegal,log, reveal,maxTurns, printBoard, timeoutTime, server, client);
}
else
{
+ if (server || client)
+ {
+ fprintf(stderr, "ARGUMENT_ERROR - The -f switch is incompatable with the --server or --client switches!\n");
+ exit(EXIT_FAILURE);
+ }
Game::theGame = new Game(inputFile, graphics, stallTime, allowIllegal,log, reveal,maxTurns, printBoard, timeoutTime);
}
UCC
git Repository :: git.ucc.asn.au