private bord solver(int[] counter, bord bor) { counter = increment(counter); if (bor.isFull()) { return bor; } while (bor.isOccu(counter)) { counter = increment(counter); } for (int i = 1; i < 10; i++) { if (bor.check(counter, i)) { bor.setValue(counter, i); bor = solver(counter, bor); if (bor.isFull()) { return bor; } } } bor.removeValue(counter); counter = decrement(counter); while (this.fixedValues[counter[0], counter[1]]) { counter = decrement(counter); } return bor; }