Browse Source

DEV: Frist working draft (clarifications needed)

To be clarified
 - Can Minotaur collect supplies?
 - Do we need an optimal solution to boards wall placement algorithm?
 - Do we have to find for possible closed wall loops?
tags/v1.0b1
parent
commit
f1e7235253
2 changed files with 60 additions and 7 deletions
  1. +2
    -0
      src/net/hoo2/auth/labyrinth/Common.java
  2. +58
    -7
      src/net/hoo2/auth/labyrinth/Game.java

+ 2
- 0
src/net/hoo2/auth/labyrinth/Common.java View File

@@ -22,6 +22,8 @@ class Const {
*/
class Session {
static int boardSize = 15; /**< Default board's size (if no one set it via command line) */
static int supplySize = 4; /**< Default board's supply size (if no one set it via command line) */
static int wallSize = 4*15-1; /**< Default board's wall size (if no one set it via command line) */
}

/**


+ 58
- 7
src/net/hoo2/auth/labyrinth/Game.java View File

@@ -15,6 +15,9 @@ public class Game {

Game() {} /**< An empty constructor */

int round () { return round; }
int nextRound() { return ++round; }

/**
* @name Accessor/Mutator interface
* @note
@@ -34,20 +37,69 @@ public class Game {
/**
* 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) {
try {
// Get command line options
Game.getArguments(args);

// 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
board.createBoard(T.playerTileId(), M.playerTileId());

// The game
while (true) {
int[] m;
System.out.println();
System.out.println("Round: " + (game.getRound()+1));
System.out.println("Round: " + (game.round()+1));

m = T.move(T.playerTileId());
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.exit(0);
}
game.setRound(game.getRound()+1);
if (!(game.getRound() < 100)) {
if (!(game.nextRound() < 100)) {
System.out.println("New day has come... Tie!!!");
System.exit(0);
}


Loading…
Cancel
Save