@Override public Square[][] createField() { int tries = 0; int limit = 20; while (tries < limit) { Square[][] field = null; field = createUnvalidatedField(); if (isValid(field)) { return field; } tries++; System.out.println("Discarded\n" + Square.getField(field)); } throw new RuntimeException("Couldn't create field"); }