From dd53009e697da3370126b46e2a101ad9f6dd88ce Mon Sep 17 00:00:00 2001 From: mike Date: Wed, 21 Jan 2026 06:19:49 +0100 Subject: [PATCH] introduce bitloops --- src/main/java/puzzle/Export.java | 22 +++++++------------ src/main/java/puzzle/Masker.java | 10 ++++----- src/test/java/puzzle/MainTest.java | 2 +- .../java/puzzle/SwedishGeneratorTest.java | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/main/java/puzzle/Export.java b/src/main/java/puzzle/Export.java index f704104..9b9850b 100644 --- a/src/main/java/puzzle/Export.java +++ b/src/main/java/puzzle/Export.java @@ -6,7 +6,6 @@ import lombok.experimental.Delegate; import lombok.val; import precomp.Const9x8.Cell; import puzzle.Export.Gridded.Replacar.Rell; -import puzzle.Export.LetterVisit.LetterAt; import puzzle.Masker.Clues; import puzzle.SwedishGenerator.Dict; import puzzle.SwedishGenerator.FillResult; @@ -110,19 +109,6 @@ public record Export() { } } - interface LetterVisit { - - record LetterAt(int index, byte letter) { - - public int row() { return INDEX_ROW(index); } - public int col() { return INDEX_COL(index); } - public char human() { return LETTER(letter); } - static LetterAt from(int index, byte[] bytes) { return new LetterAt(index, bytes[index]); } - public int index(int cols) { return (row() * cols) + col(); } - } - - } - record Gridded(@Delegate Grid grid, Clues cl) implements Stream { @@ -301,4 +287,12 @@ public record Export() { } } + record LetterAt(int index, byte letter) { + + public int row() { return INDEX_ROW(index); } + public int col() { return INDEX_COL(index); } + public char human() { return LETTER(letter); } + static LetterAt from(int index, byte[] bytes) { return new LetterAt(index, bytes[index]); } + public int index(int cols) { return (row() * cols) + col(); } + } } diff --git a/src/main/java/puzzle/Masker.java b/src/main/java/puzzle/Masker.java index 7f92522..8cfd1a5 100644 --- a/src/main/java/puzzle/Masker.java +++ b/src/main/java/puzzle/Masker.java @@ -14,10 +14,10 @@ import static puzzle.SwedishGenerator.*; public final class Masker { public static final rci[] IT = Neighbors9x8.IT; - public static final long[] PATH_LO = Neighbors9x8.PATH_LO; - public static final long[] PATH_HI = Neighbors9x8.PATH_HI; - public static final long MASK_LO = -1L; - public static final long MASK_HI = Neighbors9x8.MASK_HI;//(1L << (SIZE - 64)) - 1; + public static final long[] PATH_LO = Neighbors9x8.PATH_LO; + public static final long[] PATH_HI = Neighbors9x8.PATH_HI; + public static final long MASK_LO = -1L; + public static final long MASK_HI = Neighbors9x8.MASK_HI;//(1L << (SIZE - 64)) - 1; private final Rng rng; private final int[] stack; private final Clues cache; @@ -650,7 +650,7 @@ public final class Masker { //@formatter:on @AllArgsConstructor @Accessors(fluent = true) - public static final class Clues { + public static final class Clues { @Getter long lo, hi, vlo, vhi, rlo, rhi, xlo, xhi; public static Clues createEmpty() { return new Clues(0, 0, 0, 0, 0, 0, 0, 0); } diff --git a/src/test/java/puzzle/MainTest.java b/src/test/java/puzzle/MainTest.java index ab5fa2c..f723b56 100644 --- a/src/test/java/puzzle/MainTest.java +++ b/src/test/java/puzzle/MainTest.java @@ -8,7 +8,7 @@ import precomp.Neighbors9x8.rci; import puzzle.Export.ClueAt; import puzzle.Export.Clued; import puzzle.Export.Gridded; -import puzzle.Export.LetterVisit.LetterAt; +import puzzle.Export.LetterAt; import puzzle.Export.PuzzleResult; import puzzle.Export.Rewards; import puzzle.Main.Opts; diff --git a/src/test/java/puzzle/SwedishGeneratorTest.java b/src/test/java/puzzle/SwedishGeneratorTest.java index 74b8a78..95a605b 100644 --- a/src/test/java/puzzle/SwedishGeneratorTest.java +++ b/src/test/java/puzzle/SwedishGeneratorTest.java @@ -10,7 +10,7 @@ import precomp.Neighbors9x8.rci; import puzzle.DictJavaGeneratorMulti.DictEntryDTO.IntListDTO; import puzzle.Export.Clued; import puzzle.Export.Gridded; -import puzzle.Export.LetterVisit.LetterAt; +import puzzle.Export.LetterAt; import puzzle.Masker.Clues; import puzzle.Masker.Slot;