public class ForcedNumber implements Solver { public boolean trySolve(Board board) { // iterate over // structure types for (int i = 0; i < Structure.values().length; i ++) { // structure indices for (int j = 0; j < Field.POSSIBILITIES; j++) { // possibilities for (int k = 1; k <= Field.POSSIBILITIES; k++) { int counter = 0; int element = -1; // structure elements for (int l = 0; l < Field.POSSIBILITIES; l++) { if (board.getField(Structure.values()[i], j, l).getRemainingPos() .contains((Object) k)) { counter++; element = l; } if (counter > 1) break; } if (counter == 1 && !board.getField(Structure.values()[i], j, element).isSet() && !board.trySetField(Structure.values()[i], j, element, new Field(k))) return false; } } } return true; } }