@logic-pad/core 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -4
- package/assets/logic-core.global.d.ts +1272 -1269
- package/dist/data/config.d.ts +3 -3
- package/dist/data/config.js +1 -1
- package/dist/data/configurable.d.ts +1 -1
- package/dist/data/configurable.js +1 -1
- package/dist/data/dataHelper.d.ts +1 -1
- package/dist/data/dataHelper.js +1 -1
- package/dist/data/events/onFinalValidation.d.ts +3 -3
- package/dist/data/events/onFinalValidation.js +1 -1
- package/dist/data/events/onGridChange.d.ts +2 -2
- package/dist/data/events/onGridChange.js +1 -1
- package/dist/data/events/onGridResize.d.ts +2 -2
- package/dist/data/events/onGridResize.js +1 -1
- package/dist/data/events/onSetGrid.d.ts +2 -2
- package/dist/data/events/onSetGrid.js +1 -1
- package/dist/data/events/onSymbolValidation.d.ts +4 -4
- package/dist/data/events/onSymbolValidation.js +1 -1
- package/dist/data/grid.d.ts +5 -5
- package/dist/data/grid.js +7 -7
- package/dist/data/gridConnections.d.ts +2 -2
- package/dist/data/gridConnections.js +1 -1
- package/dist/data/instruction.d.ts +2 -2
- package/dist/data/instruction.js +1 -1
- package/dist/data/puzzle.d.ts +1 -1
- package/dist/data/puzzle.js +1 -1
- package/dist/data/rules/banPatternRule.d.ts +5 -5
- package/dist/data/rules/banPatternRule.js +6 -6
- package/dist/data/rules/cellCountRule.d.ts +4 -4
- package/dist/data/rules/cellCountRule.js +5 -5
- package/dist/data/rules/completePatternRule.d.ts +3 -3
- package/dist/data/rules/completePatternRule.js +3 -3
- package/dist/data/rules/connectAllRule.d.ts +4 -4
- package/dist/data/rules/connectAllRule.js +5 -5
- package/dist/data/rules/customRule.d.ts +4 -4
- package/dist/data/rules/customRule.js +4 -4
- package/dist/data/rules/foresightRule.d.ts +4 -4
- package/dist/data/rules/foresightRule.js +5 -5
- package/dist/data/rules/index.d.ts +1 -1
- package/dist/data/rules/index.js +1 -1
- package/dist/data/rules/musicControlLine.d.ts +2 -2
- package/dist/data/rules/musicControlLine.js +2 -2
- package/dist/data/rules/musicGridRule.d.ts +8 -8
- package/dist/data/rules/musicGridRule.js +7 -7
- package/dist/data/rules/mysteryRule.d.ts +7 -7
- package/dist/data/rules/mysteryRule.js +6 -6
- package/dist/data/rules/offByXRule.d.ts +6 -6
- package/dist/data/rules/offByXRule.js +6 -6
- package/dist/data/rules/regionAreaRule.d.ts +4 -4
- package/dist/data/rules/regionAreaRule.js +6 -6
- package/dist/data/rules/regionShapeRule.d.ts +4 -4
- package/dist/data/rules/regionShapeRule.js +4 -4
- package/dist/data/rules/rule.d.ts +3 -3
- package/dist/data/rules/rule.js +1 -1
- package/dist/data/rules/rules.gen.d.ts +14 -14
- package/dist/data/rules/rules.gen.js +14 -14
- package/dist/data/rules/sameShapeRule.d.ts +5 -5
- package/dist/data/rules/sameShapeRule.js +5 -5
- package/dist/data/rules/symbolsPerRegionRule.d.ts +4 -4
- package/dist/data/rules/symbolsPerRegionRule.js +7 -7
- package/dist/data/rules/undercluedRule.d.ts +3 -3
- package/dist/data/rules/undercluedRule.js +5 -5
- package/dist/data/rules/uniqueShapeRule.d.ts +5 -5
- package/dist/data/rules/uniqueShapeRule.js +4 -4
- package/dist/data/serializer/allSerializers.d.ts +4 -4
- package/dist/data/serializer/allSerializers.js +1 -1
- package/dist/data/serializer/compressor/allCompressors.d.ts +1 -1
- package/dist/data/serializer/compressor/allCompressors.js +4 -4
- package/dist/data/serializer/compressor/deflateCompressor.d.ts +1 -1
- package/dist/data/serializer/compressor/deflateCompressor.js +1 -1
- package/dist/data/serializer/compressor/gzipCompressor.d.ts +1 -1
- package/dist/data/serializer/compressor/gzipCompressor.js +1 -1
- package/dist/data/serializer/compressor/streamCompressor.d.ts +1 -1
- package/dist/data/serializer/compressor/streamCompressor.js +2 -2
- package/dist/data/serializer/serializerBase.d.ts +6 -6
- package/dist/data/serializer/serializer_v0.d.ts +10 -10
- package/dist/data/serializer/serializer_v0.js +10 -10
- package/dist/data/shapes.d.ts +2 -2
- package/dist/data/shapes.js +1 -1
- package/dist/data/solver/allSolvers.d.ts +1 -1
- package/dist/data/solver/allSolvers.js +3 -3
- package/dist/data/solver/backtrack/backtrackSolver.d.ts +2 -2
- package/dist/data/solver/backtrack/backtrackSolver.js +20 -20
- package/dist/data/solver/backtrack/backtrackWorker.js +35 -35
- package/dist/data/solver/backtrack/data.d.ts +1 -1
- package/dist/data/solver/backtrack/data.js +1 -1
- package/dist/data/solver/backtrack/rules/banPattern.d.ts +3 -3
- package/dist/data/solver/backtrack/rules/banPattern.js +1 -1
- package/dist/data/solver/backtrack/rules/cellCount.d.ts +2 -2
- package/dist/data/solver/backtrack/rules/cellCount.js +1 -1
- package/dist/data/solver/backtrack/rules/connectAll.d.ts +2 -2
- package/dist/data/solver/backtrack/rules/connectAll.js +1 -1
- package/dist/data/solver/backtrack/rules/regionArea.d.ts +2 -2
- package/dist/data/solver/backtrack/rules/regionArea.js +1 -1
- package/dist/data/solver/backtrack/rules/regionShape.d.ts +2 -2
- package/dist/data/solver/backtrack/rules/regionShape.js +2 -2
- package/dist/data/solver/backtrack/rules/sameShape.d.ts +3 -3
- package/dist/data/solver/backtrack/rules/sameShape.js +1 -1
- package/dist/data/solver/backtrack/rules/symbolsPerRegion.d.ts +3 -3
- package/dist/data/solver/backtrack/rules/symbolsPerRegion.js +2 -2
- package/dist/data/solver/backtrack/rules/uniqueShape.d.ts +3 -3
- package/dist/data/solver/backtrack/rules/uniqueShape.js +1 -1
- package/dist/data/solver/backtrack/symbols/areaNumber.d.ts +3 -3
- package/dist/data/solver/backtrack/symbols/areaNumber.js +1 -1
- package/dist/data/solver/backtrack/symbols/dart.d.ts +2 -2
- package/dist/data/solver/backtrack/symbols/dart.js +2 -2
- package/dist/data/solver/backtrack/symbols/directionLinker.d.ts +3 -3
- package/dist/data/solver/backtrack/symbols/directionLinker.js +1 -1
- package/dist/data/solver/backtrack/symbols/galaxy.d.ts +4 -4
- package/dist/data/solver/backtrack/symbols/galaxy.js +1 -1
- package/dist/data/solver/backtrack/symbols/letter.d.ts +2 -2
- package/dist/data/solver/backtrack/symbols/letter.js +1 -1
- package/dist/data/solver/backtrack/symbols/lotus.d.ts +4 -4
- package/dist/data/solver/backtrack/symbols/lotus.js +2 -2
- package/dist/data/solver/backtrack/symbols/minesweeper.d.ts +2 -2
- package/dist/data/solver/backtrack/symbols/minesweeper.js +1 -1
- package/dist/data/solver/backtrack/symbols/myopia.d.ts +2 -2
- package/dist/data/solver/backtrack/symbols/myopia.js +3 -3
- package/dist/data/solver/backtrack/symbols/viewpoint.d.ts +2 -2
- package/dist/data/solver/backtrack/symbols/viewpoint.js +1 -1
- package/dist/data/solver/solver.d.ts +1 -1
- package/dist/data/solver/solver.js +2 -2
- package/dist/data/solver/underclued/undercluedSolver.d.ts +2 -2
- package/dist/data/solver/underclued/undercluedSolver.js +4 -4
- package/dist/data/solver/underclued/undercluedWorker.js +3 -3
- package/dist/data/solver/z3/modules/areaNumberModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/areaNumberModule.js +2 -2
- package/dist/data/solver/z3/modules/cellCountModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/cellCountModule.js +3 -3
- package/dist/data/solver/z3/modules/connectAllModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/connectAllModule.js +2 -2
- package/dist/data/solver/z3/modules/dartModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/dartModule.js +5 -5
- package/dist/data/solver/z3/modules/index.d.ts +1 -1
- package/dist/data/solver/z3/modules/index.js +1 -1
- package/dist/data/solver/z3/modules/letterModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/letterModule.js +2 -2
- package/dist/data/solver/z3/modules/modules.gen.d.ts +8 -8
- package/dist/data/solver/z3/modules/modules.gen.js +8 -8
- package/dist/data/solver/z3/modules/myopiaModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/myopiaModule.js +5 -5
- package/dist/data/solver/z3/modules/regionAreaModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/regionAreaModule.js +2 -2
- package/dist/data/solver/z3/modules/viewpointModule.d.ts +3 -3
- package/dist/data/solver/z3/modules/viewpointModule.js +5 -5
- package/dist/data/solver/z3/modules/z3Module.d.ts +2 -2
- package/dist/data/solver/z3/utils.d.ts +1 -1
- package/dist/data/solver/z3/utils.js +1 -1
- package/dist/data/solver/z3/z3Solver.d.ts +2 -2
- package/dist/data/solver/z3/z3Solver.js +5 -5
- package/dist/data/symbols/areaNumberSymbol.d.ts +3 -3
- package/dist/data/symbols/areaNumberSymbol.js +4 -4
- package/dist/data/symbols/customIconSymbol.d.ts +7 -9
- package/dist/data/symbols/customIconSymbol.js +3 -3
- package/dist/data/symbols/customSymbol.d.ts +3 -3
- package/dist/data/symbols/customSymbol.js +2 -2
- package/dist/data/symbols/customTextSymbol.d.ts +3 -3
- package/dist/data/symbols/customTextSymbol.js +3 -3
- package/dist/data/symbols/dartSymbol.d.ts +4 -4
- package/dist/data/symbols/dartSymbol.js +4 -4
- package/dist/data/symbols/directionLinkerSymbol.d.ts +4 -4
- package/dist/data/symbols/directionLinkerSymbol.js +4 -4
- package/dist/data/symbols/galaxySymbol.d.ts +4 -4
- package/dist/data/symbols/galaxySymbol.js +4 -4
- package/dist/data/symbols/index.d.ts +1 -1
- package/dist/data/symbols/index.js +1 -1
- package/dist/data/symbols/letterSymbol.d.ts +4 -4
- package/dist/data/symbols/letterSymbol.js +5 -5
- package/dist/data/symbols/lotusSymbol.d.ts +4 -4
- package/dist/data/symbols/lotusSymbol.js +4 -4
- package/dist/data/symbols/minesweeperSymbol.d.ts +3 -3
- package/dist/data/symbols/minesweeperSymbol.js +4 -4
- package/dist/data/symbols/multiEntrySymbol.d.ts +2 -2
- package/dist/data/symbols/multiEntrySymbol.js +1 -1
- package/dist/data/symbols/myopiaSymbol.d.ts +4 -4
- package/dist/data/symbols/myopiaSymbol.js +4 -4
- package/dist/data/symbols/numberSymbol.d.ts +3 -3
- package/dist/data/symbols/numberSymbol.js +2 -2
- package/dist/data/symbols/symbol.d.ts +4 -4
- package/dist/data/symbols/symbol.js +1 -1
- package/dist/data/symbols/symbols.gen.d.ts +10 -10
- package/dist/data/symbols/symbols.gen.js +10 -10
- package/dist/data/symbols/viewpointSymbol.d.ts +3 -3
- package/dist/data/symbols/viewpointSymbol.js +5 -5
- package/dist/data/tile.d.ts +1 -1
- package/dist/data/tile.js +1 -1
- package/dist/data/validate.d.ts +2 -2
- package/dist/data/validate.js +3 -3
- package/dist/index.d.ts +95 -95
- package/dist/index.js +95 -96
- package/package.json +19 -5
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { instance as BanPatternRule } from './banPatternRule';
|
|
2
|
-
export { instance as CellCountRule } from './cellCountRule';
|
|
3
|
-
export { instance as CompletePatternRule } from './completePatternRule';
|
|
4
|
-
export { instance as ConnectAllRule } from './connectAllRule';
|
|
5
|
-
export { instance as CustomRule } from './customRule';
|
|
6
|
-
export { instance as ForesightRule } from './foresightRule';
|
|
7
|
-
export { instance as MusicGridRule } from './musicGridRule';
|
|
8
|
-
export { instance as MysteryRule } from './mysteryRule';
|
|
9
|
-
export { instance as OffByXRule } from './offByXRule';
|
|
10
|
-
export { instance as RegionAreaRule } from './regionAreaRule';
|
|
11
|
-
export { instance as SameShapeRule } from './sameShapeRule';
|
|
12
|
-
export { instance as SymbolsPerRegionRule } from './symbolsPerRegionRule';
|
|
13
|
-
export { instance as UndercluedRule } from './undercluedRule';
|
|
14
|
-
export { instance as UniqueShapeRule } from './uniqueShapeRule';
|
|
1
|
+
export { instance as BanPatternRule } from './banPatternRule.js';
|
|
2
|
+
export { instance as CellCountRule } from './cellCountRule.js';
|
|
3
|
+
export { instance as CompletePatternRule } from './completePatternRule.js';
|
|
4
|
+
export { instance as ConnectAllRule } from './connectAllRule.js';
|
|
5
|
+
export { instance as CustomRule } from './customRule.js';
|
|
6
|
+
export { instance as ForesightRule } from './foresightRule.js';
|
|
7
|
+
export { instance as MusicGridRule } from './musicGridRule.js';
|
|
8
|
+
export { instance as MysteryRule } from './mysteryRule.js';
|
|
9
|
+
export { instance as OffByXRule } from './offByXRule.js';
|
|
10
|
+
export { instance as RegionAreaRule } from './regionAreaRule.js';
|
|
11
|
+
export { instance as SameShapeRule } from './sameShapeRule.js';
|
|
12
|
+
export { instance as SymbolsPerRegionRule } from './symbolsPerRegionRule.js';
|
|
13
|
+
export { instance as UndercluedRule } from './undercluedRule.js';
|
|
14
|
+
export { instance as UniqueShapeRule } from './uniqueShapeRule.js';
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
// @ts-nocheck
|
|
4
4
|
// noinspection JSUnusedGlobalSymbols
|
|
5
|
-
export { instance as BanPatternRule } from './banPatternRule';
|
|
6
|
-
export { instance as CellCountRule } from './cellCountRule';
|
|
7
|
-
export { instance as CompletePatternRule } from './completePatternRule';
|
|
8
|
-
export { instance as ConnectAllRule } from './connectAllRule';
|
|
9
|
-
export { instance as CustomRule } from './customRule';
|
|
10
|
-
export { instance as ForesightRule } from './foresightRule';
|
|
11
|
-
export { instance as MusicGridRule } from './musicGridRule';
|
|
12
|
-
export { instance as MysteryRule } from './mysteryRule';
|
|
13
|
-
export { instance as OffByXRule } from './offByXRule';
|
|
14
|
-
export { instance as RegionAreaRule } from './regionAreaRule';
|
|
15
|
-
export { instance as SameShapeRule } from './sameShapeRule';
|
|
16
|
-
export { instance as SymbolsPerRegionRule } from './symbolsPerRegionRule';
|
|
17
|
-
export { instance as UndercluedRule } from './undercluedRule';
|
|
18
|
-
export { instance as UniqueShapeRule } from './uniqueShapeRule';
|
|
5
|
+
export { instance as BanPatternRule } from './banPatternRule.js';
|
|
6
|
+
export { instance as CellCountRule } from './cellCountRule.js';
|
|
7
|
+
export { instance as CompletePatternRule } from './completePatternRule.js';
|
|
8
|
+
export { instance as ConnectAllRule } from './connectAllRule.js';
|
|
9
|
+
export { instance as CustomRule } from './customRule.js';
|
|
10
|
+
export { instance as ForesightRule } from './foresightRule.js';
|
|
11
|
+
export { instance as MusicGridRule } from './musicGridRule.js';
|
|
12
|
+
export { instance as MysteryRule } from './mysteryRule.js';
|
|
13
|
+
export { instance as OffByXRule } from './offByXRule.js';
|
|
14
|
+
export { instance as RegionAreaRule } from './regionAreaRule.js';
|
|
15
|
+
export { instance as SameShapeRule } from './sameShapeRule.js';
|
|
16
|
+
export { instance as SymbolsPerRegionRule } from './symbolsPerRegionRule.js';
|
|
17
|
+
export { instance as UndercluedRule } from './undercluedRule.js';
|
|
18
|
+
export { instance as UniqueShapeRule } from './uniqueShapeRule.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AnyConfig } from '../config';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { Color, RuleState } from '../primitives';
|
|
4
|
-
import RegionShapeRule from './regionShapeRule';
|
|
5
|
-
import { SearchVariant } from './rule';
|
|
1
|
+
import { AnyConfig } from '../config.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { Color, RuleState } from '../primitives.js';
|
|
4
|
+
import RegionShapeRule from './regionShapeRule.js';
|
|
5
|
+
import { SearchVariant } from './rule.js';
|
|
6
6
|
export default class SameShapeRule extends RegionShapeRule {
|
|
7
7
|
private static readonly CONFIGS;
|
|
8
8
|
private static readonly EXAMPLE_GRID_LIGHT;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ConfigType } from '../config';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { minBy } from '../dataHelper';
|
|
4
|
-
import { Color, State } from '../primitives';
|
|
5
|
-
import RegionShapeRule from './regionShapeRule';
|
|
1
|
+
import { ConfigType } from '../config.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { minBy } from '../dataHelper.js';
|
|
4
|
+
import { Color, State } from '../primitives.js';
|
|
5
|
+
import RegionShapeRule from './regionShapeRule.js';
|
|
6
6
|
class SameShapeRule extends RegionShapeRule {
|
|
7
7
|
/**
|
|
8
8
|
* **All <color> areas have the same shape and size**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Rule, { SearchVariant } from './rule';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { AnyConfig } from '../config';
|
|
4
|
-
import { Color, Comparison, RuleState } from '../primitives';
|
|
1
|
+
import Rule, { SearchVariant } from './rule.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { AnyConfig } from '../config.js';
|
|
4
|
+
import { Color, Comparison, RuleState } from '../primitives.js';
|
|
5
5
|
export default class SymbolsPerRegionRule extends Rule {
|
|
6
6
|
readonly color: Color;
|
|
7
7
|
readonly count: number;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import Rule from './rule';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { ConfigType } from '../config';
|
|
4
|
-
import { Color, Comparison, State } from '../primitives';
|
|
5
|
-
import { array } from '../dataHelper';
|
|
6
|
-
import LetterSymbol from '../symbols/letterSymbol';
|
|
7
|
-
import GridConnections from '../gridConnections';
|
|
1
|
+
import Rule from './rule.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { ConfigType } from '../config.js';
|
|
4
|
+
import { Color, Comparison, State, } from '../primitives.js';
|
|
5
|
+
import { array } from '../dataHelper.js';
|
|
6
|
+
import LetterSymbol from '../symbols/letterSymbol.js';
|
|
7
|
+
import GridConnections from '../gridConnections.js';
|
|
8
8
|
class SymbolsPerRegionRule extends Rule {
|
|
9
9
|
/**
|
|
10
10
|
* **Exactly <count> symbols per <color> area**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import { RuleState } from '../primitives';
|
|
3
|
-
import Rule, { SearchVariant } from './rule';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import { RuleState } from '../primitives.js';
|
|
3
|
+
import Rule, { SearchVariant } from './rule.js';
|
|
4
4
|
export default class UndercluedRule extends Rule {
|
|
5
5
|
private static readonly EXAMPLE_GRID;
|
|
6
6
|
private static readonly SEARCH_VARIANTS;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import { State } from '../primitives';
|
|
3
|
-
import AreaNumberSymbol from '../symbols/areaNumberSymbol';
|
|
4
|
-
import CustomTextSymbol from '../symbols/customTextSymbol';
|
|
5
|
-
import Rule from './rule';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import { State } from '../primitives.js';
|
|
3
|
+
import AreaNumberSymbol from '../symbols/areaNumberSymbol.js';
|
|
4
|
+
import CustomTextSymbol from '../symbols/customTextSymbol.js';
|
|
5
|
+
import Rule from './rule.js';
|
|
6
6
|
class UndercluedRule extends Rule {
|
|
7
7
|
/**
|
|
8
8
|
* **Underclued Grid: Mark only what is definitely true**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AnyConfig } from '../config';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { Color, RuleState } from '../primitives';
|
|
4
|
-
import RegionShapeRule from './regionShapeRule';
|
|
5
|
-
import { SearchVariant } from './rule';
|
|
1
|
+
import { AnyConfig } from '../config.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { Color, RuleState } from '../primitives.js';
|
|
4
|
+
import RegionShapeRule from './regionShapeRule.js';
|
|
5
|
+
import { SearchVariant } from './rule.js';
|
|
6
6
|
export default class UniqueShapeRule extends RegionShapeRule {
|
|
7
7
|
private static readonly CONFIGS;
|
|
8
8
|
private static readonly EXAMPLE_GRID_LIGHT;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ConfigType } from '../config';
|
|
2
|
-
import GridData from '../grid';
|
|
3
|
-
import { Color, State } from '../primitives';
|
|
4
|
-
import RegionShapeRule from './regionShapeRule';
|
|
1
|
+
import { ConfigType } from '../config.js';
|
|
2
|
+
import GridData from '../grid.js';
|
|
3
|
+
import { Color, State } from '../primitives.js';
|
|
4
|
+
import RegionShapeRule from './regionShapeRule.js';
|
|
5
5
|
class UniqueShapeRule extends RegionShapeRule {
|
|
6
6
|
/**
|
|
7
7
|
* **No two <color> areas have the same shape and size**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import { Puzzle } from '../puzzle';
|
|
3
|
-
import Rule from '../rules/rule';
|
|
4
|
-
import Symbol from '../symbols/symbol';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import { Puzzle } from '../puzzle.js';
|
|
3
|
+
import Rule from '../rules/rule.js';
|
|
4
|
+
import Symbol from '../symbols/symbol.js';
|
|
5
5
|
/**
|
|
6
6
|
* The master serializer for puzzles.
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { minBy } from '../../dataHelper';
|
|
2
|
-
import CompressorBase from './compressorBase';
|
|
3
|
-
import GzipCompressor from './gzipCompressor';
|
|
4
|
-
import DeflateCompressor from './deflateCompressor';
|
|
1
|
+
import { minBy } from '../../dataHelper.js';
|
|
2
|
+
import CompressorBase from './compressorBase.js';
|
|
3
|
+
import GzipCompressor from './gzipCompressor.js';
|
|
4
|
+
import DeflateCompressor from './deflateCompressor.js';
|
|
5
5
|
const allCompressors = new Map();
|
|
6
6
|
function register(prototype) {
|
|
7
7
|
allCompressors.set(prototype.id, prototype);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import CompressorBase from './compressorBase';
|
|
1
|
+
import CompressorBase from './compressorBase.js';
|
|
2
2
|
export default abstract class StreamCompressor extends CompressorBase {
|
|
3
3
|
protected abstract get algorithm(): CompressionFormat;
|
|
4
4
|
compress(input: string): Promise<string>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import CompressorBase from './compressorBase';
|
|
1
|
+
import CompressorBase from './compressorBase.js';
|
|
2
2
|
function ensureCompressionStream() {
|
|
3
3
|
if (!globalThis.CompressionStream || !globalThis.DecompressionStream) {
|
|
4
4
|
console.log('CompressionStream not supported. Loading polyfill.');
|
|
5
|
-
return import('../../../polyfill/streamPolyfill');
|
|
5
|
+
return import('../../../polyfill/streamPolyfill.js');
|
|
6
6
|
}
|
|
7
7
|
return Promise.resolve();
|
|
8
8
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import GridConnections from '../gridConnections';
|
|
3
|
-
import Rule from '../rules/rule';
|
|
4
|
-
import TileData from '../tile';
|
|
5
|
-
import Symbol from '../symbols/symbol';
|
|
6
|
-
import { Puzzle } from '../puzzle';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import GridConnections from '../gridConnections.js';
|
|
3
|
+
import Rule from '../rules/rule.js';
|
|
4
|
+
import TileData from '../tile.js';
|
|
5
|
+
import Symbol from '../symbols/symbol.js';
|
|
6
|
+
import { Puzzle } from '../puzzle.js';
|
|
7
7
|
export default abstract class SerializerBase {
|
|
8
8
|
abstract get version(): number;
|
|
9
9
|
abstract stringifyTile(tile: TileData): string;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import GridConnections from '../gridConnections';
|
|
3
|
-
import Rule from '../rules/rule';
|
|
4
|
-
import TileData from '../tile';
|
|
5
|
-
import Symbol from '../symbols/symbol';
|
|
6
|
-
import Instruction from '../instruction';
|
|
7
|
-
import { AnyConfig } from '../config';
|
|
8
|
-
import SerializerBase from './serializerBase';
|
|
9
|
-
import { Puzzle } from '../puzzle';
|
|
10
|
-
import { ControlLine } from '../rules/musicControlLine';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import GridConnections from '../gridConnections.js';
|
|
3
|
+
import Rule from '../rules/rule.js';
|
|
4
|
+
import TileData from '../tile.js';
|
|
5
|
+
import Symbol from '../symbols/symbol.js';
|
|
6
|
+
import Instruction from '../instruction.js';
|
|
7
|
+
import { AnyConfig } from '../config.js';
|
|
8
|
+
import SerializerBase from './serializerBase.js';
|
|
9
|
+
import { Puzzle } from '../puzzle.js';
|
|
10
|
+
import { ControlLine } from '../rules/musicControlLine.js';
|
|
11
11
|
export default class SerializerV0 extends SerializerBase {
|
|
12
12
|
readonly version = 0;
|
|
13
13
|
stringifyTile(tile: TileData): string;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import GridData from '../grid';
|
|
2
|
-
import GridConnections from '../gridConnections';
|
|
3
|
-
import TileData from '../tile';
|
|
4
|
-
import { ConfigType } from '../config';
|
|
5
|
-
import { Color, DIRECTIONS, ORIENTATIONS, Orientation, directionToggle, orientationToggle, } from '../primitives';
|
|
6
|
-
import { array, escape, unescape } from '../dataHelper';
|
|
7
|
-
import { allRules } from '../rules';
|
|
8
|
-
import { allSymbols } from '../symbols';
|
|
9
|
-
import SerializerBase from './serializerBase';
|
|
10
|
-
import { ControlLine, Row } from '../rules/musicControlLine';
|
|
1
|
+
import GridData from '../grid.js';
|
|
2
|
+
import GridConnections from '../gridConnections.js';
|
|
3
|
+
import TileData from '../tile.js';
|
|
4
|
+
import { ConfigType } from '../config.js';
|
|
5
|
+
import { Color, DIRECTIONS, ORIENTATIONS, Orientation, directionToggle, orientationToggle, } from '../primitives.js';
|
|
6
|
+
import { array, escape, unescape } from '../dataHelper.js';
|
|
7
|
+
import { allRules } from '../rules/index.js';
|
|
8
|
+
import { allSymbols } from '../symbols/index.js';
|
|
9
|
+
import SerializerBase from './serializerBase.js';
|
|
10
|
+
import { ControlLine, Row } from '../rules/musicControlLine.js';
|
|
11
11
|
const OFFSETS = [
|
|
12
12
|
{ x: 0, y: -1 },
|
|
13
13
|
{ x: -1, y: 0 },
|
package/dist/data/shapes.d.ts
CHANGED
package/dist/data/shapes.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import UndercluedSolver from './underclued/undercluedSolver';
|
|
2
|
-
import BacktrackSolver from './backtrack/backtrackSolver';
|
|
3
|
-
import Z3Solver from './z3/z3Solver';
|
|
1
|
+
import UndercluedSolver from './underclued/undercluedSolver.js';
|
|
2
|
+
import BacktrackSolver from './backtrack/backtrackSolver.js';
|
|
3
|
+
import Z3Solver from './z3/z3Solver.js';
|
|
4
4
|
const allSolvers = new Map();
|
|
5
5
|
function register(prototype) {
|
|
6
6
|
allSolvers.set(prototype.id, prototype);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import GridData from '../../grid';
|
|
2
|
-
import Solver from '../solver';
|
|
1
|
+
import GridData from '../../grid.js';
|
|
2
|
+
import Solver from '../solver.js';
|
|
3
3
|
export default class BacktrackSolver extends Solver {
|
|
4
4
|
private static readonly supportedInstrs;
|
|
5
5
|
readonly id = "backtrack";
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import EventIterator from 'event-iterator';
|
|
2
|
-
import { instance as banPatternInstance } from '../../rules/banPatternRule';
|
|
3
|
-
import { instance as cellCountInstance } from '../../rules/cellCountRule';
|
|
4
|
-
import { instance as regionAreaInstance } from '../../rules/regionAreaRule';
|
|
5
|
-
import { instance as sameShapeInstance } from '../../rules/sameShapeRule';
|
|
6
|
-
import { instance as symbolsPerRegionInstance } from '../../rules/symbolsPerRegionRule';
|
|
7
|
-
import { instance as undercluedInstance } from '../../rules/undercluedRule';
|
|
8
|
-
import { instance as uniqueShapeInstance } from '../../rules/uniqueShapeRule';
|
|
9
|
-
import { Serializer } from '../../serializer/allSerializers';
|
|
10
|
-
import { instance as areaNumberInstance } from '../../symbols/areaNumberSymbol';
|
|
11
|
-
import { instance as dartInstance } from '../../symbols/dartSymbol';
|
|
12
|
-
import { instance as galaxyInstance } from '../../symbols/galaxySymbol';
|
|
13
|
-
import { instance as letterInstance } from '../../symbols/letterSymbol';
|
|
14
|
-
import { instance as lotusInstance } from '../../symbols/lotusSymbol';
|
|
15
|
-
import { instance as minesweeperInstance } from '../../symbols/minesweeperSymbol';
|
|
16
|
-
import { instance as myopiaInstance } from '../../symbols/myopiaSymbol';
|
|
17
|
-
import { instance as viewpointInstance } from '../../symbols/viewpointSymbol';
|
|
18
|
-
import Solver from '../solver';
|
|
19
|
-
import { instance as connectAllInstance } from '../z3/modules/connectAllModule';
|
|
1
|
+
import { EventIterator } from 'event-iterator';
|
|
2
|
+
import { instance as banPatternInstance } from '../../rules/banPatternRule.js';
|
|
3
|
+
import { instance as cellCountInstance } from '../../rules/cellCountRule.js';
|
|
4
|
+
import { instance as regionAreaInstance } from '../../rules/regionAreaRule.js';
|
|
5
|
+
import { instance as sameShapeInstance } from '../../rules/sameShapeRule.js';
|
|
6
|
+
import { instance as symbolsPerRegionInstance } from '../../rules/symbolsPerRegionRule.js';
|
|
7
|
+
import { instance as undercluedInstance } from '../../rules/undercluedRule.js';
|
|
8
|
+
import { instance as uniqueShapeInstance } from '../../rules/uniqueShapeRule.js';
|
|
9
|
+
import { Serializer } from '../../serializer/allSerializers.js';
|
|
10
|
+
import { instance as areaNumberInstance } from '../../symbols/areaNumberSymbol.js';
|
|
11
|
+
import { instance as dartInstance } from '../../symbols/dartSymbol.js';
|
|
12
|
+
import { instance as galaxyInstance } from '../../symbols/galaxySymbol.js';
|
|
13
|
+
import { instance as letterInstance } from '../../symbols/letterSymbol.js';
|
|
14
|
+
import { instance as lotusInstance } from '../../symbols/lotusSymbol.js';
|
|
15
|
+
import { instance as minesweeperInstance } from '../../symbols/minesweeperSymbol.js';
|
|
16
|
+
import { instance as myopiaInstance } from '../../symbols/myopiaSymbol.js';
|
|
17
|
+
import { instance as viewpointInstance } from '../../symbols/viewpointSymbol.js';
|
|
18
|
+
import Solver from '../solver.js';
|
|
19
|
+
import { instance as connectAllInstance } from '../z3/modules/connectAllModule.js';
|
|
20
20
|
class BacktrackSolver extends Solver {
|
|
21
21
|
constructor() {
|
|
22
22
|
super(...arguments);
|
|
@@ -34,7 +34,7 @@ class BacktrackSolver extends Solver {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
async *solve(grid) {
|
|
37
|
-
const worker = new Worker(new URL(
|
|
37
|
+
const worker = new Worker(new URL(`./backtrackWorker.js`, import.meta.url), {
|
|
38
38
|
type: 'module',
|
|
39
39
|
});
|
|
40
40
|
try {
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { array } from '../../dataHelper';
|
|
2
|
-
import { Color } from '../../primitives';
|
|
3
|
-
import { instance as banPatternInstance, } from '../../rules/banPatternRule';
|
|
4
|
-
import { instance as cellCountInstance, } from '../../rules/cellCountRule';
|
|
5
|
-
import { instance as regionAreaInstance, } from '../../rules/regionAreaRule';
|
|
6
|
-
import { instance as sameShapeInstance, } from '../../rules/sameShapeRule';
|
|
7
|
-
import { instance as symbolsPerRegionInstance, } from '../../rules/symbolsPerRegionRule';
|
|
8
|
-
import { instance as undercluedInstance } from '../../rules/undercluedRule';
|
|
9
|
-
import { instance as uniqueShapeInstance, } from '../../rules/uniqueShapeRule';
|
|
10
|
-
import { Serializer } from '../../serializer/allSerializers';
|
|
11
|
-
import { instance as areaNumberInstance, } from '../../symbols/areaNumberSymbol';
|
|
12
|
-
import { instance as dartInstance } from '../../symbols/dartSymbol';
|
|
13
|
-
import { instance as galaxyInstance, } from '../../symbols/galaxySymbol';
|
|
14
|
-
import { instance as letterInstance, } from '../../symbols/letterSymbol';
|
|
15
|
-
import { instance as lotusInstance, } from '../../symbols/lotusSymbol';
|
|
16
|
-
import { instance as minesweeperInstance, } from '../../symbols/minesweeperSymbol';
|
|
17
|
-
import { instance as myopiaInstance, } from '../../symbols/myopiaSymbol';
|
|
18
|
-
import { instance as viewpointInstance, } from '../../symbols/viewpointSymbol';
|
|
19
|
-
import { instance as connectAllInstance } from '../z3/modules/connectAllModule';
|
|
20
|
-
import { BTGridData, BTTile } from './data';
|
|
21
|
-
import BanPatternBTModule from './rules/banPattern';
|
|
22
|
-
import CellCountBTModule from './rules/cellCount';
|
|
23
|
-
import ConnectAllBTModule from './rules/connectAll';
|
|
24
|
-
import RegionAreaBTModule from './rules/regionArea';
|
|
25
|
-
import SameShapeBTModule from './rules/sameShape';
|
|
26
|
-
import SymbolsPerRegionBTModule from './rules/symbolsPerRegion';
|
|
27
|
-
import UniqueShapeBTModule from './rules/uniqueShape';
|
|
28
|
-
import AreaNumberBTModule from './symbols/areaNumber';
|
|
29
|
-
import DartBTModule from './symbols/dart';
|
|
30
|
-
import GalaxyBTModule from './symbols/galaxy';
|
|
31
|
-
import LetterBTModule from './symbols/letter';
|
|
32
|
-
import LotusBTModule from './symbols/lotus';
|
|
33
|
-
import MinesweeperBTModule from './symbols/minesweeper';
|
|
34
|
-
import MyopiaBTModule from './symbols/myopia';
|
|
35
|
-
import ViewpointBTModule from './symbols/viewpoint';
|
|
1
|
+
import { array } from '../../dataHelper.js';
|
|
2
|
+
import { Color } from '../../primitives.js';
|
|
3
|
+
import { instance as banPatternInstance, } from '../../rules/banPatternRule.js';
|
|
4
|
+
import { instance as cellCountInstance, } from '../../rules/cellCountRule.js';
|
|
5
|
+
import { instance as regionAreaInstance, } from '../../rules/regionAreaRule.js';
|
|
6
|
+
import { instance as sameShapeInstance, } from '../../rules/sameShapeRule.js';
|
|
7
|
+
import { instance as symbolsPerRegionInstance, } from '../../rules/symbolsPerRegionRule.js';
|
|
8
|
+
import { instance as undercluedInstance } from '../../rules/undercluedRule.js';
|
|
9
|
+
import { instance as uniqueShapeInstance, } from '../../rules/uniqueShapeRule.js';
|
|
10
|
+
import { Serializer } from '../../serializer/allSerializers.js';
|
|
11
|
+
import { instance as areaNumberInstance, } from '../../symbols/areaNumberSymbol.js';
|
|
12
|
+
import { instance as dartInstance, } from '../../symbols/dartSymbol.js';
|
|
13
|
+
import { instance as galaxyInstance, } from '../../symbols/galaxySymbol.js';
|
|
14
|
+
import { instance as letterInstance, } from '../../symbols/letterSymbol.js';
|
|
15
|
+
import { instance as lotusInstance, } from '../../symbols/lotusSymbol.js';
|
|
16
|
+
import { instance as minesweeperInstance, } from '../../symbols/minesweeperSymbol.js';
|
|
17
|
+
import { instance as myopiaInstance, } from '../../symbols/myopiaSymbol.js';
|
|
18
|
+
import { instance as viewpointInstance, } from '../../symbols/viewpointSymbol.js';
|
|
19
|
+
import { instance as connectAllInstance } from '../z3/modules/connectAllModule.js';
|
|
20
|
+
import { BTGridData, BTTile } from './data.js';
|
|
21
|
+
import BanPatternBTModule from './rules/banPattern.js';
|
|
22
|
+
import CellCountBTModule from './rules/cellCount.js';
|
|
23
|
+
import ConnectAllBTModule from './rules/connectAll.js';
|
|
24
|
+
import RegionAreaBTModule from './rules/regionArea.js';
|
|
25
|
+
import SameShapeBTModule from './rules/sameShape.js';
|
|
26
|
+
import SymbolsPerRegionBTModule from './rules/symbolsPerRegion.js';
|
|
27
|
+
import UniqueShapeBTModule from './rules/uniqueShape.js';
|
|
28
|
+
import AreaNumberBTModule from './symbols/areaNumber.js';
|
|
29
|
+
import DartBTModule from './symbols/dart.js';
|
|
30
|
+
import GalaxyBTModule from './symbols/galaxy.js';
|
|
31
|
+
import LetterBTModule from './symbols/letter.js';
|
|
32
|
+
import LotusBTModule from './symbols/lotus.js';
|
|
33
|
+
import MinesweeperBTModule from './symbols/minesweeper.js';
|
|
34
|
+
import MyopiaBTModule from './symbols/myopia.js';
|
|
35
|
+
import ViewpointBTModule from './symbols/viewpoint.js';
|
|
36
36
|
function translateToBTGridData(grid) {
|
|
37
37
|
const tiles = array(grid.width, grid.height, (x, y) => {
|
|
38
38
|
const tile = grid.getTile(x, y);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Position } from '../../../primitives';
|
|
2
|
-
import BanPatternRule from '../../../rules/banPatternRule';
|
|
3
|
-
import BTModule, { BTGridData, CheckResult } from '../data';
|
|
1
|
+
import { Position } from '../../../primitives.js';
|
|
2
|
+
import BanPatternRule from '../../../rules/banPatternRule.js';
|
|
3
|
+
import BTModule, { BTGridData, CheckResult } from '../data.js';
|
|
4
4
|
export default class BanPatternBTModule extends BTModule {
|
|
5
5
|
instr: BanPatternRule;
|
|
6
6
|
constructor(instr: BanPatternRule);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import CellCountRule from '../../../rules/cellCountRule';
|
|
2
|
-
import BTModule, { BTGridData, CheckResult } from '../data';
|
|
1
|
+
import CellCountRule from '../../../rules/cellCountRule.js';
|
|
2
|
+
import BTModule, { BTGridData, CheckResult } from '../data.js';
|
|
3
3
|
export default class CellCountBTModule extends BTModule {
|
|
4
4
|
instr: CellCountRule;
|
|
5
5
|
constructor(instr: CellCountRule);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import ConnectAllRule from '../../../rules/connectAllRule';
|
|
2
|
-
import BTModule, { BTGridData, CheckResult } from '../data';
|
|
1
|
+
import ConnectAllRule from '../../../rules/connectAllRule.js';
|
|
2
|
+
import BTModule, { BTGridData, CheckResult } from '../data.js';
|
|
3
3
|
export default class ConnectAllBTModule extends BTModule {
|
|
4
4
|
instr: ConnectAllRule;
|
|
5
5
|
constructor(instr: ConnectAllRule);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import RegionAreaRule from '../../../rules/regionAreaRule';
|
|
2
|
-
import BTModule, { BTGridData, CheckResult } from '../data';
|
|
1
|
+
import RegionAreaRule from '../../../rules/regionAreaRule.js';
|
|
2
|
+
import BTModule, { BTGridData, CheckResult } from '../data.js';
|
|
3
3
|
export default class RegionAreaBTModule extends BTModule {
|
|
4
4
|
instr: RegionAreaRule;
|
|
5
5
|
constructor(instr: RegionAreaRule);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import RegionShapeRule, { ShapeRegions } from '../../../rules/regionShapeRule';
|
|
2
|
-
import BTModule, { BTGridData } from '../data';
|
|
1
|
+
import RegionShapeRule, { ShapeRegions } from '../../../rules/regionShapeRule.js';
|
|
2
|
+
import BTModule, { BTGridData } from '../data.js';
|
|
3
3
|
export default abstract class RegionShapeBTModule extends BTModule {
|
|
4
4
|
instr: RegionShapeRule;
|
|
5
5
|
constructor(instr: RegionShapeRule);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { normalizeShape, positionsToShape, shapeEquals } from '../../../shapes';
|
|
2
|
-
import BTModule, { BTTile, IntArray2D, colorToBTTile, } from '../data';
|
|
1
|
+
import { normalizeShape, positionsToShape, shapeEquals, } from '../../../shapes.js';
|
|
2
|
+
import BTModule, { BTTile, IntArray2D, colorToBTTile, } from '../data.js';
|
|
3
3
|
export default class RegionShapeBTModule extends BTModule {
|
|
4
4
|
constructor(instr) {
|
|
5
5
|
super();
|