@@ -15,6 +15,9 @@ public class Game {
Game() {} /**< An empty constructor */
Game() {} /**< An empty constructor */
int round () { return round; }
int nextRound() { return ++round; }
/**
/**
* @name Accessor/Mutator interface
* @name Accessor/Mutator interface
* @note
* @note
@@ -34,20 +37,69 @@ public class Game {
/**
/**
* Main game loop
* Main game loop
*/
*/
static boolean getArguments (String[] args) {
boolean ret = true;
for (int i =0 ; i<args.length ; ++i) {
switch (args[i]) {
case "-b":
case "--board":
if (i+1 < args.length)
Session.boardSize = Integer.parseInt(args[++i]);
break;
case "-w":
case "--walls":
if (i+1 < args.length)
Session.wallSize = Integer.parseInt(args[++i]);
break;
case "-s":
case "--suplies":
if (i+1 < args.length)
Session.supplySize = Integer.parseInt(args[++i]);
break;
default:
ret = false;
case "-h":
case "--help":
System.out.println("Labyrinth Game");
System.out.println("");
System.out.println("Usage:");
System.out.println("labyrinth [-b|--board <Num>] [-w|--walls <Num>] [-s|--supplies <Num>]");
System.out.println("or");
System.out.println("labyrinth -h|--help");
System.out.println("");
System.out.println("\t-b | --board: Sets the size of board's edge.");
System.out.println("\t-w | --walls: Sets the number of walls on the board.");
System.out.println("\t-s | --supplies: Sets the number of supplies on the board.");
System.out.println("\t-h | --help: Print this and exit");
break;
}
}
return ret;
}
public static void main(String[] args) {
public static void main(String[] args) {
try {
try {
// Get command line options
Game.getArguments(args);
// Create a game, a board and 2 players.
// Create a game, a board and 2 players.
Game game = new Game();
Board board = new Board(11, 4, 82);
Player T = new Player(1, "Theseus", board, 0);
Player M = new Player(2, "Minotaur", board, Position.toID(3, 3));
Game game = new Game();
Board board = new Board(Session.boardSize, Session.supplySize, Session.wallSize);
Player T = new Player(1, "Theseus", board, 0);
Player M = new Player(2, "Minotaur", board, Position.toID(Session.boardSize/2, Session.boardSize/2));
// Populate data to the board
// Populate data to the board
board.createBoard(T.playerTileId(), M.playerTileId());
board.createBoard(T.playerTileId(), M.playerTileId());
// The game
while (true) {
while (true) {
int[] m;
int[] m;
System.out.println();
System.out.println();
System.out.println("Round: " + (game.getRound()+1));
System.out.println("Round: " + (game.r ound()+1));
m = T.move(T.playerTileId());
m = T.move(T.playerTileId());
System.out.println(T.getName() + ":\t tileId =" + m[0] + " (" + m[1] + ", " + m[2] + ")");
System.out.println(T.getName() + ":\t tileId =" + m[0] + " (" + m[1] + ", " + m[2] + ")");
@@ -66,8 +118,7 @@ public class Game {
System.out.println(M.getName() + " Wins!!! Score =" + M.getScore());
System.out.println(M.getName() + " Wins!!! Score =" + M.getScore());
System.exit(0);
System.exit(0);
}
}
game.setRound(game.getRound()+1);
if (!(game.getRound() < 100)) {
if (!(game.nextRound() < 100)) {
System.out.println("New day has come... Tie!!!");
System.out.println("New day has come... Tie!!!");
System.exit(0);
System.exit(0);
}
}