private Tuple checkAroundEmptyCell(String[] board, int x, int y, int id) {
		Tuple ret = new Tuple(new HashSet<Point>(), 1);

		for (int i = -1; i <= 1; i++) {
			for (int j = -1; j <= 1; j++) {
				if (checkRange(x + i, 0, board.length - 1)
						&& checkRange(y + j, 0, board[0].length() - 1)) {
					if (Math.abs(i) + Math.abs(j) != 1) {
						continue;
					}
					if (checked[x + i][y + j] > 0) {
						continue;
					}
					if (board[x + i].charAt(y + j) == '.') {
						Point point = new Point(x + i, y + j);
						ret.empty.add(point);
					} else if (board[x + i].charAt(y + j) == 'o') {
						// 再起的にチェックする箇所のチェック
						checked[x + i][y + j] = id;

						Tuple tmp = checkAroundEmptyCell(board, x + i, y + j,
								id);
						ret.empty.addAll(tmp.empty);
						ret.length += tmp.length;

					}

				}
			}
		}

		return ret;
	}