public void obtainBoard() throws IOException {

    boolean dimensionFlag = false;
    boolean nameFlag = false;
    boolean playerFlag = false;
    String line;

    while ((line = inputBoard.readLine()) != null) {

      line = line.replace(" ", "").replace("\t", "").replace("\n", "").split("#")[0];

      if (!line.isEmpty()) {
        if (!dimensionFlag) {
          parseDimension(line);
          dimensionFlag = true;
        } else if (!nameFlag) {
          parseBoardName(line);
          nameFlag = true;
        } else {
          if (line.startsWith("1")) {
            if (playerFlag == true) {
              throw new CorruptedFileException();
            }
            parsePlayer(line);
            playerFlag = true;
          } else {
            BoardLine cell = new BoardLine(line, boardDimension);
            Point point = (new Point(cell.getData(1), cell.getData(2))).add(new Point(1, 1));

            if (cell.isWallLine()) {
              parseWall(point, cell);
            } else if (cell.isMonsterLine()) {
              parseMonster(point, cell);
            } else if (cell.isBonusLine()) {
              parseBonus(point, cell);
            }
          }
        }
      }
    }

    if (!nameFlag || !playerFlag || !dimensionFlag) {
      throw new CorruptedFileException();
    }
    validation();
  }
 public void parsePlayer(String line) {
   BoardLine cell = new BoardLine(line, boardDimension);
   Point point = (new Point(cell.getData(1), cell.getData(2))).add(new Point(1, 1));
   playerPosition = point;
 }
 public void parseBonus(Point point, BoardLine cell) {
   putCell(point.x, point.y, new Bonus(point, cell.getData(0), cell.getData(5)));
 }
 public void parseMonster(Point point, BoardLine cell) {
   putCell(point.x, point.y, new Monster(point, cell.getData(3), cell.getData(4)));
 }