public void solveSudoku(char[][] board) {
		// Start typing your Java Sudoku below
		// DO NOT write main() function

		mpCellSet = new HashSet<Cell>();
		initCells(board);

		boolean countFlag = true;
		while (countFlag) {
			int temp = count;
			List<Cell> confirmedCells = getConfirmedCells();
			for (Cell cell : confirmedCells) {
				cell.reduceBlockPossible();
				cell.reduceColumnPossible();
				cell.reduceRowPossible();
			}
			if (count != temp) {
				countFlag = true;
			} else {
				countFlag = false;
			}
		}

		printResult(cellList);
		System.out.println("^^^^^^^^^Start to guess^^^^^^^^");
		System.out.println();

		guess();

		for (int x = 0; x < 9; x++) {
			for (int y = 0; y < 9; y++) {
				board[x][y] = getCellValue(x, y);
			}
		}
	}