public void solve() {
        canContinue = false;
        char currentValue;
        for (int j = 0 ; j < 9 ; j++) {
            for (int i = 0; i < 9 ; i++) {
                currentValue = getGridModel().getValue(i, j);
                if (currentValue == ' ') {
                    compareRow(i,j);
                    compareColumn(i,j);
                    compareSubGrid(i,j);
                    onlySolutionRow();
                    onlySolutionColoumn();
                    onlySolutionSubGrid();
                    fillDefinite(i, j);
                }
            }
        }
        if (canContinue) {
            solve();
        }
        possibleSolutions.printPSolutions();
    }