Exemplo n.º 1
0
  /**
   * @param args
   * @throws IOException
   * @throws FileNotFoundException
   */
  public static void main(String[] args) throws FileNotFoundException, IOException {
    GenePool pool = new GenePool(args[0]);
    List<BaseEvaluatorConfig> evaluatorConfigs = pool.getConfigs();
    int numToPlay = Integer.parseInt(args[1]);
    int gamesPlayed = 0;
    System.out.println("Best config is " + pool.getBestConfig().saveTo.getAbsolutePath());
    while (gamesPlayed < numToPlay) {
      if (gamesPlayed % 800 == 799) {
        evaluatorConfigs = pool.cull(evaluatorConfigs);
      }
      Board b = new Board();
      BaseEvaluatorConfig config1 = pool.getBestConfig();
      MoveTree tree = new MoveTree(b, new BaseEvaluator(config1));
      Player goldPlayer =
          new ComputerPlayer(
              tree,
              true,
              Long.parseLong(args[2]),
              args[3] == null ? new BaseEvaluator(config1) : new SuperEvaluator());
      Player silverPlayer =
          new ComputerPlayer(
              tree,
              false,
              Long.parseLong(args[3] != null ? args[3] : args[2]),
              new SuperEvaluator());
      goldPlayer.setup();
      silverPlayer.setup();
      b.print(System.out);
      System.out.println("Game On!");
      Boolean winner = runGame(b, goldPlayer, silverPlayer);
      if (winner != null) {
        if (winner) {
          config1.win();
          // config2.loss();
        } else {
          // config2.win();
          config1.loss();
        }
      }
      System.out.println("Game ended winner was " + b.getWinner());
      b.print(System.out);
      gamesPlayed++;
    }
    Collections.sort(evaluatorConfigs);
    // System.out.println("Played " + gamesPlayed + " games");
    // for (BaseEvaluatorConfig c : evaluatorConfigs) {
    // System.out.println(c.toString());
    // }

  }
Exemplo n.º 2
0
 public String toString() {
   StringWriter writer = new StringWriter();
   PrintWriter out = new PrintWriter(writer);
   print(out);
   out.flush();
   return writer.toString();
 }
Exemplo n.º 3
0
 public void print() {
   if (parent != null) {
     System.out.println("PARENT: ");
     parent.print();
   }
   System.out.println("ZERO: " + findZero());
   for (int i = 0; i < rows; i++) {
     for (int j = 0; j < columns; j++) {
       if (j > 0) System.out.print("\t");
       System.out.print(tiles[i][j]);
     }
     System.out.println();
   }
 }
Exemplo n.º 4
0
 private static Boolean runGame(Board b, Player goldPlayer, Player silverPlayer) {
   boolean turn = true;
   int count = 0;
   while ((b.getWinner() == null) && (count < 200)) {
     try {
       int move = turn ? goldPlayer.findMoves() : silverPlayer.findMoves();
       goldPlayer.executeMove(move);
       silverPlayer.executeMove(move);
       b.executeMove(move);
       b.toggleTurn();
       System.out.println((turn ? "gold" : "silver") + " moved");
       turn = !turn;
       count++;
       b.print(System.out);
     } catch (GameEndException e) {
       b.setWinner(!turn);
     }
   }
   return b.getWinner();
 }
Exemplo n.º 5
0
  public int playGame() {
    int winner = Board.EMPTY;

    red.setColor(Board.RED);
    black.setColor(Board.BLACK);

    turn = Board.BLACK;

    checkersBoard.reset();
    checkersBoard.print();
    gameTime = 0;
    int numPieces = 24;
    while (winner == Board.EMPTY) {
      int currentPieces = checkersBoard.blackPieces() + checkersBoard.redPieces();
      int[] move;
      int legal;

      // tests time for draw
      if (currentPieces == numPieces) {
        gameTime++;
        if (gameTime > 20) return Board.EMPTY;
      } else {
        numPieces = currentPieces;
      }

      if ((checkersBoard.blackPieces() > 0) && (checkersBoard.redPieces() == 0)) {
        winner = Board.BLACK;
        System.out.println("GAME STOPPED NO PIECES");
        return winner;
      }
      move = black.nextMove(checkersBoard);
      // System.out.println(move[0]+" "+move[1]+" "+move[2]+" "+move[3]);
      if ((move[0] == 0) && (move[1] == 0) || (move[2] == 0) && (move[3] == 0)) {
        System.out.println("GAME STOPPED NULL MOVE");
        return Board.RED;
      }
      /*legal = checkersBoard.ApplyMove(move[0],move[1],move[2],move[3]);
      if(legal == Board.ILLEGALMOVE)
      {
      	System.out.println("GAME STOPPED ILLEGAL MOVE");
      	return Board.RED;
      }
      */
      checkersBoard.move_board(move);
      checkersBoard.print();
      if ((checkersBoard.redPieces() > 0) && (checkersBoard.blackPieces() == 0)) {
        System.out.println("GAME STOPPED NO PIECES");
        winner = Board.RED;
        return winner;
      }
      move = red.nextMove(checkersBoard);
      // System.out.println(move[0]+" "+move[1]+" "+move[2]+" "+move[3]);
      if ((move[0] == 0) && (move[1] == 0) || (move[2] == 0) && (move[3] == 0)) {
        System.out.println("GAME STOPPED NULL MOVE");
        return Board.BLACK;
      }
      /*
      legal = checkersBoard.ApplyMove(move[0],move[1],move[2],move[3]);
      if(legal == Board.ILLEGALMOVE)
      {
      	System.out.println("GAME STOPPED ILLEGAL MOVE");
      	return Board.BLACK;
      }
      */
      checkersBoard.move_board(move);
      checkersBoard.print();
    }

    return winner;
  }
Exemplo n.º 6
0
 public void print() {
   print(System.out);
 }
Exemplo n.º 7
0
 public void print(PrintStream out) {
   print(new PrintWriter(out, true));
 }
Exemplo n.º 8
0
 public static void main(String[] argv) {
   Board board = new Board();
   board.print();
 }