This commit is contained in:
mike
2026-01-23 11:58:57 +01:00
parent 2aa08fedb0
commit 7db439a9dc
8 changed files with 129 additions and 106 deletions

View File

@@ -31,6 +31,13 @@ import static puzzle.dict900.DictData900.DICT900;
simpleMax = 800,
minLen = 2,
maxLen = 8
), @DictGen(
packageName = "puzzle.dict800_4",
className = "DictData800_4",
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
simpleMax = 800,
minLen = 2,
maxLen = 4
) })
public class PerformanceTest {
@@ -73,7 +80,7 @@ public class PerformanceTest {
for (var i = 0; i < iterations; i++) {
val slotInfo = Masker.slots(arr[c], DICT800);
var grid = Masker.grid(slotInfo);
val result = fillMask(rng, slotInfo,grid.lo,grid.hi, grid.g);
val result = fillMask(rng, slotInfo, grid.lo, grid.hi, grid.g);
if (result.ok()) successCount++;
totalNodes += result.nodes();
totalBacktracks += result.backtracks();
@@ -143,7 +150,7 @@ public class PerformanceTest {
for (var s : slots) s.assign().w = 0;
var grid = Masker.grid(slots);
val result = fillMask(rng, slots, grid.lo,grid.hi,grid.g);
val result = fillMask(rng, slots, grid.lo, grid.hi, grid.g);
if (result.ok()) {
successCount++;
}
@@ -178,17 +185,19 @@ public class PerformanceTest {
var slotChar = dir.slotChar;
display[cr][cc] = clueChar;
Puzzle.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).forEach(idx -> {
var r = Masker.IT[idx].r();
var c = Masker.IT[idx].c();
if (display[r][c] == ' ' || (display[r][c] >= 'A' && display[r][c] <= 'D')) {
if (display[r][c] != ' ' && display[r][c] != slotChar) {
display[r][c] = '+'; // Intersection
} else {
display[r][c] = slotChar;
}
}
});
Puzzle.cellWalk(slot.key(), slot.lo(), slot.hi())
.skip(1)
.forEach(idx -> {
var r = Masker.IT[idx].r();
var c = Masker.IT[idx].c();
if (display[r][c] == ' ' || (display[r][c] >= 'A' && display[r][c] <= 'D')) {
if (display[r][c] != ' ' && display[r][c] != slotChar) {
display[r][c] = '+'; // Intersection
} else {
display[r][c] = slotChar;
}
}
});
}
for (var r = 0; r < R; r++) {