void init() { state = new int[field.getSize()][6]; for (int i = 0; i < state.length; i++) { for (int j = 0; j < 6; j++) state[i][j] = -1; } figureUsage = new int[FIGURES.length]; place = new int[FIGURES.length + 1]; wayCount = new int[FIGURES.length + 1]; way = new int[FIGURES.length + 1]; waysF = new int[FIGURES.length + 1][FIGURES.length * 6]; waysD = new int[FIGURES.length + 1][FIGURES.length * 6]; t = 0; }
int getNextPlace() { int p = (t == 0) ? 0 : place[t - 1] + 1; while (p < field.getSize() && form[p] == 0) ++p; return p >= field.getSize() ? -1 : p; }