introduce bitloops
This commit is contained in:
@@ -108,7 +108,10 @@ public record Export() {
|
||||
}
|
||||
}
|
||||
//public boolean isLetterSet(int idx) { return isLetter(g[idx]); }
|
||||
char NOT_CLUE_NOT_LETTER_TO(byte b, char fallback) { return b == SwedishGenerator.DASH ? fallback : (char) (64 | b); }
|
||||
char NOT_CLUE_NOT_LETTER_TO(byte b, char fallback) {
|
||||
if (b == SwedishGenerator.DASH) throw new RuntimeException();
|
||||
return (char) (64 | b);
|
||||
}
|
||||
String gridToString(Clues clues) {
|
||||
var sb = new StringBuilder();
|
||||
for (var r = 0; r < R; r++) {
|
||||
@@ -117,8 +120,10 @@ public record Export() {
|
||||
var offset = Grid.offset(r, c);
|
||||
if (clues.isClue(offset))
|
||||
sb.append((char) (48 | clues.digitAt(offset)));
|
||||
else
|
||||
else if (grid.lisLetterAtLo(offset))
|
||||
sb.append((char) (64 | grid.letter32At(offset)));
|
||||
else
|
||||
sb.append(' ');
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
@@ -140,8 +145,10 @@ public record Export() {
|
||||
var offset = Grid.offset(r, c);
|
||||
if (clues.isClue(offset)) {
|
||||
sb.append(clueChar.replace(new Cell(grid, clues, offset, clues.digitAt(offset))));
|
||||
} else {
|
||||
} else if (grid.lisLetterAt(offset)) {
|
||||
sb.append(NOT_CLUE_NOT_LETTER_TO(grid.letter32At(offset), emptyFallback));
|
||||
} else {
|
||||
sb.append(emptyFallback);
|
||||
}
|
||||
}
|
||||
out[r] = sb.toString();
|
||||
@@ -229,7 +236,8 @@ public record Export() {
|
||||
var letterAt = new HashMap<Integer, Character>();
|
||||
for (var p : placed) {
|
||||
for (var c : p.cells) {
|
||||
if (inBounds(c) && mask.notClue(c)) {
|
||||
if (!inBounds(c)) throw new RuntimeException();
|
||||
if (mask.notClue(c) && g.lisLetterAt(c)) {
|
||||
letterAt.put(c, (char) (64 | g.letter32At(c)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user