private static void bfsBoard(char[][] board, int x, int y, int row, int col) {
		ArrayDeque<BoardPoint> queue = new ArrayDeque<BoardPoint>();
		queue.push(new BoardPoint(x, y));
		while (!queue.isEmpty()) {
			BoardPoint point = queue.poll();
			board[point.getX()][point.getY()] = 'K';

			for (int i = 0; i < directions.length; i++) {
				int new_x = point.getX() + directions[i][0];
				int new_y = point.getY() + directions[i][1];

				if (new_x >= 0 && new_x < row && new_y >= 0 && new_y < col && board[new_x][new_y] == 'O') {
					queue.push(new BoardPoint(new_x, new_y));
				}
			}
		}
	}