52 lines
1.3 KiB
Java
52 lines
1.3 KiB
Java
package puzzle.dict900;
|
|
|
|
public final class DictDataL7 {
|
|
private DictDataL7() {}
|
|
|
|
static final int LEN = 7;
|
|
static final int ROWS = 182;
|
|
static final int COLS = 174;
|
|
static final int WORDS_LEN = 11121;
|
|
static final int POS_LEN = 31668;
|
|
|
|
private static long[] words() {
|
|
long[] out = new long[WORDS_LEN];
|
|
int k = 0;
|
|
k = copy(out, k, DictDataL7W0.get());
|
|
k = copy(out, k, DictDataL7W1.get());
|
|
return out;
|
|
}
|
|
|
|
private static long[] posFlat() {
|
|
long[] out = new long[POS_LEN];
|
|
int k = 0;
|
|
k = copy(out, k, DictDataL7P0.get());
|
|
k = copy(out, k, DictDataL7P1.get());
|
|
k = copy(out, k, DictDataL7P2.get());
|
|
k = copy(out, k, DictDataL7P3.get());
|
|
return out;
|
|
}
|
|
|
|
public static puzzle.SwedishGenerator.DictEntry entry() {
|
|
long[] wds = words();
|
|
long[] flat = posFlat();
|
|
long[][] pos = reshape(flat, ROWS, COLS);
|
|
return new puzzle.SwedishGenerator.DictEntry(wds, pos, wds.length, (wds.length + 63) >>> 6);
|
|
}
|
|
|
|
private static int copy(long[] dst, int at, long[] src) {
|
|
System.arraycopy(src, 0, dst, at, src.length);
|
|
return at + src.length;
|
|
}
|
|
|
|
private static long[][] reshape(long[] flat, int rows, int cols) {
|
|
long[][] out = new long[rows][cols];
|
|
int k = 0;
|
|
for (int r = 0; r < rows; r++) {
|
|
System.arraycopy(flat, k, out[r], 0, cols);
|
|
k += cols;
|
|
}
|
|
return out;
|
|
}
|
|
}
|