introduce bitloops
This commit is contained in:
4
pom.xml
4
pom.xml
@@ -29,11 +29,13 @@
|
||||
<groupId>org.postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>42.7.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.46.1.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -63,7 +65,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mike.processor</groupId>
|
||||
<artifactId>puzzle-processor</artifactId>
|
||||
<artifactId>puzzle-processor</artifactId>
|
||||
<version>1.7-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictData {
|
||||
private DictData() {}
|
||||
|
||||
public static final puzzle.SwedishGenerator.Dict DICT800 = build();
|
||||
|
||||
private static puzzle.SwedishGenerator.Dict build() {
|
||||
puzzle.SwedishGenerator.DictEntry[] idx = new puzzle.SwedishGenerator.DictEntry[9];
|
||||
idx[2] = DictDataL2.entry();
|
||||
idx[3] = DictDataL3.entry();
|
||||
idx[4] = DictDataL4.entry();
|
||||
idx[5] = DictDataL5.entry();
|
||||
idx[6] = DictDataL6.entry();
|
||||
idx[7] = DictDataL7.entry();
|
||||
idx[8] = DictDataL8.entry();
|
||||
return new puzzle.SwedishGenerator.Dict(idx, 16445);
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL2 {
|
||||
private DictDataL2() {}
|
||||
|
||||
static final int LEN = 2;
|
||||
static final int ROWS = 52;
|
||||
static final int COLS = 2;
|
||||
static final int WORDS_LEN = 72;
|
||||
static final int POS_LEN = 104;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL2W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL2P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL2P0 {
|
||||
private DictDataL2P0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x2210a009040800L,
|
||||
0x8L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2040000200000008L,
|
||||
0x0L,
|
||||
0x4084630080000003L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000000010000L,
|
||||
0x0L,
|
||||
0x8000000000004000L,
|
||||
0x10L,
|
||||
0x208000000081410L,
|
||||
0x0L,
|
||||
0x400100L,
|
||||
0x0L,
|
||||
0x400000000000000L,
|
||||
0x20L,
|
||||
0x800000402000000L,
|
||||
0x1L,
|
||||
0x804002000L,
|
||||
0x42L,
|
||||
0x800000008200L,
|
||||
0x0L,
|
||||
0x1000000060120080L,
|
||||
0x0L,
|
||||
0x10000000L,
|
||||
0x80L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x44000000000L,
|
||||
0x0L,
|
||||
0x11080000000000L,
|
||||
0x0L,
|
||||
0x1000000004L,
|
||||
0x0L,
|
||||
0x100800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4L,
|
||||
0x20L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200040L,
|
||||
0x0L,
|
||||
0x8401040016410200L,
|
||||
0x4L,
|
||||
0x4000000000000000L,
|
||||
0x8L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x202200000000000L,
|
||||
0x0L,
|
||||
0x10008400008616cL,
|
||||
0x0L,
|
||||
0x140000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80000148000000L,
|
||||
0x0L,
|
||||
0x850000080000000L,
|
||||
0x92L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000010L,
|
||||
0x0L,
|
||||
0x400000000800L,
|
||||
0x0L,
|
||||
0x24000000020000L,
|
||||
0x0L,
|
||||
0x2000000401L,
|
||||
0x0L,
|
||||
0x2000800000200000L,
|
||||
0x61L,
|
||||
0x80L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8a00000002L,
|
||||
0x0L,
|
||||
0x1000010401001000L,
|
||||
0x0L,
|
||||
0x8120000000000L,
|
||||
0x0L,
|
||||
0x8000L,
|
||||
0x0L,
|
||||
0x1000000000L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL2W0 {
|
||||
private DictDataL2W0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x100000001c5L,
|
||||
0x90000000245L,
|
||||
0x1100000000b4L,
|
||||
0x1900000000a4L,
|
||||
0x210000000169L,
|
||||
0x2900000000b7L,
|
||||
0x3100000000baL,
|
||||
0x39000000020fL,
|
||||
0x4100000000aaL,
|
||||
0x49000000002eL,
|
||||
0x5100000001c9L,
|
||||
0x590000000181L,
|
||||
0x610000000269L,
|
||||
0x6900000000adL,
|
||||
0x7100000000a8L,
|
||||
0x7900000002aeL,
|
||||
0x810000000027L,
|
||||
0x8900000001afL,
|
||||
0x9100000000c1L,
|
||||
0x9900000000a9L,
|
||||
0xa100000000cfL,
|
||||
0xa900000001faL,
|
||||
0xb1000000002aL,
|
||||
0xb900000002f5L,
|
||||
0xc10000000261L,
|
||||
0xc9000000002cL,
|
||||
0xd1000000002dL,
|
||||
0xd90000000101L,
|
||||
0xe10000000030L,
|
||||
0xe9000000016fL,
|
||||
0xf1000000010fL,
|
||||
0xf90000000125L,
|
||||
0x1010000000115L,
|
||||
0x1090000000244L,
|
||||
0x111000000026cL,
|
||||
0x119000000024dL,
|
||||
0x12100000002d4L,
|
||||
0x12900000001c1L,
|
||||
0x13100000000b2L,
|
||||
0x1390000000241L,
|
||||
0x1410000000265L,
|
||||
0x1490000000285L,
|
||||
0x1510000000032L,
|
||||
0x15900000000b3L,
|
||||
0x1610000000281L,
|
||||
0x1690000000085L,
|
||||
0x1710000000185L,
|
||||
0x17900000001eeL,
|
||||
0x1810000000033L,
|
||||
0x1890000000081L,
|
||||
0x19100000001a5L,
|
||||
0x1990000000289L,
|
||||
0x1a10000000133L,
|
||||
0x1a900000001a1L,
|
||||
0x1b10000000124L,
|
||||
0x1b90000000105L,
|
||||
0x1c100000000a7L,
|
||||
0x1c90000000089L,
|
||||
0x1d1000000002bL,
|
||||
0x1d9000000012cL,
|
||||
0x1e1000000026fL,
|
||||
0x1e900000001e4L,
|
||||
0x1f10000000045L,
|
||||
0x1f90000000028L,
|
||||
0x20100000001ecL,
|
||||
0x209000000012dL,
|
||||
0x2110000000036L,
|
||||
0x2190000000041L,
|
||||
0x2210000000128L,
|
||||
0x22900000001ebL,
|
||||
0x23100000001edL,
|
||||
0x2390000000130L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL3 {
|
||||
private DictDataL3() {}
|
||||
|
||||
static final int LEN = 3;
|
||||
static final int ROWS = 78;
|
||||
static final int COLS = 8;
|
||||
static final int WORDS_LEN = 490;
|
||||
static final int POS_LEN = 624;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL3W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL3P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1,633 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL3P0 {
|
||||
private DictDataL3P0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x2000000000001010L,
|
||||
0x0L,
|
||||
0x800300e020008000L,
|
||||
0x2000000f800000L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0xeL,
|
||||
0x0L,
|
||||
0x2000002000L,
|
||||
0x8003800018001000L,
|
||||
0x2030001L,
|
||||
0x40000000000000L,
|
||||
0xe0000000c0000L,
|
||||
0x3000000L,
|
||||
0x180001e0000f0L,
|
||||
0x4040080000L,
|
||||
0x0L,
|
||||
0x4000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0xc000000L,
|
||||
0x6000000000000L,
|
||||
0x8002100000L,
|
||||
0x20000020020182L,
|
||||
0x80000e0002000L,
|
||||
0x4010000000000L,
|
||||
0x38000007000000fL,
|
||||
0x10000000700000L,
|
||||
0x10000000L,
|
||||
0x8000000000000300L,
|
||||
0x100L,
|
||||
0x40400e0000000001L,
|
||||
0x40L,
|
||||
0x8060108000000L,
|
||||
0x400000000000070L,
|
||||
0x20000000800000L,
|
||||
0x20000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4000L,
|
||||
0x0L,
|
||||
0x80000000L,
|
||||
0x40000000000000L,
|
||||
0xc0000000L,
|
||||
0x8000000000400L,
|
||||
0x12400000001L,
|
||||
0x0L,
|
||||
0x100018000L,
|
||||
0x40002L,
|
||||
0x1800000000000080L,
|
||||
0x80000001000000L,
|
||||
0x300000000L,
|
||||
0x70000060000000L,
|
||||
0x4200002L,
|
||||
0x80000841040004L,
|
||||
0x10000600020000L,
|
||||
0x10000000000400L,
|
||||
0x6000000300000000L,
|
||||
0xf00000000000000L,
|
||||
0x1c00000000L,
|
||||
0x80000380003800L,
|
||||
0xe00L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80200000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4L,
|
||||
0x11000000000L,
|
||||
0x0L,
|
||||
0x80800L,
|
||||
0x0L,
|
||||
0x1000000000000000L,
|
||||
0x2000000000L,
|
||||
0x100000400004000L,
|
||||
0x10a8401000L,
|
||||
0x1000080000200L,
|
||||
0x800000180L,
|
||||
0x100cL,
|
||||
0x8000001c00000100L,
|
||||
0xe000000002000000L,
|
||||
0x1c000000000L,
|
||||
0x38000L,
|
||||
0x800000L,
|
||||
0x300100000000000L,
|
||||
0x70001c0000L,
|
||||
0x60000000000010L,
|
||||
0xe000000200L,
|
||||
0x3c000003L,
|
||||
0xfe0000000003L,
|
||||
0x2000000000c0000L,
|
||||
0x2000L,
|
||||
0x8002000400004440L,
|
||||
0x20008000200001L,
|
||||
0x4000000L,
|
||||
0x30000000400L,
|
||||
0x4000000cL,
|
||||
0x700000000003cL,
|
||||
0x1800700000L,
|
||||
0x800000018L,
|
||||
0x4400000480028L,
|
||||
0x0L,
|
||||
0x180100400000000L,
|
||||
0x40000001800L,
|
||||
0x80000010L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2008800L,
|
||||
0xc0010000400202L,
|
||||
0x200800000000L,
|
||||
0x80000000000L,
|
||||
0x0L,
|
||||
0x40L,
|
||||
0x0L,
|
||||
0x4000L,
|
||||
0x400000000000000L,
|
||||
0x300020000800004L,
|
||||
0x20L,
|
||||
0x100000000000L,
|
||||
0x1000000e0L,
|
||||
0x38000000000f80L,
|
||||
0xc00006000800000L,
|
||||
0x1008000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000000L,
|
||||
0x8000000000000L,
|
||||
0x408L,
|
||||
0xe00400050100040L,
|
||||
0x1e0000001e000L,
|
||||
0x1e00000100L,
|
||||
0x3c0000000003000L,
|
||||
0x8000000000L,
|
||||
0x0L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x1000000000000000L,
|
||||
0x6000000060000L,
|
||||
0xe000000200L,
|
||||
0x40000000001c000L,
|
||||
0x0L,
|
||||
0x20L,
|
||||
0x1010a00000100000L,
|
||||
0x400000000000000L,
|
||||
0x2000801080000000L,
|
||||
0x8000000180000L,
|
||||
0xf0000001c00L,
|
||||
0xe0000L,
|
||||
0x1000010001000000L,
|
||||
0x10000040L,
|
||||
0x800000L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000100000L,
|
||||
0x0L,
|
||||
0x80L,
|
||||
0x10000L,
|
||||
0xc0000000810L,
|
||||
0x4000000000000080L,
|
||||
0x200000L,
|
||||
0x300000006000L,
|
||||
0x3000000000000000L,
|
||||
0x2000020000000000L,
|
||||
0x0L,
|
||||
0x431c200000L,
|
||||
0x1000000001000000L,
|
||||
0x200000L,
|
||||
0x10000000400000L,
|
||||
0x1c00000018000L,
|
||||
0xc000000000600000L,
|
||||
0x40000c0000000000L,
|
||||
0x10000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x300000000001L,
|
||||
0x200020000L,
|
||||
0x8000000000L,
|
||||
0x6000700006000020L,
|
||||
0x1c06300L,
|
||||
0x0L,
|
||||
0x20000L,
|
||||
0x0L,
|
||||
0x400000000000L,
|
||||
0x40000L,
|
||||
0x100840000c010692L,
|
||||
0xa12186922081f080L,
|
||||
0x2210024044c2120L,
|
||||
0xe0c0316411822801L,
|
||||
0x218651214c108d24L,
|
||||
0x5001024c4c000085L,
|
||||
0x402000802044810L,
|
||||
0x2000601000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000L,
|
||||
0x20000000000000L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x4000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8787bc015100606dL,
|
||||
0x630011b060034L,
|
||||
0x5c58291bd0004000L,
|
||||
0x9104083a068d586L,
|
||||
0x1200200001032041L,
|
||||
0x18042081200008L,
|
||||
0x140400000001L,
|
||||
0x10020000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80L,
|
||||
0x1ee00a20100L,
|
||||
0x1000480044200800L,
|
||||
0x2080824000100204L,
|
||||
0x1200060800010218L,
|
||||
0xcc50820232045080L,
|
||||
0x8062198100165302L,
|
||||
0x4008a22080801460L,
|
||||
0x804002142L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000000000L,
|
||||
0x4L,
|
||||
0x8000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000L,
|
||||
0x40L,
|
||||
0x8000000000L,
|
||||
0x2000004000020L,
|
||||
0x0L,
|
||||
0x22000000L,
|
||||
0x2L,
|
||||
0x400000000L,
|
||||
0x0L,
|
||||
0x200L,
|
||||
0x0L,
|
||||
0x80000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40020000000800L,
|
||||
0x0L,
|
||||
0x4040000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x300010825c0000L,
|
||||
0x464801248018050bL,
|
||||
0x100500002a11c83L,
|
||||
0x8801040140000L,
|
||||
0x90c4c0028020aL,
|
||||
0x208460101049a430L,
|
||||
0xb9549112c39a380L,
|
||||
0x1c0e0010209L,
|
||||
0x0L,
|
||||
0x400000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000L,
|
||||
0x0L,
|
||||
0x20000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x6000000000000000L,
|
||||
0x0L,
|
||||
0x2000028000000L,
|
||||
0x8000000L,
|
||||
0x800000L,
|
||||
0x800L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000L,
|
||||
0x0L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000000L,
|
||||
0x20000000L,
|
||||
0x890004800000000L,
|
||||
0x1020058L,
|
||||
0x5000000000000L,
|
||||
0x20001080400010L,
|
||||
0x700800200000040L,
|
||||
0xa04000c21142000cL,
|
||||
0x130b0c8c30L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000000000L,
|
||||
0x40L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000000000L,
|
||||
0x400a00L,
|
||||
0x4001000000000L,
|
||||
0x2000002000048L,
|
||||
0x8000000000L,
|
||||
0x2000000L,
|
||||
0x1000000000000000L,
|
||||
0x100000000L,
|
||||
0x40000000L,
|
||||
0x0L,
|
||||
0x2000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80020000001000L,
|
||||
0x40000000004L,
|
||||
0x81800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000000L,
|
||||
0x0L,
|
||||
0x80820208000000L,
|
||||
0x400040100000002L,
|
||||
0x2000L,
|
||||
0x4000040010000000L,
|
||||
0x200000L,
|
||||
0x4000020L,
|
||||
0x0L,
|
||||
0x30120000248148L,
|
||||
0x4000021L,
|
||||
0xc010c080b8000800L,
|
||||
0x24081080400000L,
|
||||
0x1001000000080000L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x40040020000000L,
|
||||
0x600010800040002L,
|
||||
0x100000022aL,
|
||||
0x4040000100400000L,
|
||||
0x60001020040000L,
|
||||
0x8000000404040L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8080000022000L,
|
||||
0x800000080100L,
|
||||
0x80010L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000L,
|
||||
0x800000L,
|
||||
0x20000000000000L,
|
||||
0x0L,
|
||||
0x10000002000000L,
|
||||
0x20004400L,
|
||||
0x0L,
|
||||
0x4402000000L,
|
||||
0x40200000000000L,
|
||||
0x2000000100000500L,
|
||||
0x10000L,
|
||||
0x0L,
|
||||
0x10000000L,
|
||||
0x0L,
|
||||
0x1ec00000000L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4002140L,
|
||||
0x4000002000000L,
|
||||
0x8102000140002040L,
|
||||
0x2000L,
|
||||
0x100040008004010L,
|
||||
0x200020404000401L,
|
||||
0x1102208410088006L,
|
||||
0x9000121909000L,
|
||||
0x1L,
|
||||
0x210000000L,
|
||||
0x5042090020400L,
|
||||
0x801000000000190L,
|
||||
0x80008020080000L,
|
||||
0x81802840e1001000L,
|
||||
0x4424000180100080L,
|
||||
0x2044080008002040L,
|
||||
0x40000L,
|
||||
0x2000000081000000L,
|
||||
0x8018000000000L,
|
||||
0x10000L,
|
||||
0x200000008800L,
|
||||
0x2010000808100800L,
|
||||
0x200010800010000L,
|
||||
0x40200010L,
|
||||
0x1080L,
|
||||
0x483200000012691L,
|
||||
0x4010400800004100L,
|
||||
0x2020110840000000L,
|
||||
0x1051120840340280L,
|
||||
0x4880000046c088L,
|
||||
0x2200400000L,
|
||||
0x100200000004001L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000000000002L,
|
||||
0x0L,
|
||||
0x800L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000000000000L,
|
||||
0x1024L,
|
||||
0x400001001000L,
|
||||
0x12200000100L,
|
||||
0x11104000044009L,
|
||||
0x4882023080000a00L,
|
||||
0x202428800L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x840000000000L,
|
||||
0x800000000001016L,
|
||||
0x100004600000000L,
|
||||
0x4008010600000001L,
|
||||
0x400000000022L,
|
||||
0x400L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x9100000024001800L,
|
||||
0x180000a88000L,
|
||||
0x2800220010a0009L,
|
||||
0x8200802010020024L,
|
||||
0x402001000000200L,
|
||||
0xa000800004000110L,
|
||||
0x20100000400000L,
|
||||
0x8100004L,
|
||||
0x208480008924026L,
|
||||
0x3200200001110088L,
|
||||
0x1002080000000200L,
|
||||
0x800004004010000L,
|
||||
0x804100102202054L,
|
||||
0x1048800260L,
|
||||
0x404600020480L,
|
||||
0x0L,
|
||||
0x1000080000L,
|
||||
0x0L,
|
||||
0xa00400L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400001000000L,
|
||||
0x10000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000008000000008L,
|
||||
0x10000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1e810000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x440200000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,499 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL3W0 {
|
||||
private DictDataL3W0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x200000038a5L,
|
||||
0xa0000005024L,
|
||||
0x1200000050a8L,
|
||||
0x1a00000014aeL,
|
||||
0x220000003821L,
|
||||
0x2a00000050aeL,
|
||||
0x3200000014adL,
|
||||
0x3a0000003824L,
|
||||
0x420000001524L,
|
||||
0x4a000000382bL,
|
||||
0x52000000382dL,
|
||||
0x5a0000004dcfL,
|
||||
0x620000004d81L,
|
||||
0x6a00000038a2L,
|
||||
0x7200000050adL,
|
||||
0x7a000000156fL,
|
||||
0x820000003836L,
|
||||
0x8a0000005124L,
|
||||
0x9200000015e8L,
|
||||
0x9a00000055eeL,
|
||||
0xa200000051f4L,
|
||||
0xaa0000001537L,
|
||||
0xb20000001deeL,
|
||||
0xba0000005135L,
|
||||
0xc200000034a8L,
|
||||
0xca0000002defL,
|
||||
0xd20000004c37L,
|
||||
0xda0000005037L,
|
||||
0xe200000030b7L,
|
||||
0xea0000004ea4L,
|
||||
0xf200000008a8L,
|
||||
0xfa00000035ebL,
|
||||
0x1020000001cb7L,
|
||||
0x10a0000003137L,
|
||||
0x112000000292dL,
|
||||
0x11a0000002928L,
|
||||
0x12200000055eaL,
|
||||
0x12a0000002922L,
|
||||
0x1320000002937L,
|
||||
0x13a000000293aL,
|
||||
0x142000000292aL,
|
||||
0x14a00000015c5L,
|
||||
0x15200000048a5L,
|
||||
0x15a00000050a5L,
|
||||
0x16200000014acL,
|
||||
0x16a00000038b4L,
|
||||
0x172000000502eL,
|
||||
0x17a00000048b4L,
|
||||
0x18200000038abL,
|
||||
0x18a00000038adL,
|
||||
0x1920000002caeL,
|
||||
0x19a0000005032L,
|
||||
0x1a200000015f4L,
|
||||
0x1aa00000015e4L,
|
||||
0x1b20000001dc5L,
|
||||
0x1ba00000038a8L,
|
||||
0x1c20000004cacL,
|
||||
0x1ca00000050acL,
|
||||
0x1d200000038b0L,
|
||||
0x1da0000000693L,
|
||||
0x1e20000004c34L,
|
||||
0x1ea0000003641L,
|
||||
0x1f20000001e45L,
|
||||
0x1fa0000004cadL,
|
||||
0x20200000015edL,
|
||||
0x20a00000049efL,
|
||||
0x21200000048b0L,
|
||||
0x21a00000051f2L,
|
||||
0x22200000048b6L,
|
||||
0x22a00000014baL,
|
||||
0x2320000002d85L,
|
||||
0x23a000000502bL,
|
||||
0x24200000039ebL,
|
||||
0x24a00000005afL,
|
||||
0x25200000031f2L,
|
||||
0x25a0000000536L,
|
||||
0x2620000004822L,
|
||||
0x26a0000002c24L,
|
||||
0x2720000003826L,
|
||||
0x27a0000004c27L,
|
||||
0x2820000005027L,
|
||||
0x28a00000030a8L,
|
||||
0x2920000001cacL,
|
||||
0x29a0000004decL,
|
||||
0x2a200000051ecL,
|
||||
0x2aa0000004d2dL,
|
||||
0x2b2000000060fL,
|
||||
0x2ba0000004c30L,
|
||||
0x2c200000050b7L,
|
||||
0x2ca00000024baL,
|
||||
0x2d2000000153aL,
|
||||
0x2da00000010a2L,
|
||||
0x2e200000030a2L,
|
||||
0x2ea0000001c24L,
|
||||
0x2f20000002d24L,
|
||||
0x2fa00000031e4L,
|
||||
0x3020000002ca7L,
|
||||
0x30a0000001028L,
|
||||
0x31200000025e8L,
|
||||
0x31a0000003aabL,
|
||||
0x3220000001c2cL,
|
||||
0x32a00000031ecL,
|
||||
0x33200000026acL,
|
||||
0x33a000000342dL,
|
||||
0x34200000035efL,
|
||||
0x34a0000001030L,
|
||||
0x3520000003036L,
|
||||
0x35a0000004d36L,
|
||||
0x3620000004cbaL,
|
||||
0x36a00000050baL,
|
||||
0x372000000393aL,
|
||||
0x37a0000001022L,
|
||||
0x3820000003022L,
|
||||
0x38a0000002ca2L,
|
||||
0x39200000030a3L,
|
||||
0x39a00000035e4L,
|
||||
0x3a20000003aa8L,
|
||||
0x3aa0000001c2dL,
|
||||
0x3b20000001defL,
|
||||
0x3ba00000012afL,
|
||||
0x3c20000002c30L,
|
||||
0x3ca00000051f0L,
|
||||
0x3d200000041f4L,
|
||||
0x3da0000004ab5L,
|
||||
0x3e20000005137L,
|
||||
0x3ea000000503aL,
|
||||
0x3f200000039faL,
|
||||
0x3fa0000002c22L,
|
||||
0x4020000004de2L,
|
||||
0x40a00000011e7L,
|
||||
0x412000000412bL,
|
||||
0x41a0000004eabL,
|
||||
0x42200000032acL,
|
||||
0x42a0000004030L,
|
||||
0x4320000001eb2L,
|
||||
0x43a00000031f6L,
|
||||
0x442000000303aL,
|
||||
0x44a000000513aL,
|
||||
0x45200000055e8L,
|
||||
0x45a00000015eaL,
|
||||
0x46200000041ebL,
|
||||
0x46a0000002c3aL,
|
||||
0x4720000001cbaL,
|
||||
0x47a0000002061L,
|
||||
0x48200000035e2L,
|
||||
0x48a0000004ea2L,
|
||||
0x4920000001827L,
|
||||
0x49a0000004c2aL,
|
||||
0x4a20000002932L,
|
||||
0x4aa00000055f7L,
|
||||
0x4b20000001c3aL,
|
||||
0x4ba00000055faL,
|
||||
0x4c20000004ebaL,
|
||||
0x4ca00000009e2L,
|
||||
0x4d2000000602dL,
|
||||
0x4da0000001645L,
|
||||
0x4e200000014b2L,
|
||||
0x4ea0000001641L,
|
||||
0x4f200000038b2L,
|
||||
0x4fa00000014b4L,
|
||||
0x50200000010a5L,
|
||||
0x50a00000048a9L,
|
||||
0x512000000482eL,
|
||||
0x51a00000038afL,
|
||||
0x52200000004b4L,
|
||||
0x52a0000004c21L,
|
||||
0x5320000004921L,
|
||||
0x53a0000001581L,
|
||||
0x54200000038a4L,
|
||||
0x54a0000004d25L,
|
||||
0x55200000011c5L,
|
||||
0x55a00000050a9L,
|
||||
0x56200000039eeL,
|
||||
0x56a00000024afL,
|
||||
0x57200000015f2L,
|
||||
0x57a0000001534L,
|
||||
0x5820000003021L,
|
||||
0x58a0000005241L,
|
||||
0x59200000005c4L,
|
||||
0x59a0000001ca5L,
|
||||
0x5a200000014a8L,
|
||||
0x5aa000000382cL,
|
||||
0x5b200000024acL,
|
||||
0x5ba0000004d2eL,
|
||||
0x5c200000049eeL,
|
||||
0x5ca0000004c32L,
|
||||
0x5d200000010b2L,
|
||||
0x5da00000030b2L,
|
||||
0x5e200000050b3L,
|
||||
0x5ea0000003934L,
|
||||
0x5f200000014b6L,
|
||||
0x5fa00000016c1L,
|
||||
0x6020000004824L,
|
||||
0x60a0000003ca4L,
|
||||
0x6120000004ca4L,
|
||||
0x61a0000000524L,
|
||||
0x6220000002d25L,
|
||||
0x62a0000004d85L,
|
||||
0x63200000006c5L,
|
||||
0x63a00000038a7L,
|
||||
0x64200000024abL,
|
||||
0x64a000000392cL,
|
||||
0x65200000024adL,
|
||||
0x65a000000342eL,
|
||||
0x66200000040aeL,
|
||||
0x66a0000001032L,
|
||||
0x6720000002cb2L,
|
||||
0x67a00000034b2L,
|
||||
0x6820000005132L,
|
||||
0x68a0000004c33L,
|
||||
0x69200000039f3L,
|
||||
0x69a00000030b4L,
|
||||
0x6a200000039f4L,
|
||||
0x6aa00000038b6L,
|
||||
0x6b200000014b7L,
|
||||
0x6ba0000002021L,
|
||||
0x6c20000004021L,
|
||||
0x6ca0000000501L,
|
||||
0x6d20000005181L,
|
||||
0x6da0000002e41L,
|
||||
0x6e20000004c24L,
|
||||
0x6ea00000030a4L,
|
||||
0x6f200000039e4L,
|
||||
0x6fa00000014a6L,
|
||||
0x70200000024a8L,
|
||||
0x70a00000048a8L,
|
||||
0x712000000482bL,
|
||||
0x71a000000392bL,
|
||||
0x72200000015ebL,
|
||||
0x72a0000004c2cL,
|
||||
0x732000000502cL,
|
||||
0x73a00000030acL,
|
||||
0x742000000482dL,
|
||||
0x74a000000392dL,
|
||||
0x7520000002d2eL,
|
||||
0x75a00000015afL,
|
||||
0x7620000003830L,
|
||||
0x76a0000003432L,
|
||||
0x77200000040b2L,
|
||||
0x77a0000004df2L,
|
||||
0x7820000003ab2L,
|
||||
0x78a0000000593L,
|
||||
0x79200000016b3L,
|
||||
0x79a00000049f4L,
|
||||
0x7a200000038b7L,
|
||||
0x7aa0000001461L,
|
||||
0x7b20000003822L,
|
||||
0x7ba0000003024L,
|
||||
0x7c20000002ca4L,
|
||||
0x7ca0000004d24L,
|
||||
0x7d20000003ce5L,
|
||||
0x7da00000050a7L,
|
||||
0x7e20000003927L,
|
||||
0x7ea0000002428L,
|
||||
0x7f20000004828L,
|
||||
0x7fa0000004c2bL,
|
||||
0x8020000002cacL,
|
||||
0x80a00000049ecL,
|
||||
0x812000000502dL,
|
||||
0x81a00000039edL,
|
||||
0x82200000052aeL,
|
||||
0x82a0000004830L,
|
||||
0x83200000050b0L,
|
||||
0x83a0000003930L,
|
||||
0x8420000004032L,
|
||||
0x84a0000004df3L,
|
||||
0x8520000002c34L,
|
||||
0x85a0000003434L,
|
||||
0x8620000003134L,
|
||||
0x86a00000050b6L,
|
||||
0x8720000003936L,
|
||||
0x87a0000003837L,
|
||||
0x88200000024b7L,
|
||||
0x88a00000038baL,
|
||||
0x8920000003922L,
|
||||
0x89a00000015e2L,
|
||||
0x8a20000003424L,
|
||||
0x8aa00000051e4L,
|
||||
0x8b20000003aa4L,
|
||||
0x8ba0000001a45L,
|
||||
0x8c200000030a7L,
|
||||
0x8ca000000512bL,
|
||||
0x8d20000002c2cL,
|
||||
0x8da000000342cL,
|
||||
0x8e2000000112cL,
|
||||
0x8ea000000312cL,
|
||||
0x8f2000000302dL,
|
||||
0x8fa00000032aeL,
|
||||
0x9020000005030L,
|
||||
0x90a0000004132L,
|
||||
0x9120000002df2L,
|
||||
0x91a00000035f2L,
|
||||
0x9220000004eb2L,
|
||||
0x92a0000004033L,
|
||||
0x93200000031f3L,
|
||||
0x93a0000000613L,
|
||||
0x9420000004034L,
|
||||
0x94a0000002d34L,
|
||||
0x95200000011f4L,
|
||||
0x95a00000031f4L,
|
||||
0x9620000005036L,
|
||||
0x96a00000030b6L,
|
||||
0x9720000004837L,
|
||||
0x97a0000003937L,
|
||||
0x98200000015f7L,
|
||||
0x98a0000004c22L,
|
||||
0x9920000005022L,
|
||||
0x99a00000039e2L,
|
||||
0x9a20000003524L,
|
||||
0x9aa00000022a5L,
|
||||
0x9b20000003926L,
|
||||
0x9ba0000003027L,
|
||||
0x9c20000003028L,
|
||||
0x9ca0000002ca8L,
|
||||
0x9d20000004d28L,
|
||||
0x9da0000005128L,
|
||||
0x9e200000014aaL,
|
||||
0x9ea000000342bL,
|
||||
0x9f2000000112bL,
|
||||
0x9fa000000312bL,
|
||||
0xa02000000402cL,
|
||||
0xa0a0000002d2cL,
|
||||
0xa120000002c2dL,
|
||||
0xa1a00000040adL,
|
||||
0xa220000004dedL,
|
||||
0xa2a00000051edL,
|
||||
0xa3200000052afL,
|
||||
0xa3a0000003030L,
|
||||
0xa420000004d30L,
|
||||
0xa4a0000005130L,
|
||||
0xa5200000049f0L,
|
||||
0xa5a0000003e50L,
|
||||
0xa620000000932L,
|
||||
0xa6a0000001df2L,
|
||||
0xa720000004133L,
|
||||
0xa7a0000002df3L,
|
||||
0xa8200000035f3L,
|
||||
0xa8a0000001d34L,
|
||||
0xa920000004134L,
|
||||
0xa9a0000002df4L,
|
||||
0xaa20000003135L,
|
||||
0xaaa00000010b7L,
|
||||
0xab200000039f7L,
|
||||
0xaba0000005061L,
|
||||
0xac200000054a2L,
|
||||
0xaca0000000582L,
|
||||
0xad20000004c23L,
|
||||
0xada0000005023L,
|
||||
0xae20000002de4L,
|
||||
0xaea0000001985L,
|
||||
0xaf20000005026L,
|
||||
0xafa00000030a6L,
|
||||
0xb020000003127L,
|
||||
0xb0a0000003aa7L,
|
||||
0xb120000002c28L,
|
||||
0xb1a0000003428L,
|
||||
0xb2200000051e8L,
|
||||
0xb2a00000038aaL,
|
||||
0xb32000000402bL,
|
||||
0xb3a0000002d2bL,
|
||||
0xb42000000352bL,
|
||||
0xb4a000000082cL,
|
||||
0xb5200000018acL,
|
||||
0xb5a0000001d2cL,
|
||||
0xb62000000412cL,
|
||||
0xb6a0000002decL,
|
||||
0xb7200000055ecL,
|
||||
0xb7a0000004eacL,
|
||||
0xb82000000402dL,
|
||||
0xb8a0000002d2dL,
|
||||
0xb9200000031edL,
|
||||
0xb9a0000001cb0L,
|
||||
0xba200000040b0L,
|
||||
0xbaa0000003130L,
|
||||
0xbb20000001932L,
|
||||
0xbba00000009f2L,
|
||||
0xbc20000002eb2L,
|
||||
0xbca00000036b2L,
|
||||
0xbd200000032b3L,
|
||||
0xbda00000016f5L,
|
||||
0xbe20000002c36L,
|
||||
0xbea0000004df6L,
|
||||
0xbf20000003037L,
|
||||
0xbfa0000004d37L,
|
||||
0xc0200000038b9L,
|
||||
0xc0a0000001981L,
|
||||
0xc120000000aa1L,
|
||||
0xc1a0000005ea1L,
|
||||
0xc220000003422L,
|
||||
0xc2a0000001122L,
|
||||
0xc320000003122L,
|
||||
0xc3a00000051e2L,
|
||||
0xc420000001de4L,
|
||||
0xc4a00000041e4L,
|
||||
0xc520000005126L,
|
||||
0xc5a0000004028L,
|
||||
0xc620000002d28L,
|
||||
0xc6a00000031e8L,
|
||||
0xc72000000382aL,
|
||||
0xc7a0000002debL,
|
||||
0xc8200000055ebL,
|
||||
0xc8a00000052abL,
|
||||
0xc92000000182cL,
|
||||
0xc9a0000001decL,
|
||||
0xca20000002dedL,
|
||||
0xcaa00000035edL,
|
||||
0xcb20000004eadL,
|
||||
0xcba0000002d30L,
|
||||
0xcc20000002eb4L,
|
||||
0xcca0000002022L,
|
||||
0xcd200000011e2L,
|
||||
0xcda00000031e2L,
|
||||
0xce200000026a2L,
|
||||
0xcea0000002de7L,
|
||||
0xcf20000003667L,
|
||||
0xcfa0000004128L,
|
||||
0xd020000002de8L,
|
||||
0xd0a00000052a8L,
|
||||
0xd1200000050aaL,
|
||||
0xd1a000000182dL,
|
||||
0xd2200000041edL,
|
||||
0xd2a0000004130L,
|
||||
0xd3200000052b0L,
|
||||
0xd3a0000005eb2L,
|
||||
0xd4200000019f4L,
|
||||
0xd4a0000004136L,
|
||||
0xd5200000008b7L,
|
||||
0xd5a00000031f7L,
|
||||
0xd620000004cb9L,
|
||||
0xd6a0000003939L,
|
||||
0xd7200000051faL,
|
||||
0xd7a0000001d22L,
|
||||
0xd820000002de2L,
|
||||
0xd8a0000004023L,
|
||||
0xd9200000031e3L,
|
||||
0xd9a0000002d26L,
|
||||
0xda200000021e7L,
|
||||
0xdaa0000004e07L,
|
||||
0xdb200000032a7L,
|
||||
0xdba00000041e8L,
|
||||
0xdc200000039eaL,
|
||||
0xdca00000019ecL,
|
||||
0xdd20000001830L,
|
||||
0xdda00000041f0L,
|
||||
0xde20000000554L,
|
||||
0xdea00000032b6L,
|
||||
0xdf20000004137L,
|
||||
0xdfa0000005ea4L,
|
||||
0xe020000002de6L,
|
||||
0xe0a0000001927L,
|
||||
0xe120000004d49L,
|
||||
0xe1a00000019edL,
|
||||
0xe220000001eadL,
|
||||
0xe2a0000001ab3L,
|
||||
0xe320000002934L,
|
||||
0xe3a0000003515L,
|
||||
0xe420000002924L,
|
||||
0xe4a00000019e8L,
|
||||
0xe5200000022a8L,
|
||||
0xe5a00000042a8L,
|
||||
0xe62000000342aL,
|
||||
0xe6a000000292cL,
|
||||
0xe72000000206fL,
|
||||
0xe7a00000042b0L,
|
||||
0xe820000005df7L,
|
||||
0xe8a00000040b9L,
|
||||
0xe9200000032baL,
|
||||
0xe9a0000001ea2L,
|
||||
0xea20000004c43L,
|
||||
0xeaa0000006427L,
|
||||
0xeb2000000402aL,
|
||||
0xeba00000008ebL,
|
||||
0xec20000000ab0L,
|
||||
0xeca00000042a3L,
|
||||
0xed20000002927L,
|
||||
0xeda0000004eaaL,
|
||||
0xee200000060b4L,
|
||||
0xeea00000021eaL,
|
||||
0xef200000065e2L,
|
||||
0xefa00000009eaL,
|
||||
0xf0200000006b1L,
|
||||
0xf0a00000042b9L,
|
||||
0xf120000006586L,
|
||||
0xf1a000000612dL,
|
||||
0xf220000001aaaL,
|
||||
0xf2a0000006026L,
|
||||
0xf3200000061e2L,
|
||||
0xf3a00000061e3L,
|
||||
0xf4200000061e6L,
|
||||
0xf4a0000000e98L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL4 {
|
||||
private DictDataL4() {}
|
||||
|
||||
static final int LEN = 4;
|
||||
static final int ROWS = 104;
|
||||
static final int COLS = 15;
|
||||
static final int WORDS_LEN = 932;
|
||||
static final int POS_LEN = 1560;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL4W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL4P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,941 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL4W0 {
|
||||
private DictDataL4W0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x3000009042eL,
|
||||
0xb00000a152eL,
|
||||
0x1300000714a7L,
|
||||
0x1b0000090424L,
|
||||
0x2300000715e4L,
|
||||
0x2b0000070427L,
|
||||
0x33000009042dL,
|
||||
0x3b0000090428L,
|
||||
0x430000091528L,
|
||||
0x4b00000916cfL,
|
||||
0x530000090437L,
|
||||
0x5b00000215e7L,
|
||||
0x630000093df6L,
|
||||
0x6b000007292dL,
|
||||
0x73000007293aL,
|
||||
0x7b00000914aeL,
|
||||
0x83000009b8a5L,
|
||||
0x8b0000071685L,
|
||||
0x930000072645L,
|
||||
0x9b00000a14b2L,
|
||||
0xa300000694aeL,
|
||||
0xab0000090432L,
|
||||
0xb30000071534L,
|
||||
0xbb00000716c5L,
|
||||
0xc300000714a8L,
|
||||
0xcb00000914abL,
|
||||
0xd300000914adL,
|
||||
0xdb000009a4b2L,
|
||||
0xe300000715f4L,
|
||||
0xeb00000614a4L,
|
||||
0xf3000002a644L,
|
||||
0xfb00000914a8L,
|
||||
0x103000009d0a9L,
|
||||
0x10b000007042dL,
|
||||
0x113000006842eL,
|
||||
0x11b000002b181L,
|
||||
0x123000002ad85L,
|
||||
0x12b00000a14a8L,
|
||||
0x13300000a042cL,
|
||||
0x13b00000684b4L,
|
||||
0x14300000914b7L,
|
||||
0x14b0000070422L,
|
||||
0x15300000a15e4L,
|
||||
0x15b00000614a8L,
|
||||
0x163000002b0a8L,
|
||||
0x16b00000a042dL,
|
||||
0x173000007160fL,
|
||||
0x17b0000090430L,
|
||||
0x18300000296f4L,
|
||||
0x18b00000614b6L,
|
||||
0x1930000091536L,
|
||||
0x19b00000a14b7L,
|
||||
0x1a300000914baL,
|
||||
0x1ab00000954a4L,
|
||||
0x1b300000615e4L,
|
||||
0x1bb0000083e45L,
|
||||
0x1c300000a0427L,
|
||||
0x1cb00000224adL,
|
||||
0x1d300000a15edL,
|
||||
0x1db000007153aL,
|
||||
0x1e30000098422L,
|
||||
0x1eb000002e8a4L,
|
||||
0x1f30000093de4L,
|
||||
0x1fb000005842dL,
|
||||
0x203000000b42dL,
|
||||
0x20b000002e9cfL,
|
||||
0x21300000594b7L,
|
||||
0x21b0000058436L,
|
||||
0x22300000a153aL,
|
||||
0x22b0000023de4L,
|
||||
0x23300000314a7L,
|
||||
0x23b0000093de8L,
|
||||
0x2430000029489L,
|
||||
0x24b000005d4acL,
|
||||
0x253000003152cL,
|
||||
0x25b000000c030L,
|
||||
0x26300000595e2L,
|
||||
0x26b000009042aL,
|
||||
0x273000005843aL,
|
||||
0x27b000005953aL,
|
||||
0x2830000073dfaL,
|
||||
0x28b000009a6a8L,
|
||||
0x29300000a4cb2L,
|
||||
0x29b00000615d3L,
|
||||
0x2a30000091693L,
|
||||
0x2ab000007d1e6L,
|
||||
0x2b3000009b8adL,
|
||||
0x2bb000005b8a4L,
|
||||
0x2c3000009b82bL,
|
||||
0x2cb00000a382bL,
|
||||
0x2d3000002382cL,
|
||||
0x2db00000239f2L,
|
||||
0x2e300000a38b6L,
|
||||
0x2eb00000956b6L,
|
||||
0x2f300000a38a2L,
|
||||
0x2fb000005b824L,
|
||||
0x30300000a55e6L,
|
||||
0x30b000009ad2eL,
|
||||
0x31300000a25efL,
|
||||
0x31b0000020693L,
|
||||
0x323000007d2a1L,
|
||||
0x32b0000023828L,
|
||||
0x33300000a4828L,
|
||||
0x33b000002392bL,
|
||||
0x34300000a39ebL,
|
||||
0x34b000003b82cL,
|
||||
0x3530000070590L,
|
||||
0x35b0000062693L,
|
||||
0x36300000a3837L,
|
||||
0x36b0000023822L,
|
||||
0x373000003b924L,
|
||||
0x37b0000024828L,
|
||||
0x38300000239edL,
|
||||
0x38b000004bdedL,
|
||||
0x39300000a4eb2L,
|
||||
0x39b0000061613L,
|
||||
0x3a30000080693L,
|
||||
0x3ab00000a4c36L,
|
||||
0x3b30000023936L,
|
||||
0x3bb00000248b7L,
|
||||
0x3c3000005b822L,
|
||||
0x3cb000003b827L,
|
||||
0x3d300000230a7L,
|
||||
0x3db00000239e8L,
|
||||
0x3e300000a3aabL,
|
||||
0x3eb000009b5f3L,
|
||||
0x3f3000006be93L,
|
||||
0x3fb000005c8b7L,
|
||||
0x403000003b822L,
|
||||
0x40b0000059590L,
|
||||
0x41300000a4d37L,
|
||||
0x41b000005d644L,
|
||||
0x42300000a08a8L,
|
||||
0x42b00000a35ebL,
|
||||
0x433000005d693L,
|
||||
0x43b000005b0b7L,
|
||||
0x44300000a3137L,
|
||||
0x44b00000a2065L,
|
||||
0x45300000a1cbaL,
|
||||
0x45b00000a2061L,
|
||||
0x46300000bd5eaL,
|
||||
0x46b000007292cL,
|
||||
0x473000006b126L,
|
||||
0x47b0000072930L,
|
||||
0x483000005a932L,
|
||||
0x48b0000022934L,
|
||||
0x4930000040df4L,
|
||||
0x49b00000330baL,
|
||||
0x4a300000832a8L,
|
||||
0x4ab000003b9eaL,
|
||||
0x4b30000052656L,
|
||||
0x4bb0000072937L,
|
||||
0x4c30000072926L,
|
||||
0x4cb000005a92bL,
|
||||
0x4d30000052582L,
|
||||
0x4db0000040d3aL,
|
||||
0x4e30000058c2aL,
|
||||
0x4eb00000c8822L,
|
||||
0x4f30000032936L,
|
||||
0x4fb00000714aeL,
|
||||
0x5030000071645L,
|
||||
0x50b000002b8b2L,
|
||||
0x513000000ba45L,
|
||||
0x51b00000295d3L,
|
||||
0x52300000714b4L,
|
||||
0x52b0000071485L,
|
||||
0x53300000238a5L,
|
||||
0x53b00000714acL,
|
||||
0x543000009152eL,
|
||||
0x54b000002c832L,
|
||||
0x55300000724b2L,
|
||||
0x55b00000914b4L,
|
||||
0x56300000914acL,
|
||||
0x56b00000714adL,
|
||||
0x573000007164fL,
|
||||
0x57b00000290b2L,
|
||||
0x58300000214b2L,
|
||||
0x58b00000724b3L,
|
||||
0x5930000091481L,
|
||||
0x59b00000715a1L,
|
||||
0x5a30000071524L,
|
||||
0x5ab0000023925L,
|
||||
0x5b3000002b8a7L,
|
||||
0x5bb000002b82bL,
|
||||
0x5c3000007042cL,
|
||||
0x5cb00000994acL,
|
||||
0x5d3000002042eL,
|
||||
0x5db00000a1532L,
|
||||
0x5e300000915f2L,
|
||||
0x5eb000000c833L,
|
||||
0x5f3000002c933L,
|
||||
0x5fb0000029593L,
|
||||
0x6030000024821L,
|
||||
0x60b0000071601L,
|
||||
0x613000002b641L,
|
||||
0x61b00000714a2L,
|
||||
0x623000002d024L,
|
||||
0x62b00000214a4L,
|
||||
0x6330000091524L,
|
||||
0x63b000002a5cbL,
|
||||
0x643000002d02cL,
|
||||
0x64b00000214acL,
|
||||
0x65300000914b0L,
|
||||
0x65b0000020432L,
|
||||
0x66300000814b2L,
|
||||
0x66b00000995f2L,
|
||||
0x67300000a15f2L,
|
||||
0x67b000002cdf2L,
|
||||
0x683000002d133L,
|
||||
0x68b00000a1534L,
|
||||
0x69300000915f4L,
|
||||
0x69b0000071655L,
|
||||
0x6a300000914b6L,
|
||||
0x6ab0000061481L,
|
||||
0x6b3000002d161L,
|
||||
0x6bb00000914a2L,
|
||||
0x6c30000029642L,
|
||||
0x6cb000002b024L,
|
||||
0x6d3000000d024L,
|
||||
0x6db00000604a4L,
|
||||
0x6e3000003a5c5L,
|
||||
0x6eb0000070428L,
|
||||
0x6f3000002d0a8L,
|
||||
0x6fb00000614abL,
|
||||
0x703000002902cL,
|
||||
0x70b00000594acL,
|
||||
0x71300000a152cL,
|
||||
0x71b00000915ecL,
|
||||
0x723000002d02dL,
|
||||
0x72b00000290adL,
|
||||
0x73300000614adL,
|
||||
0x73b000009152dL,
|
||||
0x743000000b92dL,
|
||||
0x74b00000314aeL,
|
||||
0x753000009d4aeL,
|
||||
0x75b00000695eeL,
|
||||
0x763000002924fL,
|
||||
0x76b0000058432L,
|
||||
0x7730000068432L,
|
||||
0x77b0000069532L,
|
||||
0x78300000291f2L,
|
||||
0x78b0000060434L,
|
||||
0x7930000029514L,
|
||||
0x79b0000069481L,
|
||||
0x7a300000a14a2L,
|
||||
0x7ab0000020424L,
|
||||
0x7b3000002b424L,
|
||||
0x7bb000006be45L,
|
||||
0x7c30000090427L,
|
||||
0x7cb000002d027L,
|
||||
0x7d300000614a7L,
|
||||
0x7db000002b0a7L,
|
||||
0x7e3000009842bL,
|
||||
0x7eb000002902bL,
|
||||
0x7f300000594abL,
|
||||
0x7fb000009952bL,
|
||||
0x80300000394acL,
|
||||
0x80b0000029cacL,
|
||||
0x81300000224acL,
|
||||
0x81b000002d8acL,
|
||||
0x823000002152cL,
|
||||
0x82b00000915edL,
|
||||
0x83300000a3deeL,
|
||||
0x83b00000714efL,
|
||||
0x84300000716cfL,
|
||||
0x84b0000091530L,
|
||||
0x8530000029590L,
|
||||
0x85b00000715f0L,
|
||||
0x8630000080432L,
|
||||
0x86b000009d4b2L,
|
||||
0x8730000081532L,
|
||||
0x87b00000695f2L,
|
||||
0x883000002b5f2L,
|
||||
0x88b0000058434L,
|
||||
0x893000002c034L,
|
||||
0x89b000002b534L,
|
||||
0x8a30000073df4L,
|
||||
0x8ab000002b0b6L,
|
||||
0x8b30000070437L,
|
||||
0x8bb000002c837L,
|
||||
0x8c300000994b7L,
|
||||
0x8cb0000068481L,
|
||||
0x8d30000091522L,
|
||||
0x8db00000291e4L,
|
||||
0x8e3000002caa4L,
|
||||
0x8eb0000030645L,
|
||||
0x8f300000a24a7L,
|
||||
0x8fb0000098428L,
|
||||
0x90300000a0428L,
|
||||
0x90b00000915e8L,
|
||||
0x913000006042bL,
|
||||
0x91b000004958bL,
|
||||
0x9230000029c2cL,
|
||||
0x92b0000073decL,
|
||||
0x933000006042dL,
|
||||
0x93b00000ab8adL,
|
||||
0x94300000995edL,
|
||||
0x94b000005d4aeL,
|
||||
0x9530000028d2eL,
|
||||
0x95b0000023deeL,
|
||||
0x96300000a1530L,
|
||||
0x96b0000028c32L,
|
||||
0x97300000815f2L,
|
||||
0x97b000009bdf2L,
|
||||
0x98300000314b4L,
|
||||
0x98b00000726b4L,
|
||||
0x9930000098436L,
|
||||
0x99b0000099536L,
|
||||
0x9a300000915f6L,
|
||||
0x9ab00000214b7L,
|
||||
0x9b30000061441L,
|
||||
0x9bb00000a0422L,
|
||||
0x9c300000915e2L,
|
||||
0x9cb0000038424L,
|
||||
0x9d30000081524L,
|
||||
0x9db00000595e4L,
|
||||
0x9e30000061745L,
|
||||
0x9eb000002cc26L,
|
||||
0x9f30000091526L,
|
||||
0x9fb000002b427L,
|
||||
0xa0300000624a7L,
|
||||
0xa0b0000060428L,
|
||||
0xa1300000624a8L,
|
||||
0xa1b000004b0a8L,
|
||||
0xa23000005842bL,
|
||||
0xa2b00000615ebL,
|
||||
0xa33000003842cL,
|
||||
0xa3b00000314acL,
|
||||
0xa43000003952cL,
|
||||
0xa4b000008152cL,
|
||||
0xa53000002d92cL,
|
||||
0xa5b000006242dL,
|
||||
0xa6300000291edL,
|
||||
0xa6b00000215edL,
|
||||
0xa730000073dedL,
|
||||
0xa7b000009144fL,
|
||||
0xa8300000249efL,
|
||||
0xa8b00000a4defL,
|
||||
0xa930000060430L,
|
||||
0xa9b0000073d30L,
|
||||
0xaa300000995f0L,
|
||||
0xaab0000023df2L,
|
||||
0xab3000009a6b2L,
|
||||
0xabb00000a26b2L,
|
||||
0xac3000009d433L,
|
||||
0xacb00000815f3L,
|
||||
0xad3000007d1f4L,
|
||||
0xadb000004d654L,
|
||||
0xae30000061536L,
|
||||
0xaeb00000a15f6L,
|
||||
0xaf30000029037L,
|
||||
0xafb00000a1537L,
|
||||
0xb03000009153aL,
|
||||
0xb0b00000715faL,
|
||||
0xb13000002b9faL,
|
||||
0xb1b0000021522L,
|
||||
0xb23000009bde4L,
|
||||
0xb2b00000616a4L,
|
||||
0xb330000092426L,
|
||||
0xb3b00000a24a6L,
|
||||
0xb43000002d827L,
|
||||
0xb4b00000954a7L,
|
||||
0xb530000058428L,
|
||||
0xb5b00000215e8L,
|
||||
0xb63000009d4abL,
|
||||
0xb6b00000595ebL,
|
||||
0xb730000093debL,
|
||||
0xb7b000009bdecL,
|
||||
0xb83000002d9ecL,
|
||||
0xb8b000003842dL,
|
||||
0xb930000093dedL,
|
||||
0xb9b0000059530L,
|
||||
0xba3000005bdf2L,
|
||||
0xbab000006bdf2L,
|
||||
0xbb3000002e9f2L,
|
||||
0xbbb00000626b2L,
|
||||
0xbc3000007b1f3L,
|
||||
0xbcb00000615f6L,
|
||||
0xbd3000002ac37L,
|
||||
0xbdb0000061537L,
|
||||
0xbe300000615e2L,
|
||||
0xbeb000002ac23L,
|
||||
0xbf3000005d4a4L,
|
||||
0xbfb0000031524L,
|
||||
0xc03000002b126L,
|
||||
0xc0b00000605e7L,
|
||||
0xc130000093de7L,
|
||||
0xc1b000009d4a8L,
|
||||
0xc2300000595e8L,
|
||||
0xc2b00000799c9L,
|
||||
0xc33000007b12bL,
|
||||
0xc3b000009bdebL,
|
||||
0xc430000023decL,
|
||||
0xc4b000009a6acL,
|
||||
0xc530000029dedL,
|
||||
0xc5b00000bd42eL,
|
||||
0xc630000081530L,
|
||||
0xc6b00000726b0L,
|
||||
0xc7300000a38b2L,
|
||||
0xc7b000005a6b2L,
|
||||
0xc83000006a6b2L,
|
||||
0xc8b0000038436L,
|
||||
0xc930000058437L,
|
||||
0xc9b0000073df7L,
|
||||
0xca3000002043aL,
|
||||
0xcab000006043aL,
|
||||
0xcb300000814baL,
|
||||
0xcbb0000029cbaL,
|
||||
0xcc300000624baL,
|
||||
0xccb000006153aL,
|
||||
0xcd300000a15faL,
|
||||
0xcdb00000695e2L,
|
||||
0xce30000093de2L,
|
||||
0xceb000002c023L,
|
||||
0xcf300000291e3L,
|
||||
0xcfb00000a3de7L,
|
||||
0xd030000029de8L,
|
||||
0xd0b000002c1e8L,
|
||||
0xd130000063debL,
|
||||
0xd1b000005bdecL,
|
||||
0xd2300000226acL,
|
||||
0xd2b000009a6adL,
|
||||
0xd3300000248aeL,
|
||||
0xd3b00000a4caeL,
|
||||
0xd43000009d430L,
|
||||
0xd4b00000815f0L,
|
||||
0xd53000009bdf0L,
|
||||
0xd5b00000a3df0L,
|
||||
0xd6300000bd432L,
|
||||
0xd6b000003a6b2L,
|
||||
0xd730000048433L,
|
||||
0xd7b0000048434L,
|
||||
0xd8300000a38b4L,
|
||||
0xd8b0000038437L,
|
||||
0xd930000039537L,
|
||||
0xd9b000005a4baL,
|
||||
0xda300000395e2L,
|
||||
0xdab000009bde2L,
|
||||
0xdb300000a3de2L,
|
||||
0xdbb000002ade3L,
|
||||
0xdc3000000b1e3L,
|
||||
0xdcb0000083de4L,
|
||||
0xdd3000005a6a4L,
|
||||
0xddb000006a6a4L,
|
||||
0xde300000956a4L,
|
||||
0xdeb0000030427L,
|
||||
0xdf3000002902aL,
|
||||
0xdfb00000748abL,
|
||||
0xe03000009b8acL,
|
||||
0xe0b000003bdecL,
|
||||
0xe130000083decL,
|
||||
0xe1b000005a6acL,
|
||||
0xe23000002956fL,
|
||||
0xe2b0000063df0L,
|
||||
0xe330000023832L,
|
||||
0xe3b0000033df2L,
|
||||
0xe43000003a6b4L,
|
||||
0xe4b000003843aL,
|
||||
0xe5300000605faL,
|
||||
0xe5b00000595faL,
|
||||
0xe63000009d241L,
|
||||
0xe6b0000023de2L,
|
||||
0xe73000009a6a2L,
|
||||
0xe7b00000a26a2L,
|
||||
0xe830000029823L,
|
||||
0xe8b000000b5e3L,
|
||||
0xe93000009b824L,
|
||||
0xe9b00000495e4L,
|
||||
0xea3000007a065L,
|
||||
0xeab00000315e8L,
|
||||
0xeb3000007b5e8L,
|
||||
0xebb00000a55e8L,
|
||||
0xec300000226a8L,
|
||||
0xecb00000626a8L,
|
||||
0xed300000814aaL,
|
||||
0xedb00000a38abL,
|
||||
0xee30000083debL,
|
||||
0xeeb00000255ebL,
|
||||
0xef3000009b82cL,
|
||||
0xefb00000956adL,
|
||||
0xf03000002a58fL,
|
||||
0xf0b00000a10b2L,
|
||||
0xf1300000bd5f2L,
|
||||
0xf1b0000093dd3L,
|
||||
0xf230000090693L,
|
||||
0xf2b0000023834L,
|
||||
0xf3300000a4cb4L,
|
||||
0xf3b00000626b6L,
|
||||
0xf4300000315e2L,
|
||||
0xf4b000006bde2L,
|
||||
0xf53000002e9e2L,
|
||||
0xf5b0000071642L,
|
||||
0xf630000063de3L,
|
||||
0xf6b0000033de4L,
|
||||
0xf73000007caa5L,
|
||||
0xf7b00000255e7L,
|
||||
0xf830000048428L,
|
||||
0xf8b000009b8a8L,
|
||||
0xf93000003bde8L,
|
||||
0xf9b0000083de8L,
|
||||
0xfa300000255e8L,
|
||||
0xfab00000956a8L,
|
||||
0xfb300000615eaL,
|
||||
0xfbb000009c8abL,
|
||||
0xfc3000009d0acL,
|
||||
0xfcb00000a392cL,
|
||||
0xfd3000009b82dL,
|
||||
0xfdb000000e42dL,
|
||||
0xfe3000002eaadL,
|
||||
0xfeb00000956b0L,
|
||||
0xff3000003b832L,
|
||||
0xffb000009d132L,
|
||||
0x100300000a1593L,
|
||||
0x100b0000061693L,
|
||||
0x1013000005b834L,
|
||||
0x101b00000a30b4L,
|
||||
0x1023000006c8b4L,
|
||||
0x102b00000bd5f4L,
|
||||
0x10330000059654L,
|
||||
0x103b0000048422L,
|
||||
0x1043000003bde2L,
|
||||
0x104b000005a6a2L,
|
||||
0x105300000956a2L,
|
||||
0x105b000009b827L,
|
||||
0x106300000bd427L,
|
||||
0x106b000009b828L,
|
||||
0x107300000a48a8L,
|
||||
0x107b00000a2dc9L,
|
||||
0x1083000003842aL,
|
||||
0x108b000004baaaL,
|
||||
0x109300000605cbL,
|
||||
0x109b00000a064bL,
|
||||
0x10a300000a4c2cL,
|
||||
0x10ab00000a39ecL,
|
||||
0x10b3000002382dL,
|
||||
0x10bb000009c82dL,
|
||||
0x10c300000a4cadL,
|
||||
0x10cb000009d0adL,
|
||||
0x10d3000006c9eeL,
|
||||
0x10db000009c8b0L,
|
||||
0x10e300000a1650L,
|
||||
0x10eb000003b932L,
|
||||
0x10f3000009d1f2L,
|
||||
0x10fb000009acb3L,
|
||||
0x110300000a15b3L,
|
||||
0x110b00000805d3L,
|
||||
0x1113000005a5d3L,
|
||||
0x111b0000070613L,
|
||||
0x11230000060693L,
|
||||
0x112b0000069693L,
|
||||
0x1133000003b834L,
|
||||
0x113b000009c8b6L,
|
||||
0x1143000009b8b7L,
|
||||
0x114b00000255f7L,
|
||||
0x1153000006bdfaL,
|
||||
0x115b00000a55faL,
|
||||
0x116300000226baL,
|
||||
0x116b00000a38a3L,
|
||||
0x117300000bd4a5L,
|
||||
0x117b0000098647L,
|
||||
0x118300000a3928L,
|
||||
0x118b00000a4c2bL,
|
||||
0x1193000005c8abL,
|
||||
0x119b000005b92cL,
|
||||
0x11a300000a4d2cL,
|
||||
0x11ab000005b82dL,
|
||||
0x11b3000005c8adL,
|
||||
0x11bb00000bd5edL,
|
||||
0x11c300000c856fL,
|
||||
0x11cb00000292afL,
|
||||
0x11d30000023830L,
|
||||
0x11db00000a4830L,
|
||||
0x11e300000a4cb0L,
|
||||
0x11eb0000072613L,
|
||||
0x11f30000058693L,
|
||||
0x11fb0000068693L,
|
||||
0x12030000080654L,
|
||||
0x120b00000a4cb6L,
|
||||
0x121300000bd437L,
|
||||
0x121b00000956baL,
|
||||
0x122300000a4ca2L,
|
||||
0x122b0000073e42L,
|
||||
0x1233000009b826L,
|
||||
0x123b00000a4c27L,
|
||||
0x1243000005b828L,
|
||||
0x124b0000023deaL,
|
||||
0x125300000a4d2bL,
|
||||
0x125b000009d12bL,
|
||||
0x1263000009858bL,
|
||||
0x126b00000805cbL,
|
||||
0x1273000004bdebL,
|
||||
0x127b00000a49ebL,
|
||||
0x128300000a3e4bL,
|
||||
0x128b00000a1cacL,
|
||||
0x129300000249ecL,
|
||||
0x129b00000a4decL,
|
||||
0x12a3000005c82dL,
|
||||
0x12ab00000230adL,
|
||||
0x12b3000009cd2dL,
|
||||
0x12bb00000a4d2dL,
|
||||
0x12c3000009cc30L,
|
||||
0x12cb00000a4c30L,
|
||||
0x12d30000070473L,
|
||||
0x12db0000058593L,
|
||||
0x12e300000a3d93L,
|
||||
0x12eb000003b9f3L,
|
||||
0x12f3000003b9f4L,
|
||||
0x12fb0000082654L,
|
||||
0x1303000005be54L,
|
||||
0x130b00000a5654L,
|
||||
0x13130000023837L,
|
||||
0x131b00000a4cb7L,
|
||||
0x132300000a3937L,
|
||||
0x132b0000009df9L,
|
||||
0x133300000a30a2L,
|
||||
0x133b0000023922L,
|
||||
0x134300000a39e2L,
|
||||
0x134b00000bd5e2L,
|
||||
0x135300000a2642L,
|
||||
0x135b0000070583L,
|
||||
0x13630000098587L,
|
||||
0x136b000004bde7L,
|
||||
0x13730000068647L,
|
||||
0x137b00000a3e47L,
|
||||
0x1383000009b028L,
|
||||
0x138b00000a3028L,
|
||||
0x1393000003b828L,
|
||||
0x139b000009aca8L,
|
||||
0x13a300000230a8L,
|
||||
0x13ab000004bde8L,
|
||||
0x13b3000004b2aaL,
|
||||
0x13bb000006958bL,
|
||||
0x13c300000a4debL,
|
||||
0x13cb000009d1ebL,
|
||||
0x13d3000008064bL,
|
||||
0x13db000003b9ecL,
|
||||
0x13e3000009b42dL,
|
||||
0x13eb000005b0adL,
|
||||
0x13f300000a312dL,
|
||||
0x13fb00000a3aadL,
|
||||
0x1403000003b830L,
|
||||
0x140b000005c830L,
|
||||
0x1413000005b930L,
|
||||
0x141b00000a4d30L,
|
||||
0x14230000098590L,
|
||||
0x142b00000a0590L,
|
||||
0x143300000239f0L,
|
||||
0x143b00000a49f0L,
|
||||
0x14430000058650L,
|
||||
0x144b0000083432L,
|
||||
0x145300000a2513L,
|
||||
0x145b0000038593L,
|
||||
0x14630000080593L,
|
||||
0x146b000006a593L,
|
||||
0x14730000059613L,
|
||||
0x147b00000a2613L,
|
||||
0x1483000005be93L,
|
||||
0x148b000004e034L,
|
||||
0x1493000009b036L,
|
||||
0x149b00000a3036L,
|
||||
0x14a3000003b836L,
|
||||
0x14ab00000230b6L,
|
||||
0x14b300000239f6L,
|
||||
0x14bb0000023937L,
|
||||
0x14c3000002383aL,
|
||||
0x14cb000003c8a2L,
|
||||
0x14d3000005b922L,
|
||||
0x14db00000239e2L,
|
||||
0x14e30000058642L,
|
||||
0x14eb0000062642L,
|
||||
0x14f30000024823L,
|
||||
0x14fb00000a4c23L,
|
||||
0x150300000849e4L,
|
||||
0x150b0000099586L,
|
||||
0x1513000009a646L,
|
||||
0x151b0000099127L,
|
||||
0x1523000003b927L,
|
||||
0x152b0000020587L,
|
||||
0x15330000080647L,
|
||||
0x153b000006b0a8L,
|
||||
0x154300000234a8L,
|
||||
0x154b000005b9e8L,
|
||||
0x1553000006b02bL,
|
||||
0x155b000008158bL,
|
||||
0x1563000009bd8bL,
|
||||
0x156b0000083dcbL,
|
||||
0x157300000655cbL,
|
||||
0x157b000006be4bL,
|
||||
0x158300000a1d2cL,
|
||||
0x158b00000a4eacL,
|
||||
0x1593000002312dL,
|
||||
0x159b000002deafL,
|
||||
0x15a300000a2c30L,
|
||||
0x15ab00000a4df0L,
|
||||
0x15b3000005a650L,
|
||||
0x15bb00000a3ab0L,
|
||||
0x15c300000a3d13L,
|
||||
0x15cb000005bd93L,
|
||||
0x15d300000a3e13L,
|
||||
0x15db0000030693L,
|
||||
0x15e30000083e93L,
|
||||
0x15eb000005b1f4L,
|
||||
0x15f3000005cab4L,
|
||||
0x15fb0000059596L,
|
||||
0x1603000005b9f6L,
|
||||
0x160b000009b037L,
|
||||
0x161300000a3037L,
|
||||
0x161b000003b837L,
|
||||
0x1623000006c837L,
|
||||
0x162b00000239f7L,
|
||||
0x16330000058657L,
|
||||
0x163b0000020582L,
|
||||
0x164300000249e2L,
|
||||
0x164b000005b1e4L,
|
||||
0x165300000a0586L,
|
||||
0x165b000004bde6L,
|
||||
0x166300000a49e6L,
|
||||
0x166b00000991e7L,
|
||||
0x167300000830a8L,
|
||||
0x167b000008058bL,
|
||||
0x1683000005a58bL,
|
||||
0x168b00000a4eabL,
|
||||
0x1693000008342cL,
|
||||
0x169b0000058590L,
|
||||
0x16a300000a3d90L,
|
||||
0x16ab000009b1f0L,
|
||||
0x16b300000835f2L,
|
||||
0x16bb00000348b6L,
|
||||
0x16c30000058596L,
|
||||
0x16cb0000068596L,
|
||||
0x16d300000a3d96L,
|
||||
0x16db000005c9f6L,
|
||||
0x16e3000006c9f6L,
|
||||
0x16eb00000249f7L,
|
||||
0x16f3000004bdfaL,
|
||||
0x16fb00000a1503L,
|
||||
0x1703000003d644L,
|
||||
0x170b0000030647L,
|
||||
0x1713000008342bL,
|
||||
0x171b000005bd8bL,
|
||||
0x1723000009d58bL,
|
||||
0x172b000005d64bL,
|
||||
0x173300000a192cL,
|
||||
0x173b00000a2eacL,
|
||||
0x1743000002e2acL,
|
||||
0x174b0000083e50L,
|
||||
0x17530000033e93L,
|
||||
0x175b0000038596L,
|
||||
0x17630000023137L,
|
||||
0x176b000006c9f7L,
|
||||
0x1773000003b93aL,
|
||||
0x177b000005a582L,
|
||||
0x1783000003c9e2L,
|
||||
0x178b0000044c23L,
|
||||
0x179300000a31e3L,
|
||||
0x179b000006be46L,
|
||||
0x17a30000083d8bL,
|
||||
0x17ab00000686ebL,
|
||||
0x17b30000040deeL,
|
||||
0x17bb000009d590L,
|
||||
0x17c30000058df2L,
|
||||
0x17cb0000065613L,
|
||||
0x17d3000001d654L,
|
||||
0x17db000005b1f6L,
|
||||
0x17e300000849f7L,
|
||||
0x17eb000005b839L,
|
||||
0x17f3000006b03aL,
|
||||
0x17fb000003b9faL,
|
||||
0x1803000005bd82L,
|
||||
0x180b00000a5582L,
|
||||
0x181300000a32a2L,
|
||||
0x181b0000034aa4L,
|
||||
0x182300000a1927L,
|
||||
0x182b0000033e47L,
|
||||
0x18330000033028L,
|
||||
0x183b0000040c2cL,
|
||||
0x18430000033e50L,
|
||||
0x184b0000022932L,
|
||||
0x185300000bbd13L,
|
||||
0x185b000003b1f6L,
|
||||
0x1863000005b1f7L,
|
||||
0x186b000003c9faL,
|
||||
0x1873000003d642L,
|
||||
0x187b00000c8647L,
|
||||
0x18830000041d28L,
|
||||
0x188b0000058d2bL,
|
||||
0x189300000c902cL,
|
||||
0x189b0000040cb0L,
|
||||
0x18a300000835f0L,
|
||||
0x18ab000002c334L,
|
||||
0x18b300000a32baL,
|
||||
0x18bb0000044ea2L,
|
||||
0x18c30000083d86L,
|
||||
0x18cb00000331e7L,
|
||||
0x18d300000cb9f0L,
|
||||
0x18db0000082932L,
|
||||
0x18e3000003d596L,
|
||||
0x18eb00000586faL,
|
||||
0x18f30000031503L,
|
||||
0x18fb0000082503L,
|
||||
0x1903000009a928L,
|
||||
0x190b000005baaaL,
|
||||
0x1913000005a92cL,
|
||||
0x191b000006292dL,
|
||||
0x192300000331f7L,
|
||||
0x192b000005b2baL,
|
||||
0x193300000a2922L,
|
||||
0x193b000005caaaL,
|
||||
0x19430000062930L,
|
||||
0x194b000009a937L,
|
||||
0x19530000062922L,
|
||||
0x195b00000cd123L,
|
||||
0x19630000015583L,
|
||||
0x196b0000022937L,
|
||||
0x197300000a293aL,
|
||||
0x197b000003292cL,
|
||||
0x19830000082930L,
|
||||
0x198b000005a937L,
|
||||
0x19930000058ea6L,
|
||||
0x199b00000ccaaaL,
|
||||
0x19a300000d682aL,
|
||||
0x19ab0000040deaL,
|
||||
0x19b30000032937L,
|
||||
0x19bb00000ce0b3L,
|
||||
0x19c300000715c5L,
|
||||
0x19cb000002b9c5L,
|
||||
0x19d300000714b2L,
|
||||
0x19db000002b9c9L,
|
||||
0x19e3000002c82eL,
|
||||
0x19eb00000a14aeL,
|
||||
0x19f3000002d1c1L,
|
||||
0x19fb0000071681L,
|
||||
0x1a0300000714a4L,
|
||||
0x1a0b00000a48a5L,
|
||||
0x1a1300000291c5L,
|
||||
0x1a1b0000091685L,
|
||||
0x1a23000002b8acL,
|
||||
0x1a2b0000073caeL,
|
||||
0x1a3300000715eeL,
|
||||
0x1a3b000002b9eeL,
|
||||
0x1a4300000994b2L,
|
||||
0x1a4b000002c8b4L,
|
||||
0x1a530000029654L,
|
||||
0x1a5b0000071581L,
|
||||
0x1a630000099641L,
|
||||
0x1a6b00000914a4L,
|
||||
0x1a7300000a4ca5L,
|
||||
0x1a7b0000070585L,
|
||||
0x1a8300000714abL,
|
||||
0x1a8b000002b4aeL,
|
||||
0x1a93000007c8aeL,
|
||||
0x1a9b000009952eL,
|
||||
0x1aa3000000c832L,
|
||||
0x1aab00000614b2L,
|
||||
0x1ab3000000c8b3L,
|
||||
0x1abb0000071533L,
|
||||
0x1ac30000029693L,
|
||||
0x1acb000000b834L,
|
||||
0x1ad3000009c821L,
|
||||
0x1adb0000071561L,
|
||||
0x1ae3000004d1c1L,
|
||||
0x1aeb0000073e41L,
|
||||
0x1af3000002ce61L,
|
||||
0x1afb00000a14a4L,
|
||||
0x1b0300000a30a5L,
|
||||
0x1b0b0000029dc5L,
|
||||
0x1b13000009c8a9L,
|
||||
0x1b1b00000291c9L,
|
||||
0x1b2300000a14acL,
|
||||
0x1b2b000002b92cL,
|
||||
0x1b33000000902eL,
|
||||
0x1b3b000002b42eL,
|
||||
0x1b43000004cc2eL,
|
||||
0x1b4b00000714b0L,
|
||||
0x1b53000002b8b0L,
|
||||
0x1b5b0000098432L,
|
||||
0x1b6300000a0432L,
|
||||
0x1b6b0000029032L,
|
||||
0x1b7300000604b2L,
|
||||
0x1b7b00000a24b2L,
|
||||
0x1b83000002d132L,
|
||||
0x1b8b0000090433L,
|
||||
0x1b930000091533L,
|
||||
0x1b9b000002b0b4L,
|
||||
0x1ba3000002b9f4L,
|
||||
0x1bab00000714b6L,
|
||||
0x1bb300000a4c21L,
|
||||
0x1bbb0000099581L,
|
||||
0x1bc300000915a1L,
|
||||
0x1bcb000002b8a2L,
|
||||
0x1bd300000290a4L,
|
||||
0x1bdb000002b0a4L,
|
||||
0x1be3000000b924L,
|
||||
0x1beb0000061485L,
|
||||
0x1bf300000a4d25L,
|
||||
0x1bfb0000029e45L,
|
||||
0x1c03000009be45L,
|
||||
0x1c0b00000916c5L,
|
||||
0x1c1300000914a7L,
|
||||
0x1c1b000002c8a8L,
|
||||
0x1c2300000994abL,
|
||||
0x1c2b00000a14abL,
|
||||
0x1c33000007152bL,
|
||||
0x1c3b000002b92bL,
|
||||
0x1c43000009042cL,
|
||||
0x1c4b00000290acL,
|
||||
0x1c53000009152cL,
|
||||
0x1c5b000002c92cL,
|
||||
0x1c63000002b9ecL,
|
||||
0x1c6b000000b82dL,
|
||||
0x1c73000002c82dL,
|
||||
0x1c7b00000994adL,
|
||||
0x1c8300000a14adL,
|
||||
0x1c8b000002d0adL,
|
||||
0x1c93000007152dL,
|
||||
0x1c9b000002b92dL,
|
||||
0x1ca300000291eeL,
|
||||
0x1cab00000615eeL,
|
||||
0x1cb3000000d1eeL,
|
||||
0x1cbb0000029650L,
|
||||
0x1cc3000002ac32L,
|
||||
0x1ccb0000029132L,
|
||||
0x1cd3000002bab2L,
|
||||
0x1cdb000004c833L,
|
||||
0x1ce300000604b3L,
|
||||
0x1ceb000000b0b3L,
|
||||
0x1cf3000002b034L,
|
||||
0x1cfb00000594b4L,
|
||||
0x1d0300000694b4L,
|
||||
0x1d0b000002ba55L,
|
||||
0x1d130000029656L,
|
||||
0x1d1b00000714b7L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL5 {
|
||||
private DictDataL5() {}
|
||||
|
||||
static final int LEN = 5;
|
||||
static final int ROWS = 130;
|
||||
static final int COLS = 38;
|
||||
static final int WORDS_LEN = 2399;
|
||||
static final int POS_LEN = 4940;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL5W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL5P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL6 {
|
||||
private DictDataL6() {}
|
||||
|
||||
static final int LEN = 6;
|
||||
static final int ROWS = 156;
|
||||
static final int COLS = 38;
|
||||
static final int WORDS_LEN = 2382;
|
||||
static final int POS_LEN = 5928;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL6W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL6P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,46 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL7 {
|
||||
private DictDataL7() {}
|
||||
|
||||
static final int LEN = 7;
|
||||
static final int ROWS = 182;
|
||||
static final int COLS = 99;
|
||||
static final int WORDS_LEN = 6281;
|
||||
static final int POS_LEN = 18018;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL7W0.get();
|
||||
}
|
||||
|
||||
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());
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,45 +0,0 @@
|
||||
package puzzle.dict800;
|
||||
|
||||
public final class DictDataL8 {
|
||||
private DictDataL8() {}
|
||||
|
||||
static final int LEN = 8;
|
||||
static final int ROWS = 208;
|
||||
static final int COLS = 61;
|
||||
static final int WORDS_LEN = 3889;
|
||||
static final int POS_LEN = 12688;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL8W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
long[] out = new long[POS_LEN];
|
||||
int k = 0;
|
||||
k = copy(out, k, DictDataL8P0.get());
|
||||
k = copy(out, k, DictDataL8P1.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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,19 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictData {
|
||||
private DictData() {}
|
||||
|
||||
public static final puzzle.SwedishGenerator.Dict DICT900 = build();
|
||||
|
||||
private static puzzle.SwedishGenerator.Dict build() {
|
||||
puzzle.SwedishGenerator.DictEntry[] idx = new puzzle.SwedishGenerator.DictEntry[9];
|
||||
idx[2] = DictDataL2.entry();
|
||||
idx[3] = DictDataL3.entry();
|
||||
idx[4] = DictDataL4.entry();
|
||||
idx[5] = DictDataL5.entry();
|
||||
idx[6] = DictDataL6.entry();
|
||||
idx[7] = DictDataL7.entry();
|
||||
idx[8] = DictDataL8.entry();
|
||||
return new puzzle.SwedishGenerator.Dict(idx, 38691);
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL2 {
|
||||
private DictDataL2() {}
|
||||
|
||||
static final int LEN = 2;
|
||||
static final int ROWS = 52;
|
||||
static final int COLS = 2;
|
||||
static final int WORDS_LEN = 120;
|
||||
static final int POS_LEN = 104;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL2W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL2P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL2P0 {
|
||||
private DictDataL2P0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x2210a009040800L,
|
||||
0x8000004108008L,
|
||||
0x0L,
|
||||
0x108000010100L,
|
||||
0x0L,
|
||||
0x55000200200L,
|
||||
0x2040000200000008L,
|
||||
0x400L,
|
||||
0x4084630080000003L,
|
||||
0xe00080000000L,
|
||||
0x0L,
|
||||
0x20800L,
|
||||
0x100000000010000L,
|
||||
0x1000L,
|
||||
0x8000000000004000L,
|
||||
0x2000002010L,
|
||||
0x208000000081410L,
|
||||
0x40000002000000L,
|
||||
0x400100L,
|
||||
0x20008000000L,
|
||||
0x400000000000000L,
|
||||
0x10000000000020L,
|
||||
0x800000402000000L,
|
||||
0x1L,
|
||||
0x804002000L,
|
||||
0x810000042L,
|
||||
0x800000008200L,
|
||||
0x0L,
|
||||
0x1000000060120080L,
|
||||
0x21000000400000L,
|
||||
0x10000000L,
|
||||
0x2000100004080L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x44000000000L,
|
||||
0x0L,
|
||||
0x11080000000000L,
|
||||
0x220000000L,
|
||||
0x1000000004L,
|
||||
0x0L,
|
||||
0x100800000L,
|
||||
0x80000040840000L,
|
||||
0x0L,
|
||||
0x4000401000004L,
|
||||
0x20L,
|
||||
0x80000080000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200040L,
|
||||
0x0L,
|
||||
0x8401040016410200L,
|
||||
0x8a04L,
|
||||
0x4000000000000000L,
|
||||
0x8L,
|
||||
0x0L,
|
||||
0x80000000000L,
|
||||
0x202200000000000L,
|
||||
0x20004000000000L,
|
||||
0x10008400008616cL,
|
||||
0x6000000400000L,
|
||||
0x140000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000000000L,
|
||||
0x80000148000000L,
|
||||
0x8000000000L,
|
||||
0x850000080000000L,
|
||||
0x10000040120192L,
|
||||
0x0L,
|
||||
0x2000000L,
|
||||
0x20000010L,
|
||||
0x200000000000L,
|
||||
0x400000000800L,
|
||||
0x0L,
|
||||
0x24000000020000L,
|
||||
0x12a00040000L,
|
||||
0x2000000401L,
|
||||
0x10000000L,
|
||||
0x2000800000200000L,
|
||||
0x8297061L,
|
||||
0x80L,
|
||||
0x40800000800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8a00000002L,
|
||||
0x20100000000L,
|
||||
0x1000010401001000L,
|
||||
0x400000000L,
|
||||
0x8120000000000L,
|
||||
0x81001020000000L,
|
||||
0x8000L,
|
||||
0x5000400L,
|
||||
0x1000000000L,
|
||||
0x8040000000000L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80000000L,
|
||||
0x0L,
|
||||
0x100000000000L,
|
||||
0x0L,
|
||||
0x0L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL2W0 {
|
||||
private DictDataL2W0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x100000001c5L,
|
||||
0x90000000245L,
|
||||
0x1100000000b4L,
|
||||
0x1900000000a4L,
|
||||
0x210000000169L,
|
||||
0x2900000000b7L,
|
||||
0x3100000000baL,
|
||||
0x39000000020fL,
|
||||
0x4100000000aaL,
|
||||
0x49000000002eL,
|
||||
0x5100000001c9L,
|
||||
0x590000000181L,
|
||||
0x610000000269L,
|
||||
0x6900000000adL,
|
||||
0x7100000000a8L,
|
||||
0x7900000002aeL,
|
||||
0x810000000027L,
|
||||
0x8900000001afL,
|
||||
0x9100000000c1L,
|
||||
0x9900000000a9L,
|
||||
0xa100000000cfL,
|
||||
0xa900000001faL,
|
||||
0xb1000000002aL,
|
||||
0xb900000002f5L,
|
||||
0xc10000000261L,
|
||||
0xc9000000002cL,
|
||||
0xd1000000002dL,
|
||||
0xd90000000101L,
|
||||
0xe10000000030L,
|
||||
0xe9000000016fL,
|
||||
0xf1000000010fL,
|
||||
0xf90000000125L,
|
||||
0x1010000000115L,
|
||||
0x1090000000244L,
|
||||
0x111000000026cL,
|
||||
0x119000000024dL,
|
||||
0x12100000002d4L,
|
||||
0x12900000001c1L,
|
||||
0x13100000000b2L,
|
||||
0x1390000000241L,
|
||||
0x1410000000265L,
|
||||
0x1490000000285L,
|
||||
0x1510000000032L,
|
||||
0x15900000000b3L,
|
||||
0x1610000000281L,
|
||||
0x1690000000085L,
|
||||
0x1710000000185L,
|
||||
0x17900000001eeL,
|
||||
0x1810000000033L,
|
||||
0x1890000000081L,
|
||||
0x19100000001a5L,
|
||||
0x1990000000289L,
|
||||
0x1a10000000133L,
|
||||
0x1a900000001a1L,
|
||||
0x1b10000000124L,
|
||||
0x1b90000000105L,
|
||||
0x1c100000000a7L,
|
||||
0x1c90000000089L,
|
||||
0x1d1000000002bL,
|
||||
0x1d9000000012cL,
|
||||
0x1e1000000026fL,
|
||||
0x1e900000001e4L,
|
||||
0x1f10000000045L,
|
||||
0x1f90000000028L,
|
||||
0x20100000001ecL,
|
||||
0x209000000012dL,
|
||||
0x2110000000036L,
|
||||
0x2190000000041L,
|
||||
0x2210000000128L,
|
||||
0x22900000001ebL,
|
||||
0x23100000001edL,
|
||||
0x2390000000130L,
|
||||
0x2410000000122L,
|
||||
0x2490000000023L,
|
||||
0x25100000002a4L,
|
||||
0x2590000000026L,
|
||||
0x26100000001e7L,
|
||||
0x26900000001e8L,
|
||||
0x27100000001f0L,
|
||||
0x2790000000021L,
|
||||
0x28100000001e2L,
|
||||
0x2890000000126L,
|
||||
0x29100000001b5L,
|
||||
0x29900000001f7L,
|
||||
0x2a10000000121L,
|
||||
0x2a900000001e3L,
|
||||
0x2b100000000afL,
|
||||
0x2b90000000215L,
|
||||
0x2c100000002b6L,
|
||||
0x2c90000000149L,
|
||||
0x2d100000002a1L,
|
||||
0x2d900000001eaL,
|
||||
0x2e100000001cdL,
|
||||
0x2e90000000293L,
|
||||
0x2f10000000135L,
|
||||
0x2f90000000305L,
|
||||
0x3010000000250L,
|
||||
0x30900000001b3L,
|
||||
0x3110000000276L,
|
||||
0x31900000001adL,
|
||||
0x3210000000283L,
|
||||
0x32900000001a8L,
|
||||
0x3310000000083L,
|
||||
0x3390000000102L,
|
||||
0x34100000001a3L,
|
||||
0x349000000024aL,
|
||||
0x35100000002c3L,
|
||||
0x3590000000077L,
|
||||
0x3610000000322L,
|
||||
0x3690000000165L,
|
||||
0x37100000000e5L,
|
||||
0x3790000000205L,
|
||||
0x381000000028fL,
|
||||
0x38900000000b0L,
|
||||
0x39100000000b6L,
|
||||
0x39900000002c1L,
|
||||
0x3a1000000012bL,
|
||||
0x3a9000000008fL,
|
||||
0x3b10000000209L,
|
||||
0x3b90000000295L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL3 {
|
||||
private DictDataL3() {}
|
||||
|
||||
static final int LEN = 3;
|
||||
static final int ROWS = 78;
|
||||
static final int COLS = 15;
|
||||
static final int WORDS_LEN = 903;
|
||||
static final int POS_LEN = 1170;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL3W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL3P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,912 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL3W0 {
|
||||
private DictDataL3W0() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x200000038a5L,
|
||||
0xa0000005024L,
|
||||
0x1200000050a8L,
|
||||
0x1a00000014aeL,
|
||||
0x220000003821L,
|
||||
0x2a00000050aeL,
|
||||
0x3200000014adL,
|
||||
0x3a0000003824L,
|
||||
0x420000001524L,
|
||||
0x4a000000382bL,
|
||||
0x52000000382dL,
|
||||
0x5a0000004dcfL,
|
||||
0x620000004d81L,
|
||||
0x6a00000038a2L,
|
||||
0x7200000050adL,
|
||||
0x7a000000156fL,
|
||||
0x820000003836L,
|
||||
0x8a0000005124L,
|
||||
0x9200000015e8L,
|
||||
0x9a00000055eeL,
|
||||
0xa200000051f4L,
|
||||
0xaa0000001537L,
|
||||
0xb20000001deeL,
|
||||
0xba0000005135L,
|
||||
0xc200000034a8L,
|
||||
0xca0000002defL,
|
||||
0xd20000004c37L,
|
||||
0xda0000005037L,
|
||||
0xe200000030b7L,
|
||||
0xea0000004ea4L,
|
||||
0xf200000008a8L,
|
||||
0xfa00000035ebL,
|
||||
0x1020000001cb7L,
|
||||
0x10a0000003137L,
|
||||
0x112000000292dL,
|
||||
0x11a0000002928L,
|
||||
0x12200000055eaL,
|
||||
0x12a0000002922L,
|
||||
0x1320000002937L,
|
||||
0x13a000000293aL,
|
||||
0x142000000292aL,
|
||||
0x14a00000015c5L,
|
||||
0x15200000048a5L,
|
||||
0x15a00000050a5L,
|
||||
0x16200000014acL,
|
||||
0x16a00000038b4L,
|
||||
0x172000000502eL,
|
||||
0x17a00000048b4L,
|
||||
0x18200000038abL,
|
||||
0x18a00000038adL,
|
||||
0x1920000002caeL,
|
||||
0x19a0000005032L,
|
||||
0x1a200000015f4L,
|
||||
0x1aa00000015e4L,
|
||||
0x1b20000001dc5L,
|
||||
0x1ba00000038a8L,
|
||||
0x1c20000004cacL,
|
||||
0x1ca00000050acL,
|
||||
0x1d200000038b0L,
|
||||
0x1da0000000693L,
|
||||
0x1e20000004c34L,
|
||||
0x1ea0000003641L,
|
||||
0x1f20000001e45L,
|
||||
0x1fa0000004cadL,
|
||||
0x20200000015edL,
|
||||
0x20a00000049efL,
|
||||
0x21200000048b0L,
|
||||
0x21a00000051f2L,
|
||||
0x22200000048b6L,
|
||||
0x22a00000014baL,
|
||||
0x2320000002d85L,
|
||||
0x23a000000502bL,
|
||||
0x24200000039ebL,
|
||||
0x24a00000005afL,
|
||||
0x25200000031f2L,
|
||||
0x25a0000000536L,
|
||||
0x2620000004822L,
|
||||
0x26a0000002c24L,
|
||||
0x2720000003826L,
|
||||
0x27a0000004c27L,
|
||||
0x2820000005027L,
|
||||
0x28a00000030a8L,
|
||||
0x2920000001cacL,
|
||||
0x29a0000004decL,
|
||||
0x2a200000051ecL,
|
||||
0x2aa0000004d2dL,
|
||||
0x2b2000000060fL,
|
||||
0x2ba0000004c30L,
|
||||
0x2c200000050b7L,
|
||||
0x2ca00000024baL,
|
||||
0x2d2000000153aL,
|
||||
0x2da00000010a2L,
|
||||
0x2e200000030a2L,
|
||||
0x2ea0000001c24L,
|
||||
0x2f20000002d24L,
|
||||
0x2fa00000031e4L,
|
||||
0x3020000002ca7L,
|
||||
0x30a0000001028L,
|
||||
0x31200000025e8L,
|
||||
0x31a0000003aabL,
|
||||
0x3220000001c2cL,
|
||||
0x32a00000031ecL,
|
||||
0x33200000026acL,
|
||||
0x33a000000342dL,
|
||||
0x34200000035efL,
|
||||
0x34a0000001030L,
|
||||
0x3520000003036L,
|
||||
0x35a0000004d36L,
|
||||
0x3620000004cbaL,
|
||||
0x36a00000050baL,
|
||||
0x372000000393aL,
|
||||
0x37a0000001022L,
|
||||
0x3820000003022L,
|
||||
0x38a0000002ca2L,
|
||||
0x39200000030a3L,
|
||||
0x39a00000035e4L,
|
||||
0x3a20000003aa8L,
|
||||
0x3aa0000001c2dL,
|
||||
0x3b20000001defL,
|
||||
0x3ba00000012afL,
|
||||
0x3c20000002c30L,
|
||||
0x3ca00000051f0L,
|
||||
0x3d200000041f4L,
|
||||
0x3da0000004ab5L,
|
||||
0x3e20000005137L,
|
||||
0x3ea000000503aL,
|
||||
0x3f200000039faL,
|
||||
0x3fa0000002c22L,
|
||||
0x4020000004de2L,
|
||||
0x40a00000011e7L,
|
||||
0x412000000412bL,
|
||||
0x41a0000004eabL,
|
||||
0x42200000032acL,
|
||||
0x42a0000004030L,
|
||||
0x4320000001eb2L,
|
||||
0x43a00000031f6L,
|
||||
0x442000000303aL,
|
||||
0x44a000000513aL,
|
||||
0x45200000055e8L,
|
||||
0x45a00000015eaL,
|
||||
0x46200000041ebL,
|
||||
0x46a0000002c3aL,
|
||||
0x4720000001cbaL,
|
||||
0x47a0000002061L,
|
||||
0x48200000035e2L,
|
||||
0x48a0000004ea2L,
|
||||
0x4920000001827L,
|
||||
0x49a0000004c2aL,
|
||||
0x4a20000002932L,
|
||||
0x4aa00000055f7L,
|
||||
0x4b20000001c3aL,
|
||||
0x4ba00000055faL,
|
||||
0x4c20000004ebaL,
|
||||
0x4ca00000009e2L,
|
||||
0x4d2000000602dL,
|
||||
0x4da0000001645L,
|
||||
0x4e200000014b2L,
|
||||
0x4ea0000001641L,
|
||||
0x4f200000038b2L,
|
||||
0x4fa00000014b4L,
|
||||
0x50200000010a5L,
|
||||
0x50a00000048a9L,
|
||||
0x512000000482eL,
|
||||
0x51a00000038afL,
|
||||
0x52200000004b4L,
|
||||
0x52a0000004c21L,
|
||||
0x5320000004921L,
|
||||
0x53a0000001581L,
|
||||
0x54200000038a4L,
|
||||
0x54a0000004d25L,
|
||||
0x55200000011c5L,
|
||||
0x55a00000050a9L,
|
||||
0x56200000039eeL,
|
||||
0x56a00000024afL,
|
||||
0x57200000015f2L,
|
||||
0x57a0000001534L,
|
||||
0x5820000003021L,
|
||||
0x58a0000005241L,
|
||||
0x59200000005c4L,
|
||||
0x59a0000001ca5L,
|
||||
0x5a200000014a8L,
|
||||
0x5aa000000382cL,
|
||||
0x5b200000024acL,
|
||||
0x5ba0000004d2eL,
|
||||
0x5c200000049eeL,
|
||||
0x5ca0000004c32L,
|
||||
0x5d200000010b2L,
|
||||
0x5da00000030b2L,
|
||||
0x5e200000050b3L,
|
||||
0x5ea0000003934L,
|
||||
0x5f200000014b6L,
|
||||
0x5fa00000016c1L,
|
||||
0x6020000004824L,
|
||||
0x60a0000003ca4L,
|
||||
0x6120000004ca4L,
|
||||
0x61a0000000524L,
|
||||
0x6220000002d25L,
|
||||
0x62a0000004d85L,
|
||||
0x63200000006c5L,
|
||||
0x63a00000038a7L,
|
||||
0x64200000024abL,
|
||||
0x64a000000392cL,
|
||||
0x65200000024adL,
|
||||
0x65a000000342eL,
|
||||
0x66200000040aeL,
|
||||
0x66a0000001032L,
|
||||
0x6720000002cb2L,
|
||||
0x67a00000034b2L,
|
||||
0x6820000005132L,
|
||||
0x68a0000004c33L,
|
||||
0x69200000039f3L,
|
||||
0x69a00000030b4L,
|
||||
0x6a200000039f4L,
|
||||
0x6aa00000038b6L,
|
||||
0x6b200000014b7L,
|
||||
0x6ba0000002021L,
|
||||
0x6c20000004021L,
|
||||
0x6ca0000000501L,
|
||||
0x6d20000005181L,
|
||||
0x6da0000002e41L,
|
||||
0x6e20000004c24L,
|
||||
0x6ea00000030a4L,
|
||||
0x6f200000039e4L,
|
||||
0x6fa00000014a6L,
|
||||
0x70200000024a8L,
|
||||
0x70a00000048a8L,
|
||||
0x712000000482bL,
|
||||
0x71a000000392bL,
|
||||
0x72200000015ebL,
|
||||
0x72a0000004c2cL,
|
||||
0x732000000502cL,
|
||||
0x73a00000030acL,
|
||||
0x742000000482dL,
|
||||
0x74a000000392dL,
|
||||
0x7520000002d2eL,
|
||||
0x75a00000015afL,
|
||||
0x7620000003830L,
|
||||
0x76a0000003432L,
|
||||
0x77200000040b2L,
|
||||
0x77a0000004df2L,
|
||||
0x7820000003ab2L,
|
||||
0x78a0000000593L,
|
||||
0x79200000016b3L,
|
||||
0x79a00000049f4L,
|
||||
0x7a200000038b7L,
|
||||
0x7aa0000001461L,
|
||||
0x7b20000003822L,
|
||||
0x7ba0000003024L,
|
||||
0x7c20000002ca4L,
|
||||
0x7ca0000004d24L,
|
||||
0x7d20000003ce5L,
|
||||
0x7da00000050a7L,
|
||||
0x7e20000003927L,
|
||||
0x7ea0000002428L,
|
||||
0x7f20000004828L,
|
||||
0x7fa0000004c2bL,
|
||||
0x8020000002cacL,
|
||||
0x80a00000049ecL,
|
||||
0x812000000502dL,
|
||||
0x81a00000039edL,
|
||||
0x82200000052aeL,
|
||||
0x82a0000004830L,
|
||||
0x83200000050b0L,
|
||||
0x83a0000003930L,
|
||||
0x8420000004032L,
|
||||
0x84a0000004df3L,
|
||||
0x8520000002c34L,
|
||||
0x85a0000003434L,
|
||||
0x8620000003134L,
|
||||
0x86a00000050b6L,
|
||||
0x8720000003936L,
|
||||
0x87a0000003837L,
|
||||
0x88200000024b7L,
|
||||
0x88a00000038baL,
|
||||
0x8920000003922L,
|
||||
0x89a00000015e2L,
|
||||
0x8a20000003424L,
|
||||
0x8aa00000051e4L,
|
||||
0x8b20000003aa4L,
|
||||
0x8ba0000001a45L,
|
||||
0x8c200000030a7L,
|
||||
0x8ca000000512bL,
|
||||
0x8d20000002c2cL,
|
||||
0x8da000000342cL,
|
||||
0x8e2000000112cL,
|
||||
0x8ea000000312cL,
|
||||
0x8f2000000302dL,
|
||||
0x8fa00000032aeL,
|
||||
0x9020000005030L,
|
||||
0x90a0000004132L,
|
||||
0x9120000002df2L,
|
||||
0x91a00000035f2L,
|
||||
0x9220000004eb2L,
|
||||
0x92a0000004033L,
|
||||
0x93200000031f3L,
|
||||
0x93a0000000613L,
|
||||
0x9420000004034L,
|
||||
0x94a0000002d34L,
|
||||
0x95200000011f4L,
|
||||
0x95a00000031f4L,
|
||||
0x9620000005036L,
|
||||
0x96a00000030b6L,
|
||||
0x9720000004837L,
|
||||
0x97a0000003937L,
|
||||
0x98200000015f7L,
|
||||
0x98a0000004c22L,
|
||||
0x9920000005022L,
|
||||
0x99a00000039e2L,
|
||||
0x9a20000003524L,
|
||||
0x9aa00000022a5L,
|
||||
0x9b20000003926L,
|
||||
0x9ba0000003027L,
|
||||
0x9c20000003028L,
|
||||
0x9ca0000002ca8L,
|
||||
0x9d20000004d28L,
|
||||
0x9da0000005128L,
|
||||
0x9e200000014aaL,
|
||||
0x9ea000000342bL,
|
||||
0x9f2000000112bL,
|
||||
0x9fa000000312bL,
|
||||
0xa02000000402cL,
|
||||
0xa0a0000002d2cL,
|
||||
0xa120000002c2dL,
|
||||
0xa1a00000040adL,
|
||||
0xa220000004dedL,
|
||||
0xa2a00000051edL,
|
||||
0xa3200000052afL,
|
||||
0xa3a0000003030L,
|
||||
0xa420000004d30L,
|
||||
0xa4a0000005130L,
|
||||
0xa5200000049f0L,
|
||||
0xa5a0000003e50L,
|
||||
0xa620000000932L,
|
||||
0xa6a0000001df2L,
|
||||
0xa720000004133L,
|
||||
0xa7a0000002df3L,
|
||||
0xa8200000035f3L,
|
||||
0xa8a0000001d34L,
|
||||
0xa920000004134L,
|
||||
0xa9a0000002df4L,
|
||||
0xaa20000003135L,
|
||||
0xaaa00000010b7L,
|
||||
0xab200000039f7L,
|
||||
0xaba0000005061L,
|
||||
0xac200000054a2L,
|
||||
0xaca0000000582L,
|
||||
0xad20000004c23L,
|
||||
0xada0000005023L,
|
||||
0xae20000002de4L,
|
||||
0xaea0000001985L,
|
||||
0xaf20000005026L,
|
||||
0xafa00000030a6L,
|
||||
0xb020000003127L,
|
||||
0xb0a0000003aa7L,
|
||||
0xb120000002c28L,
|
||||
0xb1a0000003428L,
|
||||
0xb2200000051e8L,
|
||||
0xb2a00000038aaL,
|
||||
0xb32000000402bL,
|
||||
0xb3a0000002d2bL,
|
||||
0xb42000000352bL,
|
||||
0xb4a000000082cL,
|
||||
0xb5200000018acL,
|
||||
0xb5a0000001d2cL,
|
||||
0xb62000000412cL,
|
||||
0xb6a0000002decL,
|
||||
0xb7200000055ecL,
|
||||
0xb7a0000004eacL,
|
||||
0xb82000000402dL,
|
||||
0xb8a0000002d2dL,
|
||||
0xb9200000031edL,
|
||||
0xb9a0000001cb0L,
|
||||
0xba200000040b0L,
|
||||
0xbaa0000003130L,
|
||||
0xbb20000001932L,
|
||||
0xbba00000009f2L,
|
||||
0xbc20000002eb2L,
|
||||
0xbca00000036b2L,
|
||||
0xbd200000032b3L,
|
||||
0xbda00000016f5L,
|
||||
0xbe20000002c36L,
|
||||
0xbea0000004df6L,
|
||||
0xbf20000003037L,
|
||||
0xbfa0000004d37L,
|
||||
0xc0200000038b9L,
|
||||
0xc0a0000001981L,
|
||||
0xc120000000aa1L,
|
||||
0xc1a0000005ea1L,
|
||||
0xc220000003422L,
|
||||
0xc2a0000001122L,
|
||||
0xc320000003122L,
|
||||
0xc3a00000051e2L,
|
||||
0xc420000001de4L,
|
||||
0xc4a00000041e4L,
|
||||
0xc520000005126L,
|
||||
0xc5a0000004028L,
|
||||
0xc620000002d28L,
|
||||
0xc6a00000031e8L,
|
||||
0xc72000000382aL,
|
||||
0xc7a0000002debL,
|
||||
0xc8200000055ebL,
|
||||
0xc8a00000052abL,
|
||||
0xc92000000182cL,
|
||||
0xc9a0000001decL,
|
||||
0xca20000002dedL,
|
||||
0xcaa00000035edL,
|
||||
0xcb20000004eadL,
|
||||
0xcba0000002d30L,
|
||||
0xcc20000002eb4L,
|
||||
0xcca0000002022L,
|
||||
0xcd200000011e2L,
|
||||
0xcda00000031e2L,
|
||||
0xce200000026a2L,
|
||||
0xcea0000002de7L,
|
||||
0xcf20000003667L,
|
||||
0xcfa0000004128L,
|
||||
0xd020000002de8L,
|
||||
0xd0a00000052a8L,
|
||||
0xd1200000050aaL,
|
||||
0xd1a000000182dL,
|
||||
0xd2200000041edL,
|
||||
0xd2a0000004130L,
|
||||
0xd3200000052b0L,
|
||||
0xd3a0000005eb2L,
|
||||
0xd4200000019f4L,
|
||||
0xd4a0000004136L,
|
||||
0xd5200000008b7L,
|
||||
0xd5a00000031f7L,
|
||||
0xd620000004cb9L,
|
||||
0xd6a0000003939L,
|
||||
0xd7200000051faL,
|
||||
0xd7a0000001d22L,
|
||||
0xd820000002de2L,
|
||||
0xd8a0000004023L,
|
||||
0xd9200000031e3L,
|
||||
0xd9a0000002d26L,
|
||||
0xda200000021e7L,
|
||||
0xdaa0000004e07L,
|
||||
0xdb200000032a7L,
|
||||
0xdba00000041e8L,
|
||||
0xdc200000039eaL,
|
||||
0xdca00000019ecL,
|
||||
0xdd20000001830L,
|
||||
0xdda00000041f0L,
|
||||
0xde20000000554L,
|
||||
0xdea00000032b6L,
|
||||
0xdf20000004137L,
|
||||
0xdfa0000005ea4L,
|
||||
0xe020000002de6L,
|
||||
0xe0a0000001927L,
|
||||
0xe120000004d49L,
|
||||
0xe1a00000019edL,
|
||||
0xe220000001eadL,
|
||||
0xe2a0000001ab3L,
|
||||
0xe320000002934L,
|
||||
0xe3a0000003515L,
|
||||
0xe420000002924L,
|
||||
0xe4a00000019e8L,
|
||||
0xe5200000022a8L,
|
||||
0xe5a00000042a8L,
|
||||
0xe62000000342aL,
|
||||
0xe6a000000292cL,
|
||||
0xe72000000206fL,
|
||||
0xe7a00000042b0L,
|
||||
0xe820000005df7L,
|
||||
0xe8a00000040b9L,
|
||||
0xe9200000032baL,
|
||||
0xe9a0000001ea2L,
|
||||
0xea20000004c43L,
|
||||
0xeaa0000006427L,
|
||||
0xeb2000000402aL,
|
||||
0xeba00000008ebL,
|
||||
0xec20000000ab0L,
|
||||
0xeca00000042a3L,
|
||||
0xed20000002927L,
|
||||
0xeda0000004eaaL,
|
||||
0xee200000060b4L,
|
||||
0xeea00000021eaL,
|
||||
0xef200000065e2L,
|
||||
0xefa00000009eaL,
|
||||
0xf0200000006b1L,
|
||||
0xf0a00000042b9L,
|
||||
0xf120000006586L,
|
||||
0xf1a000000612dL,
|
||||
0xf220000001aaaL,
|
||||
0xf2a0000006026L,
|
||||
0xf3200000061e2L,
|
||||
0xf3a00000061e3L,
|
||||
0xf4200000061e6L,
|
||||
0xf4a0000000e98L,
|
||||
0xf520000000645L,
|
||||
0xf5a0000001685L,
|
||||
0xf6200000004b2L,
|
||||
0xf6a0000002421L,
|
||||
0xf720000004821L,
|
||||
0xf7a00000025c1L,
|
||||
0xf820000000641L,
|
||||
0xf8a0000001485L,
|
||||
0xf9200000051c5L,
|
||||
0xf9a00000039e5L,
|
||||
0xfa20000000665L,
|
||||
0xfaa0000000685L,
|
||||
0xfb20000003caeL,
|
||||
0xfba0000004caeL,
|
||||
0xfc200000024b2L,
|
||||
0xfca00000005d2L,
|
||||
0xfd20000005021L,
|
||||
0xfda0000004a41L,
|
||||
0xfe20000000661L,
|
||||
0xfea0000002ca5L,
|
||||
0xff20000004c2eL,
|
||||
0xffa00000030aeL,
|
||||
0x100200000005eeL,
|
||||
0x100a00000048afL,
|
||||
0x1012000000164fL,
|
||||
0x101a0000000532L,
|
||||
0x10220000004d21L,
|
||||
0x102a00000015a1L,
|
||||
0x10320000001125L,
|
||||
0x103a0000002dc5L,
|
||||
0x10420000005265L,
|
||||
0x104a0000004e85L,
|
||||
0x105200000030a9L,
|
||||
0x105a00000051c9L,
|
||||
0x106200000039e9L,
|
||||
0x106a00000004abL,
|
||||
0x107200000004adL,
|
||||
0x107a00000054aeL,
|
||||
0x108200000050afL,
|
||||
0x108a00000014b0L,
|
||||
0x10920000002433L,
|
||||
0x109a0000004833L,
|
||||
0x10a20000004cb4L,
|
||||
0x10aa00000050b4L,
|
||||
0x10b20000000534L,
|
||||
0x10ba0000000654L,
|
||||
0x10c20000002c21L,
|
||||
0x10ca0000003421L,
|
||||
0x10d200000005a1L,
|
||||
0x10da0000003e61L,
|
||||
0x10e20000005261L,
|
||||
0x10ea00000050a4L,
|
||||
0x10f20000003924L,
|
||||
0x10fa0000000644L,
|
||||
0x1102000000152bL,
|
||||
0x110a000000152dL,
|
||||
0x11120000001caeL,
|
||||
0x111a0000004deeL,
|
||||
0x1122000000148fL,
|
||||
0x112a000000158fL,
|
||||
0x113200000004b0L,
|
||||
0x113a0000003032L,
|
||||
0x114200000054b2L,
|
||||
0x114a0000004d32L,
|
||||
0x11520000004dd3L,
|
||||
0x115a00000005f3L,
|
||||
0x11620000002654L,
|
||||
0x116a0000001655L,
|
||||
0x117200000004e1L,
|
||||
0x117a0000002561L,
|
||||
0x11820000003da5L,
|
||||
0x118a0000004da5L,
|
||||
0x11920000002605L,
|
||||
0x119a00000024a7L,
|
||||
0x11a200000048a7L,
|
||||
0x11aa0000001528L,
|
||||
0x11b200000040a9L,
|
||||
0x11ba00000050abL,
|
||||
0x11c200000010acL,
|
||||
0x11ca0000001c2eL,
|
||||
0x11d2000000402eL,
|
||||
0x11da000000582eL,
|
||||
0x11e200000008aeL,
|
||||
0x11ea00000031eeL,
|
||||
0x11f20000002cafL,
|
||||
0x11fa000000058fL,
|
||||
0x120200000011cfL,
|
||||
0x120a00000025efL,
|
||||
0x12120000001650L,
|
||||
0x121a0000002c32L,
|
||||
0x12220000003132L,
|
||||
0x122a0000004d33L,
|
||||
0x12320000003034L,
|
||||
0x123a00000034b4L,
|
||||
0x12420000004d34L,
|
||||
0x124a00000025d5L,
|
||||
0x12520000003a55L,
|
||||
0x125a00000024b6L,
|
||||
0x12620000000441L,
|
||||
0x126a0000001081L,
|
||||
0x12720000004d61L,
|
||||
0x127a0000001e41L,
|
||||
0x12820000004241L,
|
||||
0x128a00000024a2L,
|
||||
0x12920000001522L,
|
||||
0x129a00000049e4L,
|
||||
0x12a20000004e44L,
|
||||
0x12aa00000069c5L,
|
||||
0x12b20000004265L,
|
||||
0x12ba0000004ca8L,
|
||||
0x12c20000001dc9L,
|
||||
0x12ca000000492bL,
|
||||
0x12d2000000302cL,
|
||||
0x12da00000054acL,
|
||||
0x12e20000004d2cL,
|
||||
0x12ea000000512cL,
|
||||
0x12f2000000264dL,
|
||||
0x12fa000000412eL,
|
||||
0x13020000002deeL,
|
||||
0x130a0000004e6fL,
|
||||
0x13120000001c32L,
|
||||
0x131a0000005832L,
|
||||
0x132200000008b2L,
|
||||
0x132a0000002d32L,
|
||||
0x13320000003532L,
|
||||
0x133a00000026b2L,
|
||||
0x13420000002c33L,
|
||||
0x134a00000040b3L,
|
||||
0x13520000000573L,
|
||||
0x135a0000005273L,
|
||||
0x13620000005434L,
|
||||
0x136a0000004df4L,
|
||||
0x13720000002d81L,
|
||||
0x137a0000000dc1L,
|
||||
0x13820000003e01L,
|
||||
0x138a0000004ca2L,
|
||||
0x139200000050a2L,
|
||||
0x139a0000003124L,
|
||||
0x13a20000004de4L,
|
||||
0x13aa0000005045L,
|
||||
0x13b2000000302bL,
|
||||
0x13ba0000002cabL,
|
||||
0x13c200000054abL,
|
||||
0x13ca00000025ebL,
|
||||
0x13d200000049ebL,
|
||||
0x13da00000040acL,
|
||||
0x13e200000058acL,
|
||||
0x13ea0000003e6cL,
|
||||
0x13f20000003e8cL,
|
||||
0x13fa00000034adL,
|
||||
0x140200000049edL,
|
||||
0x140a00000041eeL,
|
||||
0x1412000000050fL,
|
||||
0x141a0000003d8fL,
|
||||
0x14220000002e4fL,
|
||||
0x142a0000003c30L,
|
||||
0x143200000030b0L,
|
||||
0x143a00000039f0L,
|
||||
0x144200000018b2L,
|
||||
0x144a0000002d33L,
|
||||
0x14520000003533L,
|
||||
0x145a0000002573L,
|
||||
0x146200000011f3L,
|
||||
0x146a0000001c34L,
|
||||
0x14720000000514L,
|
||||
0x147a00000026b4L,
|
||||
0x14820000004c41L,
|
||||
0x148a0000005041L,
|
||||
0x14920000001d81L,
|
||||
0x149a0000004181L,
|
||||
0x14a200000055a1L,
|
||||
0x14aa0000000e41L,
|
||||
0x14b200000005e2L,
|
||||
0x14ba0000002423L,
|
||||
0x14c20000003ca3L,
|
||||
0x14ca0000000523L,
|
||||
0x14d20000004aa4L,
|
||||
0x14da0000004c65L,
|
||||
0x14e20000005065L,
|
||||
0x14ea0000003505L,
|
||||
0x14f200000041a5L,
|
||||
0x14fa0000000e85L,
|
||||
0x150200000050a6L,
|
||||
0x150a0000001686L,
|
||||
0x15120000004d27L,
|
||||
0x151a0000005127L,
|
||||
0x152200000054a8L,
|
||||
0x152a00000049e8L,
|
||||
0x15320000002c2bL,
|
||||
0x153a00000051ebL,
|
||||
0x15420000001dccL,
|
||||
0x154a000000126cL,
|
||||
0x1552000000112dL,
|
||||
0x155a000000312dL,
|
||||
0x15620000002eaeL,
|
||||
0x156a00000018afL,
|
||||
0x1572000000516fL,
|
||||
0x157a000000118fL,
|
||||
0x158200000051afL,
|
||||
0x158a0000000490L,
|
||||
0x15920000002cb0L,
|
||||
0x159a0000002670L,
|
||||
0x15a200000032b2L,
|
||||
0x15aa0000000833L,
|
||||
0x15b20000000cb3L,
|
||||
0x15ba0000004db3L,
|
||||
0x15c200000055f3L,
|
||||
0x15ca0000004eb3L,
|
||||
0x15d20000000834L,
|
||||
0x15da00000052b4L,
|
||||
0x15e20000003255L,
|
||||
0x15ea0000005136L,
|
||||
0x15f20000000596L,
|
||||
0x15fa0000003c37L,
|
||||
0x1602000000243aL,
|
||||
0x160a00000050c1L,
|
||||
0x16120000001ea1L,
|
||||
0x161a0000003d22L,
|
||||
0x16220000004d22L,
|
||||
0x162a0000005122L,
|
||||
0x16320000003c23L,
|
||||
0x163a0000000ca4L,
|
||||
0x16420000004904L,
|
||||
0x164a0000001d24L,
|
||||
0x16520000004124L,
|
||||
0x165a0000003ea4L,
|
||||
0x166200000052a4L,
|
||||
0x166a0000004c26L,
|
||||
0x16720000002c27L,
|
||||
0x167a0000001ca8L,
|
||||
0x168200000031ebL,
|
||||
0x168a0000004aabL,
|
||||
0x169200000035ecL,
|
||||
0x169a000000202dL,
|
||||
0x16a200000026adL,
|
||||
0x16aa00000064aeL,
|
||||
0x16b2000000244fL,
|
||||
0x16ba0000003d0fL,
|
||||
0x16c2000000358fL,
|
||||
0x16ca0000000a4fL,
|
||||
0x16d20000005270L,
|
||||
0x16da0000001df3L,
|
||||
0x16e200000041f3L,
|
||||
0x16ea0000001834L,
|
||||
0x16f200000059f4L,
|
||||
0x16fa00000032b4L,
|
||||
0x17020000003136L,
|
||||
0x170a0000001037L,
|
||||
0x17120000002cb7L,
|
||||
0x171a00000034b7L,
|
||||
0x17220000005441L,
|
||||
0x172a0000000721L,
|
||||
0x173200000040a2L,
|
||||
0x173a0000003aa2L,
|
||||
0x17420000004d23L,
|
||||
0x174a00000016a3L,
|
||||
0x175200000032a4L,
|
||||
0x175a0000005465L,
|
||||
0x17620000004d26L,
|
||||
0x176a0000000586L,
|
||||
0x17720000001c27L,
|
||||
0x177a0000004027L,
|
||||
0x178200000008a7L,
|
||||
0x178a0000003d87L,
|
||||
0x17920000002028L,
|
||||
0x179a00000026a8L,
|
||||
0x17a20000001d2dL,
|
||||
0x17aa000000598fL,
|
||||
0x17b200000031f0L,
|
||||
0x17ba00000026b0L,
|
||||
0x17c20000004ab0L,
|
||||
0x17ca0000000d33L,
|
||||
0x17d200000036b3L,
|
||||
0x17da0000000d34L,
|
||||
0x17e200000009f4L,
|
||||
0x17ea0000003d96L,
|
||||
0x17f200000011f6L,
|
||||
0x17fa0000002c37L,
|
||||
0x18020000003437L,
|
||||
0x180a0000002cc1L,
|
||||
0x181200000034c1L,
|
||||
0x181a0000001c22L,
|
||||
0x18220000002d22L,
|
||||
0x182a0000003d82L,
|
||||
0x183200000012c4L,
|
||||
0x183a0000003426L,
|
||||
0x18420000003aa6L,
|
||||
0x184a0000001d27L,
|
||||
0x185200000035e7L,
|
||||
0x185a00000052a7L,
|
||||
0x186200000018a8L,
|
||||
0x186a0000005928L,
|
||||
0x187200000035e8L,
|
||||
0x187a000000182bL,
|
||||
0x1882000000358bL,
|
||||
0x188a00000032abL,
|
||||
0x18920000003c4cL,
|
||||
0x189a00000009ecL,
|
||||
0x18a20000002eacL,
|
||||
0x18aa00000012adL,
|
||||
0x18b200000032adL,
|
||||
0x18ba000000350fL,
|
||||
0x18c20000001dafL,
|
||||
0x18ca0000002510L,
|
||||
0x18d20000002df0L,
|
||||
0x18da00000035f0L,
|
||||
0x18e20000004eb0L,
|
||||
0x18ea00000019f3L,
|
||||
0x18f200000042b3L,
|
||||
0x18fa0000004e15L,
|
||||
0x190200000052b6L,
|
||||
0x190a0000002d37L,
|
||||
0x191200000040baL,
|
||||
0x191a0000003dfaL,
|
||||
0x192200000018a2L,
|
||||
0x192a0000005643L,
|
||||
0x193200000019e4L,
|
||||
0x193a00000022a4L,
|
||||
0x194200000011e6L,
|
||||
0x194a0000001828L,
|
||||
0x19520000002c69L,
|
||||
0x195a000000502aL,
|
||||
0x1962000000192bL,
|
||||
0x196a0000000decL,
|
||||
0x197200000035adL,
|
||||
0x197a00000036adL,
|
||||
0x19820000005590L,
|
||||
0x198a00000032b0L,
|
||||
0x19920000000ab3L,
|
||||
0x199a0000004ef5L,
|
||||
0x19a20000002755L,
|
||||
0x19aa0000004d16L,
|
||||
0x19b20000001d37L,
|
||||
0x19ba0000002df7L,
|
||||
0x19c20000004c39L,
|
||||
0x19ca000000403aL,
|
||||
0x19d20000000c41L,
|
||||
0x19da0000000922L,
|
||||
0x19e200000041e2L,
|
||||
0x19ea00000032a2L,
|
||||
0x19f20000002503L,
|
||||
0x19fa0000004903L,
|
||||
0x1a020000000aa4L,
|
||||
0x1a0a00000068a6L,
|
||||
0x1a1200000052a6L,
|
||||
0x1a1a00000036a7L,
|
||||
0x1a220000003c48L,
|
||||
0x1a2a00000009e8L,
|
||||
0x1a3200000036a8L,
|
||||
0x1a3a000000102aL,
|
||||
0x1a4200000054aaL,
|
||||
0x1a4a00000019ebL,
|
||||
0x1a520000000aacL,
|
||||
0x1a5a0000002eb0L,
|
||||
0x1a620000006654L,
|
||||
0x1a6a0000003cd5L,
|
||||
0x1a720000001837L,
|
||||
0x1a7a0000003d17L,
|
||||
0x1a82000000413aL,
|
||||
0x1a8a0000000c61L,
|
||||
0x1a920000005541L,
|
||||
0x1a9a0000000d22L,
|
||||
0x1aa20000002ea2L,
|
||||
0x1aaa00000012c2L,
|
||||
0x1ab20000006644L,
|
||||
0x1aba0000001aa4L,
|
||||
0x1ac20000002446L,
|
||||
0x1aca00000041e6L,
|
||||
0x1ad200000042a7L,
|
||||
0x1ada0000001ea8L,
|
||||
0x1ae20000003149L,
|
||||
0x1aea0000002c2aL,
|
||||
0x1af2000000112aL,
|
||||
0x1afa0000003aaaL,
|
||||
0x1b0200000019f0L,
|
||||
0x1b0a0000001995L,
|
||||
0x1b120000000df6L,
|
||||
0x1b1a0000002c39L,
|
||||
0x1b220000003439L,
|
||||
0x1b2a0000001dfaL,
|
||||
0x1b3200000019e2L,
|
||||
0x1b3a0000001722L,
|
||||
0x1b420000000aa8L,
|
||||
0x1b4a0000005ea8L,
|
||||
0x1b520000002d49L,
|
||||
0x1b5a00000031eaL,
|
||||
0x1b620000001aadL,
|
||||
0x1b6a0000000c54L,
|
||||
0x1b720000005da2L,
|
||||
0x1b7a0000005503L,
|
||||
0x1b820000000983L,
|
||||
0x1b8a0000000907L,
|
||||
0x1b92000000082aL,
|
||||
0x1b9a00000035eaL,
|
||||
0x1ba200000052aaL,
|
||||
0x1baa0000002930L,
|
||||
0x1bb20000001ab0L,
|
||||
0x1bba0000001deaL,
|
||||
0x1bc200000032aaL,
|
||||
0x1bca0000005031L,
|
||||
0x1bd200000010b1L,
|
||||
0x1bda0000006033L,
|
||||
0x1be20000004334L,
|
||||
0x1bea0000004c38L,
|
||||
0x1bf20000002eaaL,
|
||||
0x1bfa0000000c42L,
|
||||
0x1c020000003727L,
|
||||
0x1c0a00000060a8L,
|
||||
0x1c1200000018d0L,
|
||||
0x1c1a0000000c66L,
|
||||
0x1c220000006037L,
|
||||
0x1c2a00000062acL,
|
||||
0x1c320000006126L
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL4 {
|
||||
private DictDataL4() {}
|
||||
|
||||
static final int LEN = 4;
|
||||
static final int ROWS = 104;
|
||||
static final int COLS = 35;
|
||||
static final int WORDS_LEN = 2190;
|
||||
static final int POS_LEN = 3640;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL4W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
return DictDataL4P0.get();
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,45 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL5 {
|
||||
private DictDataL5() {}
|
||||
|
||||
static final int LEN = 5;
|
||||
static final int ROWS = 130;
|
||||
static final int COLS = 69;
|
||||
static final int WORDS_LEN = 4403;
|
||||
static final int POS_LEN = 8970;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL5W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
long[] out = new long[POS_LEN];
|
||||
int k = 0;
|
||||
k = copy(out, k, DictDataL5P0.get());
|
||||
k = copy(out, k, DictDataL5P1.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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,787 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL5P1 {
|
||||
private DictDataL5P1() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x2000000020002L,
|
||||
0x400000000000000L,
|
||||
0x2000080000000000L,
|
||||
0x200000000L,
|
||||
0xa0041200000L,
|
||||
0x800000000000L,
|
||||
0x200201L,
|
||||
0x20012040001L,
|
||||
0x11010L,
|
||||
0x0L,
|
||||
0x32000400400L,
|
||||
0x4000001000000L,
|
||||
0x880000L,
|
||||
0x0L,
|
||||
0x1020000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000020000L,
|
||||
0x90000000L,
|
||||
0x4000001000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x820000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100L,
|
||||
0x0L,
|
||||
0x1000000000000L,
|
||||
0x0L,
|
||||
0x20004L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40L,
|
||||
0x400000L,
|
||||
0x40L,
|
||||
0x0L,
|
||||
0x1012000L,
|
||||
0x100L,
|
||||
0x100000000000L,
|
||||
0x1000040000000001L,
|
||||
0x8000L,
|
||||
0x200000L,
|
||||
0x2000000000010000L,
|
||||
0x200000000000000L,
|
||||
0x6000000000L,
|
||||
0x1000000080000080L,
|
||||
0x2090004400000001L,
|
||||
0x2100000040008000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000000000L,
|
||||
0x100000000000L,
|
||||
0x40800000L,
|
||||
0x1000000000040008L,
|
||||
0x2008000000000000L,
|
||||
0x0L,
|
||||
0x4000800000L,
|
||||
0x800000000L,
|
||||
0x200004400000000L,
|
||||
0x2000008000L,
|
||||
0x0L,
|
||||
0x40000L,
|
||||
0x80000L,
|
||||
0x20L,
|
||||
0x8100000000000000L,
|
||||
0x140000000000000L,
|
||||
0xc002000081000000L,
|
||||
0x10100L,
|
||||
0x100000080L,
|
||||
0x200000800L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1280000000b80080L,
|
||||
0x20110a1000400200L,
|
||||
0x10b0010931L,
|
||||
0x50880200c0008010L,
|
||||
0x108c000200010120L,
|
||||
0x2100081000000000L,
|
||||
0x8800200c000800L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x18000a5460000L,
|
||||
0x16c01008000c4012L,
|
||||
0x44000400180a4100L,
|
||||
0xa080201100044101L,
|
||||
0x4808000200000000L,
|
||||
0x800020000000004L,
|
||||
0x8490000002800081L,
|
||||
0x228b01000000140L,
|
||||
0x4480108020404000L,
|
||||
0x4000400020002400L,
|
||||
0x281030100021000L,
|
||||
0x800100260800200L,
|
||||
0x8004000042000200L,
|
||||
0x1010000044000200L,
|
||||
0x100000108000200L,
|
||||
0x5300000000080020L,
|
||||
0x0L,
|
||||
0x2000100000000L,
|
||||
0x8000000000820000L,
|
||||
0x1020020L,
|
||||
0x120000020000400L,
|
||||
0x40000000000000L,
|
||||
0x800010000000000L,
|
||||
0x4000000L,
|
||||
0x800000L,
|
||||
0x4000000000000L,
|
||||
0x800000000L,
|
||||
0x30000000L,
|
||||
0x210000000000L,
|
||||
0x40981800420c0004L,
|
||||
0x1000002010800000L,
|
||||
0x81800000005000a0L,
|
||||
0x600000001000200L,
|
||||
0x10400084L,
|
||||
0x1700001400080L,
|
||||
0x800400200020000L,
|
||||
0x408000a00000000L,
|
||||
0x40002004840080L,
|
||||
0x2200008000080a0L,
|
||||
0x400000000008L,
|
||||
0x40082L,
|
||||
0x800L,
|
||||
0x1008082000L,
|
||||
0x820000004L,
|
||||
0x40000000100000L,
|
||||
0x20000L,
|
||||
0x800040000000000L,
|
||||
0x1000000000000020L,
|
||||
0x1000000000000000L,
|
||||
0x0L,
|
||||
0x4200000L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x0L,
|
||||
0x200000000000L,
|
||||
0x80000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x10300001010L,
|
||||
0x21000000L,
|
||||
0x1002002000000000L,
|
||||
0x400005000020L,
|
||||
0x3a0000000004L,
|
||||
0x200000018004080L,
|
||||
0x100800400012000L,
|
||||
0x800034041000L,
|
||||
0x2800020022000L,
|
||||
0x1000040000000000L,
|
||||
0x80000000000L,
|
||||
0x12010000000080a0L,
|
||||
0x2100a26022000L,
|
||||
0x90400100204L,
|
||||
0x400000400000012L,
|
||||
0x1000200000040L,
|
||||
0x1000004003020000L,
|
||||
0x2010a01000L,
|
||||
0x120080000050000L,
|
||||
0x3104000000000189L,
|
||||
0x10002000000405L,
|
||||
0x40008001222000L,
|
||||
0x6000100a10080L,
|
||||
0x808801000000002L,
|
||||
0x40052000000408L,
|
||||
0x10800a80000020L,
|
||||
0x4000450082212440L,
|
||||
0x1081004000001700L,
|
||||
0x800000044080014L,
|
||||
0x840111000030022L,
|
||||
0x800000008102000L,
|
||||
0x158c800000812L,
|
||||
0x2d000309104400L,
|
||||
0x41920811024022c0L,
|
||||
0x89a0040041a25149L,
|
||||
0x1010020a0274044L,
|
||||
0x400004002000404L,
|
||||
0x1400000000020002L,
|
||||
0x1040010000020800L,
|
||||
0x8200440042000082L,
|
||||
0x841802013201L,
|
||||
0x1048001210840402L,
|
||||
0x6020140000060000L,
|
||||
0x704604000a980008L,
|
||||
0x210802448d103L,
|
||||
0x4041200000804080L,
|
||||
0x400024006a004400L,
|
||||
0x844006413084040L,
|
||||
0x6108110408244000L,
|
||||
0x400000020114104L,
|
||||
0x4004002240200114L,
|
||||
0x4289434006020440L,
|
||||
0x140010004818000L,
|
||||
0x62080210040e401L,
|
||||
0x510800034010201L,
|
||||
0x130100401220L,
|
||||
0x800084c0084084L,
|
||||
0x8880000a90012L,
|
||||
0x1000480008380040L,
|
||||
0x400c08800401245L,
|
||||
0x8004080001802010L,
|
||||
0x88ab44800800600L,
|
||||
0x82251052a040280dL,
|
||||
0x1282482085a01c02L,
|
||||
0xe40e004003000458L,
|
||||
0x11833a54000510L,
|
||||
0x885a90509808044cL,
|
||||
0x7097e28001258448L,
|
||||
0x40000002b0010L,
|
||||
0x27024022002L,
|
||||
0xa140000360000L,
|
||||
0x180104602400246L,
|
||||
0x820212400802082L,
|
||||
0x40000000080e0400L,
|
||||
0x4081048986440100L,
|
||||
0x142520c963184100L,
|
||||
0x112c668082132143L,
|
||||
0x759c57ed5fa44da5L,
|
||||
0x84000000000001eL,
|
||||
0x801004000018004L,
|
||||
0x2014020005010040L,
|
||||
0x8000020L,
|
||||
0x101800010088L,
|
||||
0x242006210100000L,
|
||||
0x4022048c00081020L,
|
||||
0x4200010L,
|
||||
0x2100004100aa1cL,
|
||||
0x90160a00080000L,
|
||||
0x28080000700002L,
|
||||
0x26000008500802L,
|
||||
0x420b134200910400L,
|
||||
0xa00000a0020005L,
|
||||
0x1000100050810089L,
|
||||
0x8c00080101004016L,
|
||||
0x280548044200201L,
|
||||
0x29408a402c404004L,
|
||||
0x2100d0200100020L,
|
||||
0x418000200100200L,
|
||||
0x500a2a0000000840L,
|
||||
0xa280932080440000L,
|
||||
0x800c00001010228cL,
|
||||
0x199028d040008049L,
|
||||
0x8200158a311a4435L,
|
||||
0x2620b1e418624L,
|
||||
0x982aa01102c00188L,
|
||||
0x2e020480a83008L,
|
||||
0x4000000000088014L,
|
||||
0x8000220000400100L,
|
||||
0x6103100004010700L,
|
||||
0xa042840c0004112L,
|
||||
0x41000c8104211000L,
|
||||
0x81040c003115041L,
|
||||
0x8800008020000800L,
|
||||
0x6154a01808000220L,
|
||||
0x8100802050000108L,
|
||||
0x1800001200400202L,
|
||||
0x65800a0020011004L,
|
||||
0x8000a089101102a0L,
|
||||
0x3410014004a0021L,
|
||||
0x8923c01009c080L,
|
||||
0x80109c200040500cL,
|
||||
0x2420101101861L,
|
||||
0x88000080a1220804L,
|
||||
0xca00011400400142L,
|
||||
0x2000009004240041L,
|
||||
0x4a01e04105008000L,
|
||||
0x44248808001040L,
|
||||
0x2240a54232004000L,
|
||||
0xfb881b0088040000L,
|
||||
0x141505070005169L,
|
||||
0x22114013920698a2L,
|
||||
0x108e7a446139690L,
|
||||
0x640d941f7a146339L,
|
||||
0x1a31858844bccba2L,
|
||||
0x23ac54c508bd98a5L,
|
||||
0x31a028a061e6a8a3L,
|
||||
0x4280c1eaa5a1007L,
|
||||
0x42544542088L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000800000L,
|
||||
0x0L,
|
||||
0x400000000000L,
|
||||
0x1000200000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000000000L,
|
||||
0x1000000000000L,
|
||||
0x400000080008L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x200L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000000002L,
|
||||
0x0L,
|
||||
0x5000000000000000L,
|
||||
0x2L,
|
||||
0x400000L,
|
||||
0x100000000000000L,
|
||||
0x1000000L,
|
||||
0x0L,
|
||||
0x8000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000L,
|
||||
0x100L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000020000000000L,
|
||||
0x40000000010L,
|
||||
0x0L,
|
||||
0x400000000000000L,
|
||||
0x0L,
|
||||
0x20L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x3000000000000000L,
|
||||
0x80000L,
|
||||
0x4L,
|
||||
0x800200000000008L,
|
||||
0x4000000100000L,
|
||||
0x2000L,
|
||||
0x810000008000L,
|
||||
0x8000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200101000L,
|
||||
0x101L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000004L,
|
||||
0x0L,
|
||||
0x10000000000000L,
|
||||
0x10000000L,
|
||||
0x0L,
|
||||
0x400000000L,
|
||||
0x404180240000010L,
|
||||
0x8000710001000a02L,
|
||||
0x7bf07889L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000020000L,
|
||||
0x0L,
|
||||
0x4000000000000000L,
|
||||
0x0L,
|
||||
0x342d091000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x10L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L
|
||||
};
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,46 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL6 {
|
||||
private DictDataL6() {}
|
||||
|
||||
static final int LEN = 6;
|
||||
static final int ROWS = 156;
|
||||
static final int COLS = 111;
|
||||
static final int WORDS_LEN = 7068;
|
||||
static final int POS_LEN = 17316;
|
||||
|
||||
private static long[] words() {
|
||||
return DictDataL6W0.get();
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
long[] out = new long[POS_LEN];
|
||||
int k = 0;
|
||||
k = copy(out, k, DictDataL6P0.get());
|
||||
k = copy(out, k, DictDataL6P1.get());
|
||||
k = copy(out, k, DictDataL6P2.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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,941 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL6P2 {
|
||||
private DictDataL6P2() {}
|
||||
public static long[] get() {
|
||||
return new long[] {
|
||||
0x402001000002L,
|
||||
0x8840002010200062L,
|
||||
0x3002000080040020L,
|
||||
0x20c0000001090000L,
|
||||
0x1011003000080010L,
|
||||
0x2e08000004800110L,
|
||||
0x410012000a808L,
|
||||
0x110400000020400L,
|
||||
0x41001080000010L,
|
||||
0x8434088110180000L,
|
||||
0x6014042530800280L,
|
||||
0x920000000008025L,
|
||||
0x1002000000001400L,
|
||||
0x2020204801001000L,
|
||||
0xc00200124002010L,
|
||||
0x80442800000008L,
|
||||
0x8110080080028000L,
|
||||
0x41000000000L,
|
||||
0x2410830000200412L,
|
||||
0xb000000010005040L,
|
||||
0x4404800002900100L,
|
||||
0x4000000L,
|
||||
0x2014000000004L,
|
||||
0x209004100005000L,
|
||||
0x1090280000L,
|
||||
0x810000008L,
|
||||
0x9000120380000000L,
|
||||
0x4280001000110L,
|
||||
0x9100000060080L,
|
||||
0x1060010401000801L,
|
||||
0x80009010000000L,
|
||||
0x2001300000442080L,
|
||||
0x8010109800L,
|
||||
0x280080008800000L,
|
||||
0x8010000000140000L,
|
||||
0x2000000000000008L,
|
||||
0x880000000L,
|
||||
0x9010000002002000L,
|
||||
0x44000000L,
|
||||
0x100000002L,
|
||||
0x100000L,
|
||||
0x8000L,
|
||||
0x8000000020000000L,
|
||||
0x0L,
|
||||
0x1000000010000L,
|
||||
0x2480210010000008L,
|
||||
0x4080000L,
|
||||
0x600108004000L,
|
||||
0xc002202000430000L,
|
||||
0x20400000002000L,
|
||||
0x4000800000000000L,
|
||||
0x1000100000000000L,
|
||||
0x0L,
|
||||
0x200400000004000L,
|
||||
0x800000020000000L,
|
||||
0x1000000000000040L,
|
||||
0x800020L,
|
||||
0xa000004L,
|
||||
0x42000000400L,
|
||||
0x2000200200001902L,
|
||||
0x200208000004000L,
|
||||
0x1080000840040L,
|
||||
0x320000080L,
|
||||
0x1232000802410080L,
|
||||
0x400010000000000L,
|
||||
0x200808000010c000L,
|
||||
0x20000020022240L,
|
||||
0x20c0800L,
|
||||
0x9300000000200008L,
|
||||
0x1002000004000000L,
|
||||
0x600400080020002L,
|
||||
0x104018800000420L,
|
||||
0x802014L,
|
||||
0x118000000000000L,
|
||||
0x410L,
|
||||
0x2008040020L,
|
||||
0x20400800000428L,
|
||||
0xc10000000022L,
|
||||
0xc008080800a0004L,
|
||||
0x60000b8000040L,
|
||||
0x10008000000000L,
|
||||
0x8980400000000000L,
|
||||
0x200004000880040L,
|
||||
0x1005200802000L,
|
||||
0x40061400040100L,
|
||||
0x24000040000L,
|
||||
0x910000200L,
|
||||
0x1020000000000L,
|
||||
0x400008000L,
|
||||
0x200000000a002000L,
|
||||
0x4306208010008020L,
|
||||
0x402000001000500L,
|
||||
0x24000000000040L,
|
||||
0x10022L,
|
||||
0x2000002820000040L,
|
||||
0x210001100004001L,
|
||||
0x8006000000L,
|
||||
0x104006352000020L,
|
||||
0xa000191000001009L,
|
||||
0x40008008a0L,
|
||||
0x9282000e81000000L,
|
||||
0xa40000000000200L,
|
||||
0xd0000000080L,
|
||||
0x400080100600L,
|
||||
0x440180800544826L,
|
||||
0x8000000009408L,
|
||||
0x848020100100410L,
|
||||
0x401601000085001L,
|
||||
0x10010000000000L,
|
||||
0x1001000a4008096L,
|
||||
0x9041400003000820L,
|
||||
0x800000824307001L,
|
||||
0xc84d000002100L,
|
||||
0x808000400000002L,
|
||||
0x88028080b0048002L,
|
||||
0x300800090000844L,
|
||||
0x8120121010100000L,
|
||||
0x34e0400200244200L,
|
||||
0x4048020001000L,
|
||||
0x2804800101200001L,
|
||||
0x400820004L,
|
||||
0xc0c2480801014fL,
|
||||
0x4084020800000c80L,
|
||||
0x20200a528200a000L,
|
||||
0x2010001006001b5L,
|
||||
0x902a04200804800bL,
|
||||
0x100181000020280L,
|
||||
0x404101210440000L,
|
||||
0x880000850483280L,
|
||||
0x10e080000400108L,
|
||||
0x841000200100090L,
|
||||
0x12000000000bL,
|
||||
0x402380402000f04L,
|
||||
0x1423110001a00L,
|
||||
0x80025c00a0020000L,
|
||||
0x1122224308008008L,
|
||||
0x9e000000000302L,
|
||||
0x308000001000520L,
|
||||
0x91000220040002L,
|
||||
0x9604626000484040L,
|
||||
0x800d0004030d0L,
|
||||
0x1001c044e004000cL,
|
||||
0x402020000c100L,
|
||||
0x480092a00080400L,
|
||||
0x8008404401009d00L,
|
||||
0x24000010008281L,
|
||||
0x8004080d0020000L,
|
||||
0x10c1e00224011948L,
|
||||
0x2004c3240002d010L,
|
||||
0x8000000020e030L,
|
||||
0x30104d02601d500L,
|
||||
0x2043008203000L,
|
||||
0xa10040000d0800L,
|
||||
0x801020010L,
|
||||
0x8008L,
|
||||
0x0L,
|
||||
0x40000000000L,
|
||||
0x108000000140202L,
|
||||
0x8004001010410000L,
|
||||
0x61800880100000L,
|
||||
0x800000028000L,
|
||||
0x800001008000000L,
|
||||
0x8001000000020L,
|
||||
0x810101400000020L,
|
||||
0x83300000010L,
|
||||
0x40000L,
|
||||
0x882880000400L,
|
||||
0x10180a000000L,
|
||||
0x8000020008040aL,
|
||||
0x184021020000L,
|
||||
0x401000000000004L,
|
||||
0x401000000010110L,
|
||||
0x840400000000000L,
|
||||
0x40000010080004L,
|
||||
0x44000000080000L,
|
||||
0x100001000001L,
|
||||
0xda10030010400001L,
|
||||
0x1a88000100004822L,
|
||||
0x6c00001441005000L,
|
||||
0x10401100050L,
|
||||
0x450560140800282L,
|
||||
0x80010e00924e820L,
|
||||
0x24010002c110L,
|
||||
0x911044900014100L,
|
||||
0x43a080251c092L,
|
||||
0x2040000081500000L,
|
||||
0xa08600000604000L,
|
||||
0x80002c000002200L,
|
||||
0x80802001a0028000L,
|
||||
0x9204504404802108L,
|
||||
0x608020000a00830L,
|
||||
0x102004248c8e0L,
|
||||
0x0L,
|
||||
0xc620800000000L,
|
||||
0x80004020004L,
|
||||
0x4002000000010L,
|
||||
0x800000000400004L,
|
||||
0x1000000001012000L,
|
||||
0x1000000000102000L,
|
||||
0x240b00080L,
|
||||
0x10000040000200L,
|
||||
0x0L,
|
||||
0x80201800a0001001L,
|
||||
0x30000000000L,
|
||||
0x2000000001040048L,
|
||||
0x4400200000400480L,
|
||||
0x126040800002000L,
|
||||
0x12208808004L,
|
||||
0x88401200000L,
|
||||
0x4800000080020L,
|
||||
0x1088000240000L,
|
||||
0x10100100600002L,
|
||||
0x2002000000028L,
|
||||
0x800011804L,
|
||||
0x202001d024020020L,
|
||||
0x800408004200000L,
|
||||
0x9000080400000800L,
|
||||
0x800L,
|
||||
0x280L,
|
||||
0x464002a811080062L,
|
||||
0x8b800000020L,
|
||||
0xa00008004010001L,
|
||||
0x218c4080440408L,
|
||||
0x1000030400008000L,
|
||||
0xc2202078001010d0L,
|
||||
0x1400501000100008L,
|
||||
0x4004c0908040008L,
|
||||
0x10006824a0000000L,
|
||||
0x100814800000000L,
|
||||
0x101110c082080L,
|
||||
0x12000410021000L,
|
||||
0x80000002002000L,
|
||||
0x208008200326010L,
|
||||
0x410a072050c2000L,
|
||||
0x4088208550600384L,
|
||||
0x8002400018208L,
|
||||
0x6180190040184904L,
|
||||
0x404300405dad3042L,
|
||||
0x2080008440300301L,
|
||||
0x23420040aea78000L,
|
||||
0xc00010491e002200L,
|
||||
0x400082f16e81a205L,
|
||||
0xaf00c0004222820L,
|
||||
0x4880000801966000L,
|
||||
0xe700040200618421L,
|
||||
0x400083000400065bL,
|
||||
0xa8800c0000113832L,
|
||||
0x582093c06368b0a4L,
|
||||
0x4020000022208aL,
|
||||
0x8000428400d87200L,
|
||||
0x280008090c000008L,
|
||||
0x4085400000848400L,
|
||||
0x318000a01401c60L,
|
||||
0x44020880e9a00801L,
|
||||
0x26600004800258L,
|
||||
0x10038010020a0010L,
|
||||
0x2801040002200060L,
|
||||
0xe002090418d110L,
|
||||
0x4234100000584002L,
|
||||
0x1000481a0000486L,
|
||||
0x1a00420101010800L,
|
||||
0x8ca0600481002000L,
|
||||
0x4404080624810000L,
|
||||
0x8040091020038L,
|
||||
0x1024215250410008L,
|
||||
0x2500L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x800000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x400000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4000000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x1000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80000L,
|
||||
0x0L,
|
||||
0x200L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x800000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2100000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x4L,
|
||||
0x0L,
|
||||
0x2000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000000L,
|
||||
0x200L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80000000000000L,
|
||||
0x100000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x100000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000000L,
|
||||
0x2000000000000000L,
|
||||
0x0L,
|
||||
0x200088000000000L,
|
||||
0x200000002000800L,
|
||||
0x2815010L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x20000000L,
|
||||
0x0L,
|
||||
0x100001000000000L,
|
||||
0x2000000010000L,
|
||||
0x4010L,
|
||||
0x0L,
|
||||
0xa2c4000160000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x2L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x8000000000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x10000000L,
|
||||
0x0L,
|
||||
0x100000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x200020000000000L,
|
||||
0x400020L,
|
||||
0x0L,
|
||||
0x4L,
|
||||
0x0L,
|
||||
0x20000000000020L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x40000000000102L,
|
||||
0x1000000020100000L,
|
||||
0x2000802004001000L,
|
||||
0x1100000L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x80L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L,
|
||||
0x0L
|
||||
};
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,51 +0,0 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,53 +0,0 @@
|
||||
package puzzle.dict900;
|
||||
|
||||
public final class DictDataL8 {
|
||||
private DictDataL8() {}
|
||||
|
||||
static final int LEN = 8;
|
||||
static final int ROWS = 208;
|
||||
static final int COLS = 202;
|
||||
static final int WORDS_LEN = 12886;
|
||||
static final int POS_LEN = 42016;
|
||||
|
||||
private static long[] words() {
|
||||
long[] out = new long[WORDS_LEN];
|
||||
int k = 0;
|
||||
k = copy(out, k, DictDataL8W0.get());
|
||||
k = copy(out, k, DictDataL8W1.get());
|
||||
return out;
|
||||
}
|
||||
|
||||
private static long[] posFlat() {
|
||||
long[] out = new long[POS_LEN];
|
||||
int k = 0;
|
||||
k = copy(out, k, DictDataL8P0.get());
|
||||
k = copy(out, k, DictDataL8P1.get());
|
||||
k = copy(out, k, DictDataL8P2.get());
|
||||
k = copy(out, k, DictDataL8P3.get());
|
||||
k = copy(out, k, DictDataL8P4.get());
|
||||
k = copy(out, k, DictDataL8P5.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;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,8 +5,9 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.experimental.Delegate;
|
||||
import lombok.val;
|
||||
import precomp.Const9x8.Cell;
|
||||
import puzzle.Export.Gridded.Replacar.Rell;
|
||||
import puzzle.Export.Puzzle.Replacar.Rell;
|
||||
import puzzle.Masker.Clues;
|
||||
import puzzle.Meta.ShardLem;
|
||||
import puzzle.SwedishGenerator.Dict;
|
||||
import puzzle.SwedishGenerator.FillResult;
|
||||
import puzzle.SwedishGenerator.Grid;
|
||||
@@ -19,7 +20,6 @@ import static puzzle.Masker.Clues.createEmpty;
|
||||
import static puzzle.Masker.Slot;
|
||||
import static puzzle.Masker.C;
|
||||
import static puzzle.SwedishGenerator.Lemma;
|
||||
import static puzzle.SwedishGenerator.SIZE;
|
||||
import static puzzle.SwedishGenerator.X;
|
||||
|
||||
/**
|
||||
@@ -61,21 +61,16 @@ public record Export() {
|
||||
public static Clue from(int dir) { return CLUES[dir]; }
|
||||
}
|
||||
|
||||
record Strings() {
|
||||
|
||||
static String padRight(String s, int n) { return s.length() >= n ? s : s + " ".repeat(n - s.length()); }
|
||||
}
|
||||
public record Vestigium(int index, int clue) { }
|
||||
|
||||
public record ClueAt(int index, int clue) { }
|
||||
|
||||
public record Clued(@Delegate Clues c) {
|
||||
public record Signa(@Delegate Clues c) {
|
||||
|
||||
public static Clued of(Cell... cells) {
|
||||
public static Signa of(Cell... cells) {
|
||||
var c = createEmpty();
|
||||
for (var cell : cells) c.setClue(cell);
|
||||
return new Clued(c);
|
||||
return new Signa(c);
|
||||
}
|
||||
public Clued deepCopyGrid() { return new Clued(new Clues(c.lo, c.hi, c.vlo, c.vhi, c.rlo, c.rhi, c.xlo, c.xhi)); }
|
||||
public Signa deepCopyGrid() { return new Signa(new Clues(c.lo, c.hi, c.vlo, c.vhi, c.rlo, c.rhi, c.xlo, c.xhi)); }
|
||||
String gridToString() {
|
||||
var sb = new StringBuilder(INIT_GRID_OUTPUT);
|
||||
forEachSlot((s, _, _) -> {
|
||||
@@ -85,21 +80,21 @@ public record Export() {
|
||||
});
|
||||
return sb.toString();
|
||||
}
|
||||
public Stream<ClueAt> stream() {
|
||||
val stream = Stream.<ClueAt>builder();
|
||||
for (var l = c.lo & ~c.xlo & ~c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), RIGHT1.dir));
|
||||
for (var l = c.lo & ~c.xlo & ~c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), DOWN0.dir));
|
||||
for (var l = c.lo & ~c.xlo & c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), CLUE_UP));
|
||||
for (var l = c.lo & ~c.xlo & c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), CLUE_LEFT));
|
||||
for (var l = c.lo & c.xlo & ~c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), CLUE_LEFT_TOP));
|
||||
for (var l = c.lo & c.xlo & ~c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new ClueAt(Long.numberOfTrailingZeros(l), CLUE_RIGHT_TOP));
|
||||
public Stream<Vestigium> stream() {
|
||||
val stream = Stream.<Vestigium>builder();
|
||||
for (var l = c.lo & ~c.xlo & ~c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), RIGHT1.dir));
|
||||
for (var l = c.lo & ~c.xlo & ~c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), DOWN0.dir));
|
||||
for (var l = c.lo & ~c.xlo & c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), CLUE_UP));
|
||||
for (var l = c.lo & ~c.xlo & c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), CLUE_LEFT));
|
||||
for (var l = c.lo & c.xlo & ~c.rlo & ~c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), CLUE_LEFT_TOP));
|
||||
for (var l = c.lo & c.xlo & ~c.rlo & c.vlo; l != X; l &= l - 1) stream.accept(new Vestigium(Long.numberOfTrailingZeros(l), CLUE_RIGHT_TOP));
|
||||
|
||||
for (var h = c.hi & ~c.xhi & ~c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_RIGHT));
|
||||
for (var h = c.hi & ~c.xhi & ~c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_DOWN));
|
||||
for (var h = c.hi & ~c.xhi & c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_UP));
|
||||
for (var h = c.hi & ~c.xhi & c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_LEFT));
|
||||
for (var h = c.hi & c.xhi & ~c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_LEFT_TOP));
|
||||
for (var h = c.hi & c.xhi & ~c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new ClueAt(HI(Long.numberOfTrailingZeros(h)), CLUE_RIGHT_TOP));
|
||||
for (var h = c.hi & ~c.xhi & ~c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_RIGHT));
|
||||
for (var h = c.hi & ~c.xhi & ~c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_DOWN));
|
||||
for (var h = c.hi & ~c.xhi & c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_UP));
|
||||
for (var h = c.hi & ~c.xhi & c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_LEFT));
|
||||
for (var h = c.hi & c.xhi & ~c.rhi & ~c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_LEFT_TOP));
|
||||
for (var h = c.hi & c.xhi & ~c.rhi & c.vhi; h != X; h &= h - 1) stream.accept(new Vestigium(HI(Long.numberOfTrailingZeros(h)), CLUE_RIGHT_TOP));
|
||||
|
||||
return stream.build();
|
||||
}
|
||||
@@ -108,15 +103,15 @@ public record Export() {
|
||||
}
|
||||
}
|
||||
|
||||
record Gridded(@Delegate Grid grid, Clues cl)
|
||||
implements Stream<LetterAt> {
|
||||
record Puzzle(@Delegate Grid grid, Clues cl)
|
||||
implements Stream<Lettrix> {
|
||||
|
||||
public Gridded(Clues clues) { this(clues.toGrid(), clues); }
|
||||
public Gridded(Clued clues) { this(clues.c); }
|
||||
public @Delegate Stream<LetterAt> stream() {
|
||||
val stream = Stream.<LetterAt>builder();
|
||||
for (var l = grid.lo & ~cl.lo; l != X; l &= l - 1) stream.accept(LetterAt.from(Long.numberOfTrailingZeros(l), grid.g));
|
||||
for (var h = grid.hi & ~cl.hi & 0xFF; h != X; h &= h - 1) stream.accept(LetterAt.from(64 | Long.numberOfTrailingZeros(h), grid.g));
|
||||
public Puzzle(Clues clues) { this(clues.toGrid(), clues); }
|
||||
public Puzzle(Signa clues) { this(clues.c); }
|
||||
public @Delegate Stream<Lettrix> stream() {
|
||||
val stream = Stream.<Lettrix>builder();
|
||||
for (var l = grid.lo & ~cl.lo; l != X; l &= l - 1) stream.accept(Lettrix.from(Long.numberOfTrailingZeros(l), grid.g));
|
||||
for (var h = grid.hi & ~cl.hi & 0xFF; h != X; h &= h - 1) stream.accept(Lettrix.from(64 | Long.numberOfTrailingZeros(h), grid.g));
|
||||
return stream.build();
|
||||
}
|
||||
String gridToString() {
|
||||
@@ -141,7 +136,7 @@ public record Export() {
|
||||
sb[r * (C + 1) + c] = (byte) clueChar.replace(new Rell(grid, cl, idx, (byte) (dir | 48)));
|
||||
});
|
||||
stream().forEach((l) -> sb[l.index(C + 1)] = (byte) l.human());
|
||||
return new String(sb).replaceAll(" ", "" + emptyFallback).split("\n");
|
||||
return new String(sb).replaceAll(" ", String.valueOf(emptyFallback)).split("\n");
|
||||
}
|
||||
public static IntStream cellWalk(byte base, long lo, long hi) {
|
||||
if (Slotinfo.increasing(base)) {
|
||||
@@ -219,8 +214,19 @@ public record Export() {
|
||||
|
||||
public record WordOut(String word, int[] cell, int startRow, int startCol, char direction, int arrowRow, int arrowCol, boolean isReversed, int complex, String[] clue) {
|
||||
|
||||
private static ShardLem lookup(long w, byte[] bytes) {
|
||||
|
||||
try {
|
||||
val rec = Meta.lookupSilent(w);
|
||||
System.out.println("\nQuery: w=" + w + " -> i=" + rec.mmap());
|
||||
System.out.println(" word=" + Lemma.asWord(w, bytes) + "\n" + " simpel=" + rec.simpel() + "\n" + " clues=" + Arrays.toString(rec.clues()));
|
||||
return rec;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
public WordOut(long l, int startRow, int startCol, char d, int arrowRow, int arrowCol, boolean isReversed, byte[] bytes) {
|
||||
val meta = Meta.lookup(l);
|
||||
val meta = lookup(l, bytes);
|
||||
this(Lemma.asWord(l, bytes), new int[]{ arrowRow, arrowCol, startRow, startCol }, startRow, startCol, d, arrowRow, arrowCol, isReversed,
|
||||
meta.simpel(), meta.clues());
|
||||
}
|
||||
@@ -228,7 +234,7 @@ public record Export() {
|
||||
|
||||
public record ExportedPuzzle(String[] grid, WordOut[] words, int difficulty, Rewards rewards) { }
|
||||
|
||||
public record PuzzleResult(Clued clues, Gridded grid, Slotinfo[] slots, FillResult filled) {
|
||||
public record PuzzleResult(Signa clues, Puzzle grid, Slotinfo[] slots, FillResult filled) {
|
||||
|
||||
public ExportedPuzzle exportFormatFromFilled(Rewards rewards) {
|
||||
// If nothing placed: return full grid mapped to letters/# only
|
||||
@@ -236,7 +242,7 @@ public record Export() {
|
||||
return new ExportedPuzzle(grid.exportGrid(_ -> '#', '#'), new WordOut[0], 1, rewards);
|
||||
}
|
||||
|
||||
var placed = Arrays.stream(slots).map(slot -> new Placed(slot.assign().w, slot.key(), Gridded.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).toArray())).toArray(
|
||||
var placed = Arrays.stream(slots).map(slot -> new Placed(slot.assign().w, slot.key(), Puzzle.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).toArray())).toArray(
|
||||
Placed[]::new);
|
||||
|
||||
// 2) bounding box around all word cells + arrow cells, with 1-cell margin
|
||||
@@ -258,7 +264,7 @@ public record Export() {
|
||||
}
|
||||
|
||||
// 3) map of only used letter cells (everything else becomes '#')
|
||||
var map = grid.stream().collect(Collectors.toMap(LetterAt::index, LetterAt::human));
|
||||
var map = grid.stream().collect(Collectors.toMap(Lettrix::index, Lettrix::human));
|
||||
// 4) render gridv2 over cropped bounds (out-of-bounds become '#')
|
||||
var gridv2 = new String[Math.max(0, maxR - minR + 1)];
|
||||
for (int r = minR, i = 0; r <= maxR; r++, i++) {
|
||||
@@ -279,20 +285,17 @@ public record Export() {
|
||||
p.arrowCol() - MIN_C,
|
||||
p.isReversed(), bytes
|
||||
)).toArray(WordOut[]::new);
|
||||
var total = 0.0001d;
|
||||
for (var word : wordsOut) {
|
||||
total += word.complex();
|
||||
}
|
||||
var total = 0.0001d + Arrays.stream(wordsOut).mapToDouble(WordOut::complex).sum();
|
||||
return new ExportedPuzzle(gridv2, wordsOut, (int) (total / wordsOut.length), rewards);
|
||||
}
|
||||
}
|
||||
|
||||
record LetterAt(int index, byte letter) {
|
||||
record Lettrix(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(); }
|
||||
public int row() { return INDEX_ROW(index); }
|
||||
public int col() { return INDEX_COL(index); }
|
||||
public char human() { return LETTER(letter); }
|
||||
static Lettrix from(int index, byte[] bytes) { return new Lettrix(index, bytes[index]); }
|
||||
public int index(int cols) { return (row() * cols) + col(); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
package puzzle;
|
||||
|
||||
import module java.base;
|
||||
import anno.DictGen;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.val;
|
||||
import puzzle.Masker.Clues;
|
||||
import puzzle.SwedishGenerator.Rng;
|
||||
|
||||
import static puzzle.Export.*;
|
||||
import static puzzle.SwedishGenerator.*;
|
||||
|
||||
@DictGen(
|
||||
packageName = "puzzle.dict800",
|
||||
className = "DictData800",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 800,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
)
|
||||
public class Main {
|
||||
|
||||
final static String OUT_DIR = envOrDefault("OUT_DIR", "/data/puzzle");
|
||||
@@ -50,6 +59,7 @@ public class Main {
|
||||
void main(String[] args) {
|
||||
_main(args);
|
||||
}
|
||||
@SneakyThrows
|
||||
public void _main(String[] args) {
|
||||
var opts = parseArgs(args);
|
||||
|
||||
@@ -245,7 +255,7 @@ public class Main {
|
||||
PuzzleResult generatePuzzle(Opts opts) {
|
||||
|
||||
var tLoad0 = System.nanoTime();
|
||||
var dict = puzzle.dict800.DictData.DICT800;//loadDict(opts.wordsPath);
|
||||
Dict dict = puzzle.dict800.DictData800.DICT800;//loadDict(opts.wordsPath);
|
||||
var tLoad1 = System.nanoTime();
|
||||
|
||||
section("Load");
|
||||
@@ -365,7 +375,7 @@ public class Main {
|
||||
var filled = fillMask(rng, slotInfo, grid);
|
||||
|
||||
if (!multiThreaded) {
|
||||
System.out.print("\r" + Strings.padRight("", 120) + "\r");
|
||||
System.out.print("\r" + " ".repeat(120 - "".length()) + "\r");
|
||||
System.out.flush();
|
||||
}
|
||||
// print a final progress line
|
||||
@@ -395,7 +405,7 @@ public class Main {
|
||||
//System.out.println(Arrays.stream(new Clued(mask).gridToString().split("\n")).map(s -> "\"" + s + "\\n\" +").collect(Collectors.joining("\n")));
|
||||
}
|
||||
if (filled.ok()) {
|
||||
return new PuzzleResult(new Clued(mask), new Gridded(grid, mask), slotInfo, filled);
|
||||
return new PuzzleResult(new Signa(mask), new Puzzle(grid, mask), slotInfo, filled);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package puzzle;
|
||||
|
||||
import module java.base;
|
||||
import anno.GenerateNeighbor;
|
||||
import anno.GenerateNeighbors;
|
||||
import anno.Shaped;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.experimental.Accessors;
|
||||
@@ -13,29 +16,28 @@ 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 int MIN_LEN = Neighbors9x8.MIN_LEN;//Config.MIN_LEN;
|
||||
public static final int STACK_SIZE = 128;
|
||||
public static final int C = Neighbors9x8.C;
|
||||
public static final int R = Neighbors9x8.R;
|
||||
public static final double SIZED = Neighbors9x8.SIZED;// ~18
|
||||
private static final long[] NBR_LO = Neighbors9x8.NBR_LO;
|
||||
private static final long[] NBR_HI = Neighbors9x8.NBR_HI;
|
||||
private final Rng rng;
|
||||
private final int[] stack;
|
||||
private final Clues cache;
|
||||
private final int[] activeCIdx = new int[Neighbors9x8.SIZE];
|
||||
private final long[] activeSLo = new long[Neighbors9x8.SIZE];
|
||||
private final long[] activeSHi = new long[Neighbors9x8.SIZE];
|
||||
private final long[] adjLo = new long[Neighbors9x8.SIZE];
|
||||
private final long[] adjHi = new long[Neighbors9x8.SIZE];
|
||||
private final int[] rCount = new int[Neighbors9x8.R];
|
||||
private final int[] cCount = new int[Neighbors9x8.C];
|
||||
|
||||
@Shaped public static final rci[] IT = Neighbors9x8.IT;
|
||||
@Shaped public static final long[] PATH_LO = Neighbors9x8.PATH_LO;
|
||||
@Shaped public static final long[] PATH_HI = Neighbors9x8.PATH_HI;
|
||||
@Shaped public static final long MASK_LO = -1L;
|
||||
@Shaped public static final long MASK_HI = Neighbors9x8.MASK_HI;//(1L << (SIZE - 64)) - 1;
|
||||
@Shaped public static final int MIN_LEN = Neighbors9x8.MIN_LEN;//Config.MIN_LEN;
|
||||
@Shaped public static final int C = Neighbors9x8.C;
|
||||
@Shaped public static final int R = Neighbors9x8.R;
|
||||
@Shaped public static final double SIZED = Neighbors9x8.SIZED;// ~18
|
||||
@Shaped private static final long[] NBR_LO = Neighbors9x8.NBR_LO;
|
||||
@Shaped private static final long[] NBR_HI = Neighbors9x8.NBR_HI;
|
||||
@Shaped private final int[] activeCIdx = new int[Neighbors9x8.SIZE];
|
||||
@Shaped private final long[] activeSLo = new long[Neighbors9x8.SIZE];
|
||||
@Shaped private final long[] activeSHi = new long[Neighbors9x8.SIZE];
|
||||
@Shaped private final long[] adjLo = new long[Neighbors9x8.SIZE];
|
||||
@Shaped private final long[] adjHi = new long[Neighbors9x8.SIZE];
|
||||
@Shaped private final int[] rCount = new int[Neighbors9x8.R];
|
||||
@Shaped private final int[] cCount = new int[Neighbors9x8.C];
|
||||
private final Rng rng;
|
||||
private final int[] stack;
|
||||
private final Clues cache;
|
||||
public static final int STACK_SIZE = 128;
|
||||
public Masker(Rng rng, int[] stack, Clues cache) {
|
||||
this.rng = rng;
|
||||
this.stack = stack;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package puzzle;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import lombok.experimental.UtilityClass;
|
||||
import puzzle.SwedishGenerator.Lemma;
|
||||
import java.io.IOException;
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -11,8 +12,7 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.Arrays;
|
||||
import java.util.Locale;
|
||||
|
||||
@UtilityClass
|
||||
public class Meta {
|
||||
|
||||
static final Gson GSON = new Gson();
|
||||
@@ -27,14 +27,14 @@ public class Meta {
|
||||
static final Path shardData = dir.resolve("shard0.data");
|
||||
static final Path shardMap = dir.resolve("shard0.map");
|
||||
|
||||
private static Path detectShardDir() {
|
||||
private Path detectShardDir() {
|
||||
// 1) optioneel override
|
||||
String p = System.getProperty("puzzle.shards.dir");
|
||||
if (p != null && !p.isBlank()) return Path.of(p).toAbsolutePath().normalize();
|
||||
|
||||
// 2) default: naast classes output (CLASS_OUTPUT/shards)
|
||||
try {
|
||||
var url = Meta.class.getProtectionDomain().getCodeSource().getLocation(); // classes dir (niet jar)
|
||||
var url = Meta.class.getProtectionDomain().getCodeSource().getLocation(); // classes dir (niet jar)
|
||||
Path classes = Path.of(url.toURI());
|
||||
return classes.resolve("shards");
|
||||
} catch (Exception e) {
|
||||
@@ -43,7 +43,7 @@ public class Meta {
|
||||
}
|
||||
}
|
||||
// --- Lookup: w -> i using mmap ---
|
||||
static int findIndexInMapMmap(long target) throws IOException {
|
||||
private int findIndexInMapMmap(long target) throws IOException {
|
||||
try (var ch = FileChannel.open(Meta.shardMap, StandardOpenOption.READ)) {
|
||||
var mbb = (MappedByteBuffer) ch.map(FileChannel.MapMode.READ_ONLY, 0, ch.size()).order(ORDER);
|
||||
|
||||
@@ -67,7 +67,7 @@ public class Meta {
|
||||
}
|
||||
|
||||
// --- Read record i from shard.data (your format) ---
|
||||
static ShardLem readRecord(long w, int i) throws IOException {
|
||||
private ShardLem readRecord(long w, int i) throws IOException {
|
||||
try (var ch = FileChannel.open(Meta.shardData, StandardOpenOption.READ)) {
|
||||
var hdr = ByteBuffer.allocate(12).order(ORDER);
|
||||
ch.read(hdr);
|
||||
@@ -97,11 +97,11 @@ public class Meta {
|
||||
|
||||
var simpel = Integer.parseInt(parts[1]);
|
||||
var clues = GSON.fromJson(parts[2], String[].class);
|
||||
return new ShardLem(w, simpel, clues);
|
||||
return new ShardLem(w, simpel, i, clues);
|
||||
}
|
||||
}
|
||||
|
||||
static int readIntAt(FileChannel ch, long pos) throws IOException {
|
||||
private int readIntAt(FileChannel ch, long pos) throws IOException {
|
||||
var b = ByteBuffer.allocate(4).order(ORDER);
|
||||
ch.position(pos);
|
||||
ch.read(b);
|
||||
@@ -109,23 +109,18 @@ public class Meta {
|
||||
return b.getInt();
|
||||
}
|
||||
|
||||
// --- Demo main ---
|
||||
public static ShardLem lookup(long w) {
|
||||
public record ShardLem(long w, int simpel, int mmap, String[] clues) { }
|
||||
|
||||
public ShardLem lookupSilent(long w) {
|
||||
try {
|
||||
var i = findIndexInMapMmap(Lemma.pack43(w));
|
||||
System.out.println("\nQuery: w=" + w + " -> i=" + i);
|
||||
var i = findIndexInMapMmap(Lemma.packLetterAndLengthBits(w));
|
||||
if (i >= 0) {
|
||||
var rec = readRecord(w, i);
|
||||
System.out.println(" simpel=" + rec.simpel());
|
||||
System.out.println(" clues=" + Arrays.toString(rec.clues()));
|
||||
return rec;
|
||||
return readRecord(w, i);
|
||||
} else {
|
||||
System.out.println(" NOT FOUND");
|
||||
throw new RuntimeException("NOT FOUND");
|
||||
throw new RuntimeException("NOT FOUND{w=" + w + ", text=" + Lemma.asWord(w, new byte[8]) + "}");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
public record ShardLem(long w, int simpel, String[] clues) { }
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package puzzle;
|
||||
|
||||
import gen.GenDict;
|
||||
import gen.GenerateConst;
|
||||
import gen.GenerateNeighbors;
|
||||
import anno.ConstGen;
|
||||
import anno.GenerateNeighbor;
|
||||
import anno.GenerateNeighbors;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.val;
|
||||
import precomp.Neighbors9x8;
|
||||
import static java.lang.Long.*;
|
||||
import static java.lang.Long.bitCount;
|
||||
import static java.lang.Long.numberOfLeadingZeros;
|
||||
import static java.lang.Long.numberOfTrailingZeros;
|
||||
import static java.nio.charset.StandardCharsets.US_ASCII;
|
||||
|
||||
@@ -27,24 +28,21 @@ import static java.nio.charset.StandardCharsets.US_ASCII;
|
||||
* javac SwedishGenerator.java
|
||||
* java SwedishGenerator [--seed N] [--pop N] [--gens N] [--tries N] [--words word-list.txt]
|
||||
*/
|
||||
@SuppressWarnings("ALL")
|
||||
@GenerateNeighbors(C = 9, R = 8, packageName = "precomp", className = "Neighbors9x8", MIN_LEN = 2)
|
||||
@GenerateConst(C = 9, R = 8, packageName = "precomp", className = "Const9x8")
|
||||
@GenDict(
|
||||
packageName = "puzzle.dict950",
|
||||
className = "DictData950",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 950,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
)
|
||||
@ConstGen(C = 9, R = 8, packageName = "precomp", className = "Const9x8")
|
||||
@GenerateNeighbors({
|
||||
@GenerateNeighbor(C = 9, R = 8, packageName = "precomp", className = "Neighbors9x8", MIN_LEN = 2),
|
||||
@GenerateNeighbor(C = 4, R = 3, packageName = "precomp", className = "Neighbors4x3", MIN_LEN = 2)
|
||||
})
|
||||
/*@GenerateShapedCopies(
|
||||
shapes = { "precomp.Neighbors9x8", "precomp.Neighbors4x3" }
|
||||
)*/
|
||||
public record SwedishGenerator() {
|
||||
|
||||
public static final long X = 0L;
|
||||
public static final int SIZE = Neighbors9x8.SIZE;
|
||||
public static final int MAX_TRIES_PER_SLOT = 500;// MAX_TRIES_PER_SLOT;
|
||||
public static final long RANGE_0_SIZE = Neighbors9x8.RANGE_0_SIZE;
|
||||
public static final long RANGE_0_624 = Neighbors9x8.RANGE_0_624;
|
||||
public static final long X = 0L;
|
||||
public static final int SIZE = Neighbors9x8.SIZE;
|
||||
public static final int MAX_TRIES_PER_SLOT = 500;// MAX_TRIES_PER_SLOT;
|
||||
public static final long RANGE_0_SIZE = Neighbors9x8.RANGE_0_SIZE;
|
||||
public static final long RANGE_0_624 = Neighbors9x8.RANGE_0_624;
|
||||
|
||||
public static boolean isLo(int n) { return (n & 64) == 0; }
|
||||
interface Bit1029 {
|
||||
@@ -57,12 +55,12 @@ public record SwedishGenerator() {
|
||||
}
|
||||
|
||||
//@formatter:off
|
||||
public static record Dict(DictEntry[] index, int length) { }
|
||||
public static record DictEntry(long[] words, long[][] posBitsets, int length, int numlong) { }
|
||||
public record Dict(DictEntry[] index, int length) { }
|
||||
public record DictEntry(long[] words, long[][] posBitsets, int length, int numlong) { }
|
||||
@AllArgsConstructor @NoArgsConstructor static final class Assign { long w; }
|
||||
public static final class FillStats { public double simplicity; }
|
||||
@AllArgsConstructor public static final class Grid { public final byte[] g; public long lo, hi; }
|
||||
public static record FillResult(boolean ok, long nodes, long backtracks, int lastMRV, long elapsed, FillStats stats) { }
|
||||
public record FillResult(boolean ok, long nodes, long backtracks, int lastMRV, long elapsed, FillStats stats) { }
|
||||
//@formatter:on
|
||||
|
||||
public static final class Rng {
|
||||
@@ -91,10 +89,10 @@ public record SwedishGenerator() {
|
||||
public int biasedIndexPow3(int N) { return (int) (((Math.min(nextU32(), Math.min(nextU32(), nextU32())) & 0xFFFFFFFFL) * (long) N) >>> 32); }
|
||||
}
|
||||
|
||||
public static interface Lemma {
|
||||
public interface Lemma {
|
||||
|
||||
static final long LETTER_MASK = (1L << 40) - 1; // low 40 bits
|
||||
static final long INDEX_MASK = (1L << 43) - 1; // 24 bits
|
||||
long LETTER_MASK = (1L << 40) - 1; // low 40 bits
|
||||
long LETTER_AND_LENGTH_MASK = (1L << 43) - 1;
|
||||
|
||||
static long from(byte[] word) { return packShiftIn(word) | ((long) (word.length - 1) << 40); }
|
||||
static long pack(long w, int shardIndex) { return w | (((long) shardIndex) << 43) | ((long) length0(w)) << 40; }
|
||||
@@ -103,23 +101,21 @@ public record SwedishGenerator() {
|
||||
for (int i = b.length - 1; i >= 0; i--) w = (w << 5) | ((long) b[i] & 31);
|
||||
return w;
|
||||
}
|
||||
static public long from(String word) { return packShiftIn(word.getBytes(US_ASCII)) | ((long) (word.length() - 1) << 40); }
|
||||
static long from(String word) { return packShiftIn(word.getBytes(US_ASCII)) | ((long) (word.length() - 1) << 40); }
|
||||
static byte byteAt(long word, int idx) { return (byte) ((word >>> (idx * 5)) & 0b11111L); }
|
||||
static int length0(long word) { return ((63 - numberOfLeadingZeros(word & LETTER_MASK)) / 5); }
|
||||
public static String asWord(long word, byte[] bytes) {
|
||||
static String asWord(long word, byte[] bytes) {
|
||||
int bi = 0;
|
||||
for (long w = word & LETTER_MASK; w != 0; w >>>= 5) bytes[bi++] = (byte) ((w & 31) | 64);
|
||||
return new String(bytes, 0, bi, US_ASCII);
|
||||
}
|
||||
static int unpackIndex(long w) { return (int) (w >>> 40); }
|
||||
static int unpackSize(long w) { return (int) (w >>> 40) & 7; }
|
||||
static int unpackLetters(long w) { return (int) (w & LETTER_MASK); }
|
||||
static long pack43(long w) {
|
||||
return w & INDEX_MASK;
|
||||
}
|
||||
static int unpackIndex(long w) { return (int) (w >>> 40); }
|
||||
static int unpackSize(long w) { return (int) (w >>> 40) & 7; }
|
||||
static int unpackLetters(long w) { return (int) (w & LETTER_MASK); }
|
||||
static long packLetterAndLengthBits(long w) { return w & LETTER_AND_LENGTH_MASK; }
|
||||
}
|
||||
|
||||
public static record Slotinfo(int key, long lo, long hi, int score, Assign assign, DictEntry entry, int minL) {
|
||||
public record Slotinfo(int key, long lo, long hi, int score, Assign assign, DictEntry entry, int minL) {
|
||||
|
||||
public static int wordCount(int k, Slotinfo[] arr) {
|
||||
for (var n = 1; n < arr.length; n++) if (arr[n].assign.w != X) k++;
|
||||
@@ -289,12 +285,11 @@ public record SwedishGenerator() {
|
||||
val words = s.entry.words;
|
||||
long low, top;
|
||||
if (info != null && info.length > 0) {
|
||||
var idxs = info;
|
||||
var L = idxs.length;
|
||||
var L = info.length;
|
||||
var tries = Math.min(MAX_TRIES_PER_SLOT, L);
|
||||
|
||||
for (var t = 0; t < tries; t++) {
|
||||
var w = words[idxs[rng.biasedIndexPow3(L - 1)]];
|
||||
var w = words[info[rng.biasedIndexPow3(L - 1)]];
|
||||
var lemIdx = Lemma.unpackIndex(w);
|
||||
if (Bit1029.get(used, lemIdx)) continue;
|
||||
low = glo;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
package puzzle;
|
||||
|
||||
import module java.base;
|
||||
import anno.DictGen;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import precomp.Neighbors9x8.rci;
|
||||
import puzzle.Export.ClueAt;
|
||||
import puzzle.Export.Clued;
|
||||
import puzzle.Export.Gridded;
|
||||
import puzzle.Export.LetterAt;
|
||||
import puzzle.Export.Vestigium;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
import puzzle.Export.Lettrix;
|
||||
import puzzle.Export.PuzzleResult;
|
||||
import puzzle.Export.Rewards;
|
||||
import puzzle.Main.Opts;
|
||||
@@ -28,7 +29,14 @@ import static puzzle.SwedishGenerator.Slotinfo;
|
||||
import static puzzle.SwedishGenerator.fillMask;
|
||||
import static puzzle.SwedishGeneratorTest.LETTER_A;
|
||||
import static puzzle.SwedishGeneratorTest.LETTER_Z;
|
||||
|
||||
@DictGen(
|
||||
packageName = "puzzle.dict950",
|
||||
className = "DictData950",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 950,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
)
|
||||
public class MainTest {
|
||||
|
||||
static final Opts opts = new Main.Opts() {{
|
||||
@@ -44,8 +52,8 @@ public class MainTest {
|
||||
}};
|
||||
@Test
|
||||
void testExtractSlots() {
|
||||
var clues = Clued.of(r0c0d1);
|
||||
var grid = new Gridded(clues);
|
||||
var clues = Signa.of(r0c0d1);
|
||||
var grid = new Puzzle(clues);
|
||||
val g = grid.grid().g;
|
||||
GridBuilder.placeWord(grid.grid(), g, r0c0d1.slotKey, (1L << OFF_0_1) | (1L << OFF_0_2), 0, AB);
|
||||
|
||||
@@ -53,7 +61,7 @@ public class MainTest {
|
||||
assertEquals(1, slots.length);
|
||||
var s = slots[0];
|
||||
assertEquals(8, Masker.Slot.length(s.lo(), s.hi()));
|
||||
var cells = Gridded.cellWalk((byte) s.key(), s.lo(), s.hi()).mapToObj(c -> Masker.IT[c]).toArray(rci[]::new);
|
||||
var cells = Puzzle.cellWalk((byte) s.key(), s.lo(), s.hi()).mapToObj(c -> Masker.IT[c]).toArray(rci[]::new);
|
||||
assertEquals(0, cells[0].r());
|
||||
assertEquals(1, cells[0].c());
|
||||
assertEquals(0, cells[1].r());
|
||||
@@ -72,7 +80,7 @@ public class MainTest {
|
||||
@Test
|
||||
void testForEachSlot() {
|
||||
var count = new AtomicInteger(0);
|
||||
Clued.of(r0c0d1).forEachSlot((key, lo, hi) -> {
|
||||
Signa.of(r0c0d1).forEachSlot((key, lo, hi) -> {
|
||||
count.incrementAndGet();
|
||||
assertEquals(8, Long.bitCount(lo) + Long.bitCount(hi));
|
||||
assertEquals(0, Masker.IT[Long.numberOfTrailingZeros(lo)].r());
|
||||
@@ -91,15 +99,15 @@ public class MainTest {
|
||||
}
|
||||
@Test
|
||||
public void testGridBasics() {
|
||||
var clues = Clued.of(r2c1d2);
|
||||
var grid = new Gridded(clues);
|
||||
var clues = Signa.of(r2c1d2);
|
||||
var grid = new Puzzle(clues);
|
||||
|
||||
// Test set/get
|
||||
GridBuilder.placeWord(grid.grid(), grid.grid().g, r2c1d2.slotKey, (1L << OFF_1_1) | (1L << OFF_0_1), 0, AZ);
|
||||
val map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
val map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
Assertions.assertEquals(LETTER_A, map.get(OFF_1_1));
|
||||
Assertions.assertEquals(LETTER_Z, map.get(OFF_0_1));
|
||||
var clueMap = clues.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
var clueMap = clues.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(1, clueMap.size());
|
||||
Assertions.assertEquals(UP2.dir, clueMap.get(OFF_2_1));
|
||||
|
||||
@@ -112,7 +120,7 @@ public class MainTest {
|
||||
// Test isDigitAt
|
||||
Assertions.assertFalse(clues.isClueLo(OFF_0_0));
|
||||
Assertions.assertTrue(clues.isClueLo(OFF_2_1));
|
||||
clueMap = clues.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
clueMap = clues.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(UP2.dir, clueMap.get(OFF_2_1));
|
||||
Assertions.assertFalse(clues.isClueLo(OFF_2_3));
|
||||
Assertions.assertFalse(clues.isClueLo(OFF_1_1));
|
||||
@@ -124,24 +132,24 @@ public class MainTest {
|
||||
}
|
||||
@Test
|
||||
public void testCluesDeepCopy() {
|
||||
var clues = Clued.of(r0c0d1, r0c1d2, r1c0d3, r1c1d0);
|
||||
var clues = Signa.of(r0c0d1, r0c1d2, r1c0d3, r1c1d0);
|
||||
|
||||
var copy = clues.deepCopyGrid();
|
||||
var clueMap = clues.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
var clueMap = clues.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(RIGHT1.dir, clueMap.get(OFF_0_0));
|
||||
|
||||
copy.setClue(r0c0d0);
|
||||
var copied = copy.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
var copied = copy.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(DOWN0.dir, copied.get(OFF_0_0));
|
||||
Assertions.assertEquals(RIGHT1.dir, clueMap.get(OFF_0_0));
|
||||
}
|
||||
@Test
|
||||
public void testMini() {
|
||||
Assertions.assertTrue(Clued.of(r1c1d3).isClueLo(OFF_1_1));
|
||||
Assertions.assertTrue(Signa.of(r1c1d3).isClueLo(OFF_1_1));
|
||||
}
|
||||
@Test
|
||||
void testFiller2() {
|
||||
var mask = Clued.of(
|
||||
var mask = Signa.of(
|
||||
r0c0d1,
|
||||
r0c3d0, r0c4d0, r0c5d0, r0c6d0, r0c7d0, r0c8d0,
|
||||
r1c0d1,
|
||||
@@ -151,9 +159,9 @@ public class MainTest {
|
||||
r5c0d3,
|
||||
r6c0d3,
|
||||
r7c0d2, r7c1d2, r7c2d2, r7c8d3
|
||||
);
|
||||
);
|
||||
Assertions.assertEquals(20, mask.clueCount());
|
||||
val map = mask.stream().collect(Collectors.toMap(ClueAt::index, ClueAt::clue));
|
||||
val map = mask.stream().collect(Collectors.toMap(Vestigium::index, Vestigium::clue));
|
||||
Assertions.assertEquals(20, map.size());
|
||||
var slots = mask.slots(DictData950.DICT950);
|
||||
// var filled = fillMask(rng, slotInfo, grid, false);
|
||||
@@ -163,7 +171,7 @@ public class MainTest {
|
||||
void testFiller() {
|
||||
System.out.println(DictData950.DICT950.index().length);
|
||||
val rng = new Rng(-343913721);
|
||||
var mask = Clued.of(
|
||||
var mask = Signa.of(
|
||||
r0c3d3, r0c6d3, r0c7d0, r0c8d0,
|
||||
r1c1d1,
|
||||
r2c1d1,
|
||||
@@ -172,7 +180,7 @@ public class MainTest {
|
||||
r5c1d1,
|
||||
r6c1d1, r6c8d2,
|
||||
r7c0d2, r7c1d1, r7c4d2, r7c5d2, r7c8d3
|
||||
);
|
||||
);
|
||||
var slotInfo = mask.slots(DictData950.DICT950);
|
||||
var grid = Slotinfo.grid(slotInfo);
|
||||
var filled = fillMask(rng, slotInfo, grid);
|
||||
@@ -181,7 +189,7 @@ public class MainTest {
|
||||
Assertions.assertEquals("BEADEMT", Lemma.asWord(slotInfo[0].assign().w, Export.BYTES.get()));
|
||||
Assertions.assertEquals(-1L, grid.lo);
|
||||
Assertions.assertEquals(-1L, grid.hi);
|
||||
var g = new Gridded(grid, mask.c());
|
||||
var g = new Puzzle(grid, mask.c());
|
||||
g.gridToString();
|
||||
var aa = new PuzzleResult(mask, g, slotInfo, filled).exportFormatFromFilled(new Rewards(1, 1, 1));
|
||||
System.out.println(String.join("\n", aa.grid()));
|
||||
|
||||
@@ -2,8 +2,8 @@ package puzzle;
|
||||
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import puzzle.Export.Clued;
|
||||
import puzzle.Export.Gridded;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
import puzzle.Export.Placed;
|
||||
import puzzle.Export.PuzzleResult;
|
||||
import puzzle.Export.Rewards;
|
||||
@@ -36,7 +36,7 @@ public class MarkerTest {
|
||||
for (var i = 0; i < 200; i++) {
|
||||
for (var j = 19; j < 24; j++) {
|
||||
var clues = masker.randomMask(j);
|
||||
assertTrue(masker.isValid(clues), "Mask should be valid for length \n" + new Clued(clues).gridToString());
|
||||
assertTrue(masker.isValid(clues), "Mask should be valid for length \n" + new Signa(clues).gridToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public class MarkerTest {
|
||||
simCount++;
|
||||
masker.mutate(clues);
|
||||
sim += orig.similarity(clues);
|
||||
assertTrue(masker.isValid(clues), "Mask should be valid for length \n" + new Clued(clues).gridToString());
|
||||
assertTrue(masker.isValid(clues), "Mask should be valid for length \n" + new Signa(clues).gridToString());
|
||||
}
|
||||
}
|
||||
System.out.println("Average similarity: " + sim / simCount);
|
||||
@@ -73,21 +73,21 @@ public class MarkerTest {
|
||||
simCount++;
|
||||
var cross = masker.crossover(clues, clues2);
|
||||
sim += Math.max(cross.similarity(clues), cross.similarity(clues2));
|
||||
assertTrue(masker.isValid(cross), "Mask should be valid for length \n" + new Clued(cross).gridToString());
|
||||
assertTrue(masker.isValid(cross), "Mask should be valid for length \n" + new Signa(cross).gridToString());
|
||||
}
|
||||
}
|
||||
System.out.println("Average similarity: " + sim / simCount);
|
||||
}
|
||||
@Test
|
||||
void testSimilarity() {
|
||||
var a = Clued.of(r0c0d1, r2c1d0).c();
|
||||
var b = Clued.of(r0c0d1, r2c1d0).c();
|
||||
var a = Signa.of(r0c0d1, r2c1d0).c();
|
||||
var b = Signa.of(r0c0d1, r2c1d0).c();
|
||||
|
||||
// Identity
|
||||
assertEquals(1.0, a.similarity(b), 0.001);
|
||||
|
||||
// Different direction
|
||||
var c = Clued.of(r0c0d0, r2c1d0);
|
||||
var c = Signa.of(r0c0d0, r2c1d0);
|
||||
assertTrue(a.similarity(c.c()) < 1.0);
|
||||
|
||||
// Completely different
|
||||
@@ -103,10 +103,10 @@ public class MarkerTest {
|
||||
assertTrue(masker.isValid(Clues.createEmpty()));
|
||||
|
||||
// Valid clue: Right from (0,0) in 9x8 grid. Length is 8.
|
||||
assertTrue(masker.isValid(Clued.of(r0c0d1).c()));
|
||||
assertTrue(masker.isValid(Signa.of(r0c0d1).c()));
|
||||
|
||||
// Invalid clue: Right from (0,7) in 9x8 grid. Length is 1 (too short if MIN_LEN >= 2).
|
||||
assertFalse(masker.isValid(Clued.of(r0c7d1).c()));
|
||||
assertFalse(masker.isValid(Signa.of(r0c7d1).c()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -138,18 +138,18 @@ public class MarkerTest {
|
||||
// Clue 1: (0,0) Right. Slot cells: (0,1), (0,2), (0,3), (0,4), (0,5), (0,6), (0,7), (0,8)
|
||||
// Clue 2: (1,2) Up. Slot cells: (0,2)
|
||||
// Intersection is exactly 1 cell (0,2). Valid.
|
||||
assertTrue(masker.isValid(Clued.of(r0c0d1, r2c2d2).c()));
|
||||
assertTrue(masker.isValid(Signa.of(r0c0d1, r2c2d2).c()));
|
||||
|
||||
// Clue 3: (1,1) Right. Slot cells: (1,2), (1,3), ...
|
||||
// No intersection with Clue 1 or 2. Valid.
|
||||
assertTrue(masker.isValid(Clued.of(r0c0d1, r2c2d2, r1c1d1).c()));
|
||||
assertTrue(masker.isValid(Signa.of(r0c0d1, r2c2d2, r1c1d1).c()));
|
||||
|
||||
// Now create a violation: two slots sharing 2 cells.
|
||||
// We can do this with Corner Down and another clue.
|
||||
// Clue A: (0,0) Corner Down. Starts at (0,1) goes down: (0,1), (1,1), (2,1), (3,1), ...
|
||||
// Clue B: (0,2) Corner Down Left. Starts at (0,1) goes down: (0,1), (1,1), (2,1), ...
|
||||
// They share MANY cells starting from (0,1).
|
||||
assertFalse(masker.isValid(Clued.of(r0c0d4, r0c2d5).c()));
|
||||
assertFalse(masker.isValid(Signa.of(r0c0d4, r0c2d5).c()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -233,7 +233,7 @@ public class MarkerTest {
|
||||
}
|
||||
@Test
|
||||
void testCornerDownSlot() {
|
||||
var clues = Clued.of(r0c0d4);
|
||||
var clues = Signa.of(r0c0d4);
|
||||
// Clue op (0,0), type 4 (Corner Down)
|
||||
|
||||
assertEquals(r0c0d4.d, clues.getDir(r0c0d4.index));
|
||||
@@ -257,14 +257,14 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testCornerDownExtraction() {
|
||||
var slots = Masker.slots(Clued.of(r0c0d4).c(), DictData950.DICT950.index());
|
||||
var slots = Masker.slots(Signa.of(r0c0d4).c(), DictData950.DICT950.index());
|
||||
assertEquals(1, slots.length);
|
||||
assertEquals(r0c0d4.d, Masker.Slot.dir(slots[0].key()));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCornerDownLeftSlot() {
|
||||
var clues = Clued.of(r0c1d5);
|
||||
var clues = Signa.of(r0c1d5);
|
||||
|
||||
assertEquals(r0c1d5.d, clues.getDir(r0c1d5.index));
|
||||
|
||||
@@ -287,15 +287,15 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testCornerDownLeftExtraction() {
|
||||
var slots = Clued.of(r0c1d5).slots(DictData950.DICT950);
|
||||
var slots = Signa.of(r0c1d5).slots(DictData950.DICT950);
|
||||
|
||||
assertEquals(1, slots.length);
|
||||
assertEquals(r0c1d5.d, Masker.Slot.dir(slots[0].key()));
|
||||
}
|
||||
@Test
|
||||
void testExportFormatFromFilled() {
|
||||
val clues = Clued.of(r0c0d1, r0c5d3);
|
||||
var grid = new Gridded(clues);
|
||||
val clues = Signa.of(r0c0d1, r0c5d3);
|
||||
var grid = new Puzzle(clues);
|
||||
|
||||
// key = (cellIndex << 2) | (direction)
|
||||
var key = r0c0d1.slotKey;
|
||||
@@ -346,7 +346,7 @@ public class MarkerTest {
|
||||
var grid = SwedishGeneratorTest.createEmpty();
|
||||
val clues = Clues.createEmpty();
|
||||
var fillResult = new FillResult(true, 0, 0, 0, 0, new FillStats());
|
||||
var puzzleResult = new PuzzleResult(new Clued(clues), new Gridded(grid, clues), new Slotinfo[0], fillResult);
|
||||
var puzzleResult = new PuzzleResult(new Signa(clues), new Puzzle(grid, clues), new Slotinfo[0], fillResult);
|
||||
|
||||
var exported = puzzleResult.exportFormatFromFilled(new Rewards(0, 0, 0));
|
||||
|
||||
@@ -362,19 +362,20 @@ public class MarkerTest {
|
||||
|
||||
@Test
|
||||
void testShardToClue() {
|
||||
var bytes = Export.BYTES.get();
|
||||
for (var length = 2; length <= 8; length++) {
|
||||
val entry = DictData950.DICT950.index()[length];
|
||||
if (entry == null) continue;
|
||||
val words = entry.words();
|
||||
for (var i = 0; i < Math.min(words.length, 5); i++) {
|
||||
val wordVal = words[i];
|
||||
val word = Lemma.asWord(wordVal, Export.BYTES.get());
|
||||
val clueRec = Meta.lookup(wordVal);
|
||||
|
||||
assertNotNull(clueRec);
|
||||
assertEquals(word, Lemma.asWord(clueRec.w(), Export.BYTES.get()));
|
||||
assertTrue(clueRec.simpel() >= 0);
|
||||
assertTrue(clueRec.clues().length > 0);
|
||||
val rec = Meta.lookupSilent(wordVal);
|
||||
|
||||
assertNotNull(rec);
|
||||
assertEquals(Lemma.asWord(wordVal, bytes), Lemma.asWord(rec.w(), bytes));
|
||||
assertTrue(rec.simpel() >= 0);
|
||||
assertTrue(rec.clues().length > 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -382,13 +383,14 @@ public class MarkerTest {
|
||||
@Test
|
||||
void testSpecificWords() {
|
||||
// These words are known to be in the CSV and likely in the dictionary
|
||||
var bytes = Export.BYTES.get();
|
||||
var testWords = new String[]{ "EEN", "NAAR", "IEDEREEN" };
|
||||
for (var wStr : testWords) {
|
||||
var w = Lemma.from(wStr);
|
||||
|
||||
val clueRec = Meta.lookup(w);
|
||||
val clueRec = Meta.lookupSilent(w);
|
||||
assertNotNull(clueRec);
|
||||
assertEquals(wStr, Lemma.asWord(clueRec.w(), Export.BYTES.get()));
|
||||
assertEquals(wStr, Lemma.asWord(clueRec.w(), bytes));
|
||||
// Check some expected complexity values (from CSV head output, column 3)
|
||||
if (wStr.equals("EEN")) {
|
||||
assertEquals(451, clueRec.simpel());
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package puzzle;
|
||||
|
||||
import module java.base;
|
||||
import anno.DictGen;
|
||||
import anno.Dictionaries;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import puzzle.Export.Clue;
|
||||
import puzzle.Export.Clued;
|
||||
import puzzle.Export.Gridded;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
import puzzle.Masker.Clues;
|
||||
import puzzle.SwedishGenerator.Rng;
|
||||
import puzzle.SwedishGenerator.Slotinfo;
|
||||
@@ -13,9 +15,24 @@ import puzzle.SwedishGenerator.Slotinfo;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static precomp.Const9x8.Cell.*;
|
||||
import static puzzle.SwedishGenerator.fillMask;
|
||||
import static puzzle.dict800.DictData.DICT800;
|
||||
import static puzzle.dict900.DictData.DICT900;
|
||||
import static puzzle.dict800.DictData800.DICT800;
|
||||
import static puzzle.dict900.DictData900.DICT900;
|
||||
|
||||
@Dictionaries({ @DictGen(
|
||||
packageName = "puzzle.dict900",
|
||||
className = "DictData900",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 900,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
), @DictGen(
|
||||
packageName = "puzzle.dict800",
|
||||
className = "DictData800",
|
||||
scv = "/home/mike/dev/puzzle-generator/nl_score_hints_v4.csv",
|
||||
simpleMax = 800,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
) })
|
||||
public class PerformanceTest {
|
||||
|
||||
void main() {
|
||||
@@ -73,7 +90,7 @@ public class PerformanceTest {
|
||||
void testIncrementalComplexity() {
|
||||
|
||||
// Use the complex mask from Main.java
|
||||
var mask = Clued.of(
|
||||
var mask = Signa.of(
|
||||
r0c0d1, r0c5d0, r0c6d0, r0c7d0, r0c8d0,
|
||||
r1c0d1,
|
||||
r2c0d0, r2c1d0, r2c3d0, r2c4d1,
|
||||
@@ -82,7 +99,7 @@ public class PerformanceTest {
|
||||
r5c2d2, r5c4d1,
|
||||
r6c2d1,
|
||||
r7c0d2, r7c1d2, r7c2d1, r7c7d2, r7c8d2
|
||||
);
|
||||
);
|
||||
val allSlots = Masker.slots(mask.c(), DICT900.index());
|
||||
//mask.toGrid()
|
||||
System.out.println("[DEBUG_LOG] \n--- Incremental Complexity Test ---");
|
||||
@@ -103,7 +120,7 @@ public class PerformanceTest {
|
||||
val rng = new Rng(42);
|
||||
|
||||
// A single horizontal slot at (0,0)
|
||||
val mask = Clued.of(r0c0d1);
|
||||
val mask = Signa.of(r0c0d1);
|
||||
val slots = Masker.slots(mask.c(), DICT800.index());
|
||||
|
||||
System.out.println("[DEBUG_LOG] \n--- Single Slot Resolution ---");
|
||||
@@ -160,7 +177,7 @@ public class PerformanceTest {
|
||||
var slotChar = dir.slotChar;
|
||||
display[cr][cc] = clueChar;
|
||||
|
||||
Gridded.cellWalk((byte) slot.key(), slot.lo(), slot.hi()).forEach(idx -> {
|
||||
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')) {
|
||||
|
||||
@@ -3,12 +3,12 @@ package puzzle;
|
||||
import module java.base;
|
||||
import module java.sql;
|
||||
|
||||
public final class HintScores {
|
||||
public final class ScoreHintsTask {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Class.forName("org.sqlite.JDBC");
|
||||
try (Connection conn = DriverManager.getConnection("jdbc:sqlite:tools/hint/hint.sqlite")) {
|
||||
updateCrossScores(conn, HintScores::crossabilityScore, 1000);
|
||||
updateCrossScores(conn, ScoreHintsTask::crossabilityScore, 1000);
|
||||
}
|
||||
}
|
||||
static final Map<Character, Integer> LETTER_WEIGHT = Map.ofEntries(
|
||||
@@ -1,16 +1,17 @@
|
||||
package puzzle;
|
||||
|
||||
import module java.base;
|
||||
import gen.GenerateDict;
|
||||
import gen.GenerateNeighbors;
|
||||
import anno.GenerateNeighbor;
|
||||
import anno.GenerateNeighbors;
|
||||
import anno.LemmaGen;
|
||||
import lombok.val;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import precomp.Neighbors9x8.rci;
|
||||
import puzzle.DictJavaGeneratorMulti.DictEntryDTO.IntListDTO;
|
||||
import puzzle.Export.Clued;
|
||||
import puzzle.Export.Gridded;
|
||||
import puzzle.Export.LetterAt;
|
||||
import puzzle.Export.Signa;
|
||||
import puzzle.Export.Puzzle;
|
||||
import puzzle.Export.Lettrix;
|
||||
import puzzle.Masker.Clues;
|
||||
import puzzle.Masker.Slot;
|
||||
|
||||
@@ -37,17 +38,15 @@ import static puzzle.LemmaData.INEREN;
|
||||
import static puzzle.LemmaData.INERENA;
|
||||
import static puzzle.LemmaData.INERENAE;
|
||||
import static puzzle.SwedishGenerator.*;
|
||||
@GenerateNeighbors(C = 4, R = 3, packageName = "precomp", className = "Neighbors4x3", MIN_LEN = 2)
|
||||
@GenerateDict(
|
||||
@GenerateNeighbors(@GenerateNeighbor(C = 4, R = 3, packageName = "precomp", className = "Neighbors4x3", MIN_LEN = 2))
|
||||
@LemmaGen(
|
||||
packageName = "puzzle",
|
||||
className = "LemmaData",
|
||||
scv = "nl_score_hints_v4.csv",
|
||||
words = {
|
||||
"EEN", "NAAR", "IEDEREEN", "A", "C", "X", "TEST", "IN", "INE", "INER", "INEREN", "INERENA", "INERENAE",
|
||||
"APPLE", "AXE", "ABC", "ABD", "AZ", "AB",
|
||||
"AT", "CAT", "DOGS", "APPLY", "BANAN", "BANANA", "BANANAS", "BANANASS"
|
||||
},
|
||||
simpleMax=900,
|
||||
minLen = 2,
|
||||
maxLen = 8
|
||||
)
|
||||
@@ -105,9 +104,9 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testPatternForSlotAllLetters() {
|
||||
var grid = new Gridded(Clued.of(r0c0d1));
|
||||
var grid = new Puzzle(Signa.of(r0c0d1));
|
||||
GridBuilder.placeWord(grid.grid(), grid.grid().g, r0c0d1.slotKey, (1L << OFF_0_1) | (1L << OFF_0_2) | (1L << OFF_0_3), 0L, ABC);
|
||||
val map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
val map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(LETTER_A, map.get(OFF_0_1));
|
||||
assertEquals(LETTER_B, map.get(OFF_0_2));
|
||||
assertEquals(LETTER_C, map.get(OFF_0_3));
|
||||
@@ -167,9 +166,9 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testGrid() {
|
||||
var grid = new Gridded(Clues.createEmpty());
|
||||
var grid = new Puzzle(Clues.createEmpty());
|
||||
GridBuilder.placeWord(grid.grid(), grid.grid().g, r0c0d1.slotKey, 1L << OFF_0_0, 0, WORD_A);
|
||||
val arr = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
val arr = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(1, arr.size());
|
||||
assertEquals(LETTER_A, arr.get(OFF_0_0));
|
||||
}
|
||||
@@ -229,7 +228,7 @@ public class SwedishGeneratorTest {
|
||||
assertEquals(OFF_2_3, Slot.clueIndex(key));
|
||||
assertEquals(CLUE_DOWN, Slot.dir(key));
|
||||
assertFalse(Slot.horiz(key));
|
||||
var cells = Gridded.cellWalk((byte) key, lo, 0L).mapToObj(i -> Masker.IT[i]).toArray(rci[]::new);
|
||||
var cells = Puzzle.cellWalk((byte) key, lo, 0L).mapToObj(i -> Masker.IT[i]).toArray(rci[]::new);
|
||||
assertEquals(2, cells[0].r());
|
||||
assertEquals(3, cells[1].r());
|
||||
assertEquals(4, cells[2].r());
|
||||
@@ -268,7 +267,7 @@ public class SwedishGeneratorTest {
|
||||
void testForEachSlotAndExtractSlots() {
|
||||
// This should detect a slot starting at 0,1 with length 2 (0,1 and 0,2)
|
||||
var dict = DictJavaGeneratorMulti.Dicts.makeDict(WORDS2);
|
||||
var slots = Masker.extractSlots(Clued.of(r0c0d1).c(), dict.index());
|
||||
var slots = Masker.extractSlots(Signa.of(r0c0d1).c(), dict.index());
|
||||
assertEquals(1, slots.length);
|
||||
var s = slots[0];
|
||||
|
||||
@@ -296,10 +295,10 @@ public class SwedishGeneratorTest {
|
||||
var rng = new Rng(42);
|
||||
var gen = new Masker(rng, new int[Masker.STACK_SIZE], Masker.Clues.createEmpty());
|
||||
|
||||
var c1 = new Clued(gen.randomMask(18));
|
||||
var c1 = new Signa(gen.randomMask(18));
|
||||
assertNotNull(c1);
|
||||
|
||||
var g2 = new Clued(gen.mutate(c1.deepCopyGrid().c()));
|
||||
var g2 = new Signa(gen.mutate(c1.deepCopyGrid().c()));
|
||||
assertNotNull(g2);
|
||||
assertNotSame(c1.c(), g2.c());
|
||||
|
||||
@@ -311,7 +310,7 @@ public class SwedishGeneratorTest {
|
||||
|
||||
@Test
|
||||
void testPlaceWord() {
|
||||
var grid = new Gridded(Clues.createEmpty());
|
||||
var grid = new Puzzle(Clues.createEmpty());
|
||||
// Slot at OFF_0_0 length 3, horizontal (right)
|
||||
var key = Slot.packSlotKey(0, CLUE_RIGHT);
|
||||
var lo = (1L << OFF_0_0) | (1L << OFF_0_1) | (1L << OFF_0_2);
|
||||
@@ -321,7 +320,7 @@ public class SwedishGeneratorTest {
|
||||
// 1. Successful placement in empty grid
|
||||
assertTrue(GridBuilder.placeWord(grid.grid(), grid.grid().g, key, lo, hi, w1));
|
||||
|
||||
var map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
var map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(3, map.size());
|
||||
assertEquals(LETTER_A, map.get(OFF_0_0));
|
||||
assertEquals(LETTER_B, map.get(OFF_0_1));
|
||||
@@ -332,24 +331,24 @@ public class SwedishGeneratorTest {
|
||||
// 3. Conflict: place "ABD" where "ABC" is
|
||||
assertFalse(GridBuilder.placeWord(grid.grid(), grid.grid().g, key, lo, hi, ABD));
|
||||
// Verify grid is unchanged (still "ABC")
|
||||
map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(3, map.size());
|
||||
assertEquals(LETTER_A, map.get(OFF_0_0));
|
||||
assertEquals(LETTER_B, map.get(OFF_0_1));
|
||||
assertEquals(LETTER_C, map.get(OFF_0_2));
|
||||
|
||||
// 4. Partial placement then conflict (rollback)
|
||||
grid = new Gridded(Clues.createEmpty());
|
||||
grid = new Puzzle(Clues.createEmpty());
|
||||
GridBuilder.placeWord(grid.grid(), grid.grid().g, Slot.packSlotKey(0, CLUE_RIGHT), 1L << OFF_0_2, 0, WORD_X); // Conflict at the end
|
||||
assertFalse(GridBuilder.placeWord(grid.grid(), grid.grid().g, key, lo, hi, w1));
|
||||
map = grid.stream().collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
map = grid.stream().collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(1, map.size());
|
||||
assertEquals(LETTER_X, map.get(OFF_0_2));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testBacktrackingHelpers() {
|
||||
var grid = new Gridded(Clues.createEmpty());
|
||||
var grid = new Puzzle(Clues.createEmpty());
|
||||
// Slot at 0,1 length 2
|
||||
var key = Slot.packSlotKey(0, CLUE_RIGHT);
|
||||
var lo = (1L << OFF_0_1) | (1L << OFF_0_2);
|
||||
@@ -359,14 +358,14 @@ public class SwedishGeneratorTest {
|
||||
var placed = GridBuilder.placeWord(grid.grid(), grid.grid().g, key, lo, 0L, w);
|
||||
assertTrue(placed);
|
||||
|
||||
var map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
var map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(2, map.size());
|
||||
assertEquals(LETTER_A, map.get(OFF_0_1));
|
||||
assertEquals(LETTER_Z, map.get(OFF_0_2));
|
||||
|
||||
grid.grid().hi = top;
|
||||
grid.grid().lo = low;
|
||||
map = grid.collect(Collectors.toMap(LetterAt::index, LetterAt::letter));
|
||||
map = grid.collect(Collectors.toMap(Lettrix::index, Lettrix::letter));
|
||||
assertEquals(0, map.size());
|
||||
assertFalse(map.containsKey(OFF_0_1));
|
||||
assertFalse(map.containsKey(OFF_0_2));
|
||||
|
||||
Reference in New Issue
Block a user