Example #1
0
  public int playN(Player white, Player black, int n) {
    long startTime = System.nanoTime();
    int scoreW = 0;
    int scoreB = 0;

    for (int i = 0; i < n; i++) {
      Othello o = new Othello();
      white.init(1, 9000000000L, new Random());
      black.init(0, 9000000000L, new Random());
      boolean blackMove = true;
      Move prevMove = null;

      while (o.gameStatus() == 0) {
        Move move =
            blackMove
                ? black.nextMove(prevMove, 90000000L, 90000000L)
                : white.nextMove(prevMove, 90000000L, 90000000L);
        if (move != null) o.makeMove((blackMove ? 2 : 1), move);
        prevMove = move;
        blackMove = !blackMove;
      }
      if (o.gameStatus() == 1) scoreW++;
      else if (o.gameStatus() == 2) scoreB++;
      System.out.println(o);
    }
    long endTime = System.nanoTime();
    System.out.println(((double) (endTime - startTime)) / (Math.pow(10.0, 9.0)));
    return scoreW - scoreB;
  }