Gather data
This commit is contained in:
@@ -388,16 +388,17 @@ public record SwedishGenerator(int W, int H, int SIZE, int MAX_LEN, int[] buff)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// clue clustering (8-connected)
|
// clue clustering (8-connected)
|
||||||
var seen = new boolean[H][W];
|
var seen = new BitSet(8);
|
||||||
var stack = new int[SIZE];
|
var stack = new int[SIZE];
|
||||||
int sp;
|
int sp, idx;
|
||||||
|
|
||||||
for (var r = 0; r < H; r++)
|
for (var r = 0; r < H; r++)
|
||||||
for (var c = 0; c < W; c++) {
|
for (var c = 0; c < W; c++) {
|
||||||
if (!grid.isDigitAt(r, c) || seen[r][c]) continue;
|
idx = grid.offset(r, c);
|
||||||
|
if (!grid.isDigitAt(r, c) || seen.get(idx)) continue;
|
||||||
sp = 0;
|
sp = 0;
|
||||||
stack[sp++] = r * W + c;
|
stack[sp++] = idx;
|
||||||
seen[r][c] = true;
|
seen.set(idx);
|
||||||
var size = 0;
|
var size = 0;
|
||||||
|
|
||||||
while (sp > 0) {
|
while (sp > 0) {
|
||||||
@@ -408,10 +409,11 @@ public record SwedishGenerator(int W, int H, int SIZE, int MAX_LEN, int[] buff)
|
|||||||
for (var d : nbrs8) {
|
for (var d : nbrs8) {
|
||||||
int nx = x + d.x, ny = y + d.y;
|
int nx = x + d.x, ny = y + d.y;
|
||||||
if (nx < 0 || nx >= H || ny < 0 || ny >= W) continue;
|
if (nx < 0 || nx >= H || ny < 0 || ny >= W) continue;
|
||||||
if (seen[nx][ny]) continue;
|
int nidx = grid.offset(nx, ny);
|
||||||
|
if (seen.get(nidx)) continue;
|
||||||
if (!grid.isDigitAt(nx, ny)) continue;
|
if (!grid.isDigitAt(nx, ny)) continue;
|
||||||
seen[nx][ny] = true;
|
seen.set(nidx);
|
||||||
stack[sp++] = nx * W + ny;
|
stack[sp++] = nidx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user