Пример #1
0
  /**
   * Constructs a new game by parsing given array of string as an array of FEN primitives.
   *
   * <p>FEN parsing is permissive and uses best-effort approach i.e. anything, that is salvaged of
   * given input, is used as best as possible, and for the rest, reasonable default values are
   * assumed.
   *
   * @param fenArray An array of FEN primitives used to initialize a game. Only the six first array
   *     elements are used and the are discarded if provided.
   */
  public Chess(String[] fenArray) {
    turn = true;
    enpassant = null;
    halfmove = 0;
    fullmove = 1;

    if (fenArray.length >= 4) {
      try {
        enpassant = new Coord(fenArray[3]);
      } catch (Exception pass) {
      }
    }

    if (fenArray.length >= 1) {
      board = new Board(fenArray[0], enpassant);
    } else {
      board = new Board();
    }

    if (fenArray.length >= 2) {
      if (fenArray[1].equals("b")) {
        turn = false;
      }
    }

    if (fenArray.length >= 3) {
      castling = new Castle(fenArray[2]);
    } else {
      castling = new Castle();
    }

    castling.crop(board.getState());

    if (fenArray.length >= 6) {
      try {
        halfmove = Integer.parseInt(fenArray[4]);
        fullmove = Integer.parseInt(fenArray[5]);
      } catch (NumberFormatException pass) {
      }
    }
  }