redo
This commit is contained in:
@@ -21,8 +21,6 @@ import static precomp.Const9x8.CLUE_LEFT_TOP4;
|
|||||||
import static precomp.Const9x8.CLUE_RIGHT1;
|
import static precomp.Const9x8.CLUE_RIGHT1;
|
||||||
import static precomp.Const9x8.CLUE_RIGHT_TOP5;
|
import static precomp.Const9x8.CLUE_RIGHT_TOP5;
|
||||||
import static precomp.Const9x8.CLUE_UP2;
|
import static precomp.Const9x8.CLUE_UP2;
|
||||||
import static puzzle.Riddle.Clue.DOWN0;
|
|
||||||
import static puzzle.Riddle.Clue.RIGHT1;
|
|
||||||
import static puzzle.Clues.createEmpty;
|
import static puzzle.Clues.createEmpty;
|
||||||
import static puzzle.Masker.Slot;
|
import static puzzle.Masker.Slot;
|
||||||
import static puzzle.SwedishGenerator.X;
|
import static puzzle.SwedishGenerator.X;
|
||||||
|
|||||||
@@ -13,9 +13,12 @@ import puzzle.Riddle.ExportedPuzzle;
|
|||||||
import puzzle.Riddle.Rewards;
|
import puzzle.Riddle.Rewards;
|
||||||
import puzzle.Riddle.WordOut;
|
import puzzle.Riddle.WordOut;
|
||||||
import puzzle.SwedishGenerator.Rng;
|
import puzzle.SwedishGenerator.Rng;
|
||||||
|
import static puzzle.Export.Puzzle;
|
||||||
import static puzzle.Export.*;
|
import static puzzle.Export.PuzzleResult;
|
||||||
import static puzzle.SwedishGenerator.*;
|
import static puzzle.Export.Signa;
|
||||||
|
import static puzzle.SwedishGenerator.Dict;
|
||||||
|
import static puzzle.SwedishGenerator.Slotinfo;
|
||||||
|
import static puzzle.SwedishGenerator.fillMask;
|
||||||
@DictGen(
|
@DictGen(
|
||||||
packageName = "puzzle.dict800",
|
packageName = "puzzle.dict800",
|
||||||
className = "DictData800",
|
className = "DictData800",
|
||||||
|
|||||||
@@ -5,9 +5,17 @@ import anno.GenerateShapedCopies;
|
|||||||
import anno.Shaped;
|
import anno.Shaped;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import precomp.Neighbors9x8;
|
import precomp.Neighbors9x8;
|
||||||
|
import static java.lang.Long.bitCount;
|
||||||
import static java.lang.Long.*;
|
import static java.lang.Long.lowestOneBit;
|
||||||
import static puzzle.SwedishGenerator.*;
|
import static java.lang.Long.numberOfLeadingZeros;
|
||||||
|
import static java.lang.Long.numberOfTrailingZeros;
|
||||||
|
import static puzzle.SwedishGenerator.Dict;
|
||||||
|
import static puzzle.SwedishGenerator.DictEntry;
|
||||||
|
import static puzzle.SwedishGenerator.Grid;
|
||||||
|
import static puzzle.SwedishGenerator.MAX_TRIES_PER_SLOT;
|
||||||
|
import static puzzle.SwedishGenerator.Rng;
|
||||||
|
import static puzzle.SwedishGenerator.Slotinfo;
|
||||||
|
import static puzzle.SwedishGenerator.X;
|
||||||
@GenerateShapedCopies(
|
@GenerateShapedCopies(
|
||||||
packageName = "puzzle",
|
packageName = "puzzle",
|
||||||
className = "Masker",
|
className = "Masker",
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import java.nio.channels.FileChannel;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.StandardOpenOption;
|
import java.nio.file.StandardOpenOption;
|
||||||
import java.util.Arrays;
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
public class Meta {
|
public class Meta {
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import puzzle.SwedishGenerator.Dict;
|
|||||||
import puzzle.SwedishGenerator.DictEntry;
|
import puzzle.SwedishGenerator.DictEntry;
|
||||||
import puzzle.SwedishGenerator.Lemma;
|
import puzzle.SwedishGenerator.Lemma;
|
||||||
import puzzle.dict950.DictData950;
|
import puzzle.dict950.DictData950;
|
||||||
import static java.nio.charset.StandardCharsets.US_ASCII;
|
|
||||||
|
|
||||||
public final class DictJavaGeneratorMulti {
|
public final class DictJavaGeneratorMulti {
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package puzzle;
|
package puzzle;
|
||||||
|
|
||||||
import module java.base;
|
|
||||||
import puzzle.SwedishGenerator.Grid;
|
import puzzle.SwedishGenerator.Grid;
|
||||||
import puzzle.SwedishGenerator.Lemma;
|
import puzzle.SwedishGenerator.Lemma;
|
||||||
import puzzle.SwedishGenerator.Slotinfo;
|
import puzzle.SwedishGenerator.Slotinfo;
|
||||||
|
|||||||
@@ -5,23 +5,72 @@ import anno.DictGen;
|
|||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import puzzle.Export.Signa;
|
|
||||||
import puzzle.Export.Puzzle;
|
|
||||||
import puzzle.Export.Lettrix;
|
import puzzle.Export.Lettrix;
|
||||||
|
import puzzle.Export.Puzzle;
|
||||||
import puzzle.Export.PuzzleResult;
|
import puzzle.Export.PuzzleResult;
|
||||||
import puzzle.Riddle.Rewards;
|
import puzzle.Export.Signa;
|
||||||
import puzzle.Main.Opts;
|
import puzzle.Main.Opts;
|
||||||
|
import puzzle.Riddle.Rewards;
|
||||||
import puzzle.SwedishGenerator.Rng;
|
import puzzle.SwedishGenerator.Rng;
|
||||||
import puzzle.dict950.DictData950;
|
import puzzle.dict950.DictData950;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static precomp.Const9x8.*;
|
import static precomp.Const9x8.Cell.r0c0d0;
|
||||||
import static precomp.Const9x8.Cell.*;
|
import static precomp.Const9x8.Cell.r0c0d1;
|
||||||
import static puzzle.Riddle.Clue.*;
|
import static precomp.Const9x8.Cell.r0c1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c1d2;
|
||||||
|
import static precomp.Const9x8.Cell.r0c3d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c3d3;
|
||||||
|
import static precomp.Const9x8.Cell.r0c4d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c5d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c6d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c6d3;
|
||||||
|
import static precomp.Const9x8.Cell.r0c7d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c8d0;
|
||||||
|
import static precomp.Const9x8.Cell.r1c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r1c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r1c1;
|
||||||
|
import static precomp.Const9x8.Cell.r1c1d0;
|
||||||
|
import static precomp.Const9x8.Cell.r1c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r1c1d3;
|
||||||
|
import static precomp.Const9x8.Cell.r2c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r2c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r2c1d2;
|
||||||
|
import static precomp.Const9x8.Cell.r3c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r3c3d3;
|
||||||
|
import static precomp.Const9x8.Cell.r3c6d0;
|
||||||
|
import static precomp.Const9x8.Cell.r4c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r4c2d3;
|
||||||
|
import static precomp.Const9x8.Cell.r4c3d0;
|
||||||
|
import static precomp.Const9x8.Cell.r4c3d1;
|
||||||
|
import static precomp.Const9x8.Cell.r4c6d3;
|
||||||
|
import static precomp.Const9x8.Cell.r5c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r5c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r6c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r6c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r6c8d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c0d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r7c1d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c2d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c4d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c5d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c8d3;
|
||||||
|
import static precomp.Const9x8.LETTER_A;
|
||||||
|
import static precomp.Const9x8.LETTER_Z;
|
||||||
|
import static precomp.Const9x8.OFF_0_0;
|
||||||
|
import static precomp.Const9x8.OFF_0_1;
|
||||||
|
import static precomp.Const9x8.OFF_0_2;
|
||||||
|
import static precomp.Const9x8.OFF_1_1;
|
||||||
|
import static precomp.Const9x8.OFF_1_2;
|
||||||
|
import static precomp.Const9x8.OFF_2_1;
|
||||||
|
import static precomp.Const9x8.OFF_2_3;
|
||||||
import static puzzle.LemmaData.AB;
|
import static puzzle.LemmaData.AB;
|
||||||
import static puzzle.LemmaData.AZ;
|
import static puzzle.LemmaData.AZ;
|
||||||
|
import static puzzle.Riddle.Clue.DOWN0;
|
||||||
|
import static puzzle.Riddle.Clue.RIGHT1;
|
||||||
|
import static puzzle.Riddle.Clue.UP2;
|
||||||
import static puzzle.SwedishGenerator.Lemma;
|
import static puzzle.SwedishGenerator.Lemma;
|
||||||
import static puzzle.SwedishGenerator.Slotinfo;
|
import static puzzle.SwedishGenerator.Slotinfo;
|
||||||
import static puzzle.SwedishGenerator.fillMask;
|
import static puzzle.SwedishGenerator.fillMask;
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package puzzle;
|
|||||||
|
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import puzzle.Export.Signa;
|
|
||||||
import puzzle.Export.Puzzle;
|
import puzzle.Export.Puzzle;
|
||||||
import puzzle.Export.PuzzleResult;
|
import puzzle.Export.PuzzleResult;
|
||||||
|
import puzzle.Export.Signa;
|
||||||
import puzzle.Riddle.Rewards;
|
import puzzle.Riddle.Rewards;
|
||||||
import puzzle.SwedishGenerator.Assign;
|
import puzzle.SwedishGenerator.Assign;
|
||||||
import puzzle.SwedishGenerator.FillResult;
|
import puzzle.SwedishGenerator.FillResult;
|
||||||
@@ -16,8 +16,31 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
|||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static precomp.Const9x8.*;
|
import static precomp.Const9x8.Cell.r0c0d0;
|
||||||
import static precomp.Const9x8.Cell.*;
|
import static precomp.Const9x8.Cell.r0c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c0d4;
|
||||||
|
import static precomp.Const9x8.Cell.r0c1d5;
|
||||||
|
import static precomp.Const9x8.Cell.r0c2d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c2d5;
|
||||||
|
import static precomp.Const9x8.Cell.r0c3d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c5d3;
|
||||||
|
import static precomp.Const9x8.Cell.r0c7d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c8d1;
|
||||||
|
import static precomp.Const9x8.Cell.r1c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r1c2d4;
|
||||||
|
import static precomp.Const9x8.Cell.r2c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r2c1d0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r2c2d2;
|
||||||
|
import static precomp.Const9x8.Cell.r3c1d1;
|
||||||
|
import static precomp.Const9x8.Cell.r7c7d1;
|
||||||
|
import static precomp.Const9x8.OFF_0_0;
|
||||||
|
import static precomp.Const9x8.OFF_0_1;
|
||||||
|
import static precomp.Const9x8.OFF_0_2;
|
||||||
|
import static precomp.Const9x8.OFF_0_3;
|
||||||
|
import static precomp.Const9x8.OFF_0_4;
|
||||||
|
import static precomp.Const9x8.OFF_1_0;
|
||||||
|
import static precomp.Const9x8.OFF_1_1;
|
||||||
import static puzzle.GridBuilder.placeWord;
|
import static puzzle.GridBuilder.placeWord;
|
||||||
import static puzzle.LemmaData.TEST;
|
import static puzzle.LemmaData.TEST;
|
||||||
import static puzzle.Masker.C;
|
import static puzzle.Masker.C;
|
||||||
|
|||||||
@@ -5,13 +5,31 @@ import anno.DictGen;
|
|||||||
import anno.Dictionaries;
|
import anno.Dictionaries;
|
||||||
import lombok.val;
|
import lombok.val;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import puzzle.Export.Signa;
|
|
||||||
import puzzle.Export.Puzzle;
|
import puzzle.Export.Puzzle;
|
||||||
|
import puzzle.Export.Signa;
|
||||||
import puzzle.SwedishGenerator.Rng;
|
import puzzle.SwedishGenerator.Rng;
|
||||||
import puzzle.SwedishGenerator.Slotinfo;
|
import puzzle.SwedishGenerator.Slotinfo;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static precomp.Const9x8.Cell.*;
|
import static precomp.Const9x8.Cell.r0c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c5d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c6d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c7d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c8d0;
|
||||||
|
import static precomp.Const9x8.Cell.r1c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r2c0d0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c1d0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c3d0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c4d1;
|
||||||
|
import static precomp.Const9x8.Cell.r3c4d1;
|
||||||
|
import static precomp.Const9x8.Cell.r4c4d1;
|
||||||
|
import static precomp.Const9x8.Cell.r5c2d2;
|
||||||
|
import static precomp.Const9x8.Cell.r5c4d1;
|
||||||
|
import static precomp.Const9x8.Cell.r6c2d1;
|
||||||
|
import static precomp.Const9x8.Cell.r7c0d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c1d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c2d1;
|
||||||
|
import static precomp.Const9x8.Cell.r7c7d2;
|
||||||
|
import static precomp.Const9x8.Cell.r7c8d2;
|
||||||
import static puzzle.SwedishGenerator.fillMask;
|
import static puzzle.SwedishGenerator.fillMask;
|
||||||
import static puzzle.dict800.DictData800.DICT800;
|
import static puzzle.dict800.DictData800.DICT800;
|
||||||
import static puzzle.dict900.DictData900.DICT900;
|
import static puzzle.dict900.DictData900.DICT900;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import module java.sql;
|
|||||||
|
|
||||||
public final class ScoreHintsTask {
|
public final class ScoreHintsTask {
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
static void main(String[] args) throws Exception {
|
||||||
Class.forName("org.sqlite.JDBC");
|
Class.forName("org.sqlite.JDBC");
|
||||||
try (Connection conn = DriverManager.getConnection("jdbc:sqlite:tools/hint/hint.sqlite")) {
|
try (Connection conn = DriverManager.getConnection("jdbc:sqlite:tools/hint/hint.sqlite")) {
|
||||||
updateCrossScores(conn, ScoreHintsTask::crossabilityScore, 1000);
|
updateCrossScores(conn, ScoreHintsTask::crossabilityScore, 1000);
|
||||||
|
|||||||
@@ -9,14 +9,46 @@ import org.junit.jupiter.api.Assertions;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import precomp.Neighbors9x8;
|
import precomp.Neighbors9x8;
|
||||||
import puzzle.DictJavaGeneratorMulti.DictEntryDTO.IntListDTO;
|
import puzzle.DictJavaGeneratorMulti.DictEntryDTO.IntListDTO;
|
||||||
import puzzle.Export.Signa;
|
|
||||||
import puzzle.Export.Puzzle;
|
|
||||||
import puzzle.Export.Lettrix;
|
import puzzle.Export.Lettrix;
|
||||||
|
import puzzle.Export.Puzzle;
|
||||||
|
import puzzle.Export.Signa;
|
||||||
import puzzle.Masker.Slot;
|
import puzzle.Masker.Slot;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static precomp.Const9x8.*;
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
import static precomp.Const9x8.Cell.*;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNotSame;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
import static precomp.Const9x8.CLUE_DOWN0;
|
||||||
|
import static precomp.Const9x8.CLUE_LEFT3;
|
||||||
|
import static precomp.Const9x8.CLUE_RIGHT1;
|
||||||
|
import static precomp.Const9x8.CLUE_UP2;
|
||||||
|
import static precomp.Const9x8.Cell.r0c0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c0d0;
|
||||||
|
import static precomp.Const9x8.Cell.r0c0d1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c0d3;
|
||||||
|
import static precomp.Const9x8.Cell.r0c1;
|
||||||
|
import static precomp.Const9x8.Cell.r0c2;
|
||||||
|
import static precomp.Const9x8.Cell.r0c3;
|
||||||
|
import static precomp.Const9x8.Cell.r2c0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c3d0;
|
||||||
|
import static precomp.Const9x8.Cell.r2c5;
|
||||||
|
import static precomp.Const9x8.Cell.r3c5;
|
||||||
|
import static precomp.Const9x8.Cell.r4c5;
|
||||||
|
import static precomp.Const9x8.LETTER_A;
|
||||||
|
import static precomp.Const9x8.LETTER_B;
|
||||||
|
import static precomp.Const9x8.LETTER_C;
|
||||||
|
import static precomp.Const9x8.LETTER_E;
|
||||||
|
import static precomp.Const9x8.LETTER_I;
|
||||||
|
import static precomp.Const9x8.LETTER_N;
|
||||||
|
import static precomp.Const9x8.LETTER_R;
|
||||||
|
import static precomp.Const9x8.LETTER_X;
|
||||||
|
import static precomp.Const9x8.LETTER_Z;
|
||||||
|
import static precomp.Const9x8.OFF_0_0;
|
||||||
|
import static precomp.Const9x8.OFF_0_1;
|
||||||
|
import static precomp.Const9x8.OFF_0_2;
|
||||||
|
import static precomp.Const9x8.OFF_0_3;
|
||||||
|
import static precomp.Const9x8.OFF_2_3;
|
||||||
import static puzzle.LemmaData.ABC;
|
import static puzzle.LemmaData.ABC;
|
||||||
import static puzzle.LemmaData.ABD;
|
import static puzzle.LemmaData.ABD;
|
||||||
import static puzzle.LemmaData.APPLE;
|
import static puzzle.LemmaData.APPLE;
|
||||||
@@ -39,7 +71,14 @@ import static puzzle.LemmaData.INERENAE;
|
|||||||
import static puzzle.LemmaData.WORD_A;
|
import static puzzle.LemmaData.WORD_A;
|
||||||
import static puzzle.LemmaData.WORD_C;
|
import static puzzle.LemmaData.WORD_C;
|
||||||
import static puzzle.LemmaData.WORD_X;
|
import static puzzle.LemmaData.WORD_X;
|
||||||
import static puzzle.SwedishGenerator.*;
|
import static puzzle.SwedishGenerator.Grid;
|
||||||
|
import static puzzle.SwedishGenerator.Lemma;
|
||||||
|
import static puzzle.SwedishGenerator.Rng;
|
||||||
|
import static puzzle.SwedishGenerator.Slotinfo;
|
||||||
|
import static puzzle.SwedishGenerator.X;
|
||||||
|
import static puzzle.SwedishGenerator.candidateCountForPattern;
|
||||||
|
import static puzzle.SwedishGenerator.candidateInfoForPattern;
|
||||||
|
import static puzzle.SwedishGenerator.patternForSlot;
|
||||||
@GenerateNeighbors(@GenerateNeighbor(C = 4, R = 3, packageName = "precomp", className = "Neighbors4x3", MIN_LEN = 2))
|
@GenerateNeighbors(@GenerateNeighbor(C = 4, R = 3, packageName = "precomp", className = "Neighbors4x3", MIN_LEN = 2))
|
||||||
@LemmaGen(
|
@LemmaGen(
|
||||||
packageName = "puzzle",
|
packageName = "puzzle",
|
||||||
|
|||||||
Reference in New Issue
Block a user