cubing 0.22.0 → 0.22.1
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 +4 -7
- package/dist/.DS_Store +0 -0
- package/dist/bin/order.js +16675 -0
- package/dist/bin/order.js.map +7 -0
- package/dist/bin/puzzle-geometry-bin.js +4 -4
- package/dist/bin/puzzle-geometry-bin.js.map +2 -2
- package/dist/bundle-global/cubing.bundle-global.js +469 -193
- package/dist/esm/{3d-3WQVOHX5.js → 3d-M7GBIT3X.js} +3 -3
- package/dist/esm/{3d-3WQVOHX5.js.map → 3d-M7GBIT3X.js.map} +0 -0
- package/dist/esm/bluetooth/index.js +8 -6
- package/dist/esm/bluetooth/index.js.map +3 -3
- package/dist/esm/{chunk-7KI3I3Y7.js → chunk-6BZSKSG7.js} +722 -733
- package/dist/esm/chunk-6BZSKSG7.js.map +7 -0
- package/dist/esm/{chunk-DLN5QS4V.js → chunk-GF76PWEV.js} +4 -2
- package/dist/esm/chunk-GF76PWEV.js.map +7 -0
- package/dist/esm/{chunk-HXKINJ7U.js → chunk-R3HRHYIW.js} +14 -2
- package/dist/esm/chunk-R3HRHYIW.js.map +7 -0
- package/dist/esm/esm-test-worker.js +2 -2
- package/dist/esm/esm-test-worker.js.map +2 -2
- package/dist/esm/{node-WEHVBEKP.js → node-HFBX5WHK.js} +2 -2
- package/dist/esm/{node-WEHVBEKP.js.map → node-HFBX5WHK.js.map} +1 -1
- package/dist/esm/{node-BSAQKO3G.js → node-SP4L2AKI.js} +2 -2
- package/dist/esm/{node-BSAQKO3G.js.map → node-SP4L2AKI.js.map} +1 -1
- package/dist/esm/puzzle-geometry/index.js +4 -4
- package/dist/esm/puzzle-geometry/index.js.map +2 -2
- package/dist/esm/puzzles/index.js +1 -1
- package/dist/esm/scramble/index.js +2 -2
- package/dist/esm/search/index.js +2 -2
- package/dist/esm/twisty/index.js +11 -7
- package/dist/esm/twisty/index.js.map +2 -2
- package/dist/esm/worker-inside-generated-string-RQYYANYQ.js +3107 -0
- package/dist/esm/worker-inside-generated-string-RQYYANYQ.js.map +7 -0
- package/dist/types/bluetooth/smart-puzzle/gan.d.ts.map +1 -1
- package/dist/types/cubing.bundle-global.exports.d.ts +25 -0
- package/dist/types/cubing.bundle-global.exports.d.ts.map +1 -0
- package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +2 -2
- package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts.map +1 -1
- package/dist/types/puzzle-geometry/index.d.ts +1 -1
- package/dist/types/puzzle-geometry/index.d.ts.map +1 -1
- package/dist/types/puzzles/stickerings/cube-stickerings.d.ts.map +1 -1
- package/dist/types/search/inside/api.d.ts.map +1 -1
- package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +1 -1
- package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +1 -1
- package/dist/types/search/inside/solve/puzzles/fto.d.ts +6 -0
- package/dist/types/search/inside/solve/puzzles/fto.d.ts.map +1 -0
- package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts +5 -0
- package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts.map +1 -0
- package/dist/types/search/inside/solve/tremble.d.ts.map +1 -1
- package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
- package/dist/types/search/worker-inside-generated-string.d.ts.map +1 -1
- package/dist/types/twisty/model/TwistyPlayerModel.d.ts.map +1 -1
- package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +2 -0
- package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts.map +1 -1
- package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +6 -1
- package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +1 -1
- package/dist/types/{search/vendor → vendor}/comlink-everywhere/inside/index.d.ts +0 -0
- package/dist/types/vendor/comlink-everywhere/inside/index.d.ts.map +1 -0
- package/dist/types/{search/vendor → vendor}/comlink-everywhere/inside/node.d.ts +0 -0
- package/dist/types/vendor/comlink-everywhere/inside/node.d.ts.map +1 -0
- package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/index.d.ts +0 -0
- package/dist/types/vendor/comlink-everywhere/outside/index.d.ts.map +1 -0
- package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/node.d.ts +0 -0
- package/dist/types/vendor/comlink-everywhere/outside/node.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/lib/mathlib.d.ts +0 -0
- package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/scramble/scramble_444.d.ts +1 -1
- package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/min2phase/gwt.d.ts +0 -0
- package/dist/types/vendor/min2phase/gwt.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/get-random-values.d.ts +0 -0
- package/dist/types/vendor/random-uint-below/get-random-values.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/index.d.ts +1 -1
- package/dist/types/vendor/random-uint-below/index.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/random-choice.d.ts +0 -0
- package/dist/types/vendor/random-uint-below/random-choice.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor/random-uint-below/random-int.d.ts → vendor/random-uint-below/random53BitValue.d.ts} +1 -1
- package/dist/types/vendor/random-uint-below/random53BitValue.d.ts.map +1 -0
- package/dist/types/{search/inside/solve/vendor → vendor}/sq12phase/scramble_sq1.d.ts +0 -0
- package/dist/types/vendor/sq12phase/scramble_sq1.d.ts.map +1 -0
- package/dist/types/{bluetooth/smart-puzzle → vendor/unsafe-raw-aes}/unsafe-raw-aes.d.ts +0 -0
- package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +1 -0
- package/docs/.DS_Store +0 -0
- package/docs/cubing/.DS_Store +0 -0
- package/docs/cubing/index.html +67 -27
- package/docs/main.css +7 -6
- package/package.json +8 -9
- package/src/cubing/.DS_Store +0 -0
- package/src/cubing/bluetooth/smart-puzzle/gan.ts +4 -1
- package/src/cubing/cubing.bundle-global.exports.ts +25 -0
- package/src/cubing/cubing.bundle-global.ts +2 -26
- package/src/cubing/puzzle-geometry/PuzzleGeometry.ts +6 -2
- package/src/cubing/puzzle-geometry/index.ts +2 -2
- package/src/cubing/puzzles/.DS_Store +0 -0
- package/{dist/esm → src/cubing/puzzles/implementations}/.DS_Store +0 -0
- package/src/cubing/puzzles/stickerings/cube-stickerings.ts +18 -0
- package/src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts +1 -1
- package/src/cubing/search/.DS_Store +0 -0
- package/src/cubing/search/esm-test-worker.js +1 -1
- package/src/cubing/search/inside/.DS_Store +0 -0
- package/src/cubing/search/inside/api.ts +3 -0
- package/src/cubing/search/inside/entry.js +1 -1
- package/src/cubing/search/inside/inside-worker.ts +1 -1
- package/src/cubing/search/inside/solve/.DS_Store +0 -0
- package/src/cubing/search/inside/solve/addOrientationSuffix.ts +1 -1
- package/src/cubing/search/inside/solve/puzzles/.DS_Store +0 -0
- package/src/cubing/search/inside/solve/puzzles/2x2x2.ts +1 -1
- package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +2 -2
- package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +2 -2
- package/src/cubing/search/inside/solve/puzzles/big-cubes.ts +1 -1
- package/src/cubing/search/inside/solve/puzzles/clock.ts +1 -1
- package/src/cubing/search/inside/solve/puzzles/{FTO.sgs → fto.sgs.json.ts} +116 -80
- package/src/cubing/search/inside/solve/puzzles/fto.ts +58 -0
- package/src/cubing/search/inside/solve/puzzles/sq1.ts +1 -1
- package/src/cubing/search/inside/solve/puzzles/wca-minx.ts +1 -1
- package/src/cubing/search/inside/solve/tremble.ts +2 -1
- package/src/cubing/search/inside/solve/vendor/.DS_Store +0 -0
- package/src/cubing/search/instantiator.ts +1 -1
- package/src/cubing/search/worker-inside-generated-string.js +1 -1
- package/src/cubing/twisty/.DS_Store +0 -0
- package/src/cubing/twisty/controllers/.DS_Store +0 -0
- package/src/cubing/twisty/heavy-code-imports/.DS_Store +0 -0
- package/src/cubing/twisty/model/.DS_Store +0 -0
- package/src/cubing/twisty/model/TwistyPlayerModel.ts +8 -6
- package/src/cubing/twisty/model/props/.DS_Store +0 -0
- package/src/cubing/twisty/model/props/puzzle/.DS_Store +0 -0
- package/src/cubing/twisty/model/props/puzzle/display/StickeringProp.ts +2 -0
- package/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.ts +6 -1
- package/src/cubing/twisty/old/.DS_Store +0 -0
- package/src/cubing/twisty/views/.DS_Store +0 -0
- package/src/cubing/twisty/views/3D/.DS_Store +0 -0
- package/src/cubing/twisty/views/node-custom-element-shims.ts +2 -2
- package/src/cubing/vendor/.DS_Store +0 -0
- package/src/cubing/vendor/comlink-everywhere/.DS_Store +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/comlink-everywhere.webloc +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/index.d.ts +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/index.js +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/node.js +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/index.d.ts +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/index.js +0 -0
- package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/node.js +0 -0
- package/src/cubing/vendor/cstimer/.DS_Store +0 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/LICENSE +0 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/src/js/lib/mathlib.ts +0 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/src/js/scramble/scramble_444.ts +3 -3
- package/src/cubing/{search/inside/solve/vendor → vendor}/min2phase/gwt.d.ts +0 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/min2phase/gwt.js +0 -0
- package/src/cubing/vendor/random-uint-below/get-random-values.ts +23 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/random-uint-below/index.ts +2 -2
- package/src/cubing/{search/inside/solve/vendor → vendor}/random-uint-below/random-choice.ts +1 -1
- package/src/cubing/{search/inside/solve/vendor/random-uint-below/random-int.ts → vendor/random-uint-below/random53BitValue.ts} +0 -0
- package/src/cubing/{search/inside/solve/vendor → vendor}/sq12phase/scramble_sq1.js +0 -0
- package/src/cubing/{bluetooth/smart-puzzle → vendor/unsafe-raw-aes}/unsafe-raw-aes.ts +18 -20
- package/dist/esm/chunk-7KI3I3Y7.js.map +0 -7
- package/dist/esm/chunk-DLN5QS4V.js.map +0 -7
- package/dist/esm/chunk-HXKINJ7U.js.map +0 -7
- package/dist/esm/worker-inside-generated-string-ZA6E6672.js +0 -2831
- package/dist/esm/worker-inside-generated-string-ZA6E6672.js.map +0 -7
- package/dist/types/bluetooth/smart-puzzle/unsafe-raw-aes.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/min2phase/gwt.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/random-uint-below/get-random-values.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/random-uint-below/index.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/random-uint-below/random-choice.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/random-uint-below/random-int.d.ts.map +0 -1
- package/dist/types/search/inside/solve/vendor/sq12phase/scramble_sq1.d.ts.map +0 -1
- package/dist/types/search/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
- package/dist/types/search/vendor/comlink-everywhere/inside/node.d.ts.map +0 -1
- package/dist/types/search/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
- package/dist/types/search/vendor/comlink-everywhere/outside/node.d.ts.map +0 -1
- package/src/cubing/search/inside/solve/vendor/random-uint-below/get-random-values.ts +0 -38
|
Binary file
|
|
Binary file
|
|
@@ -9,7 +9,7 @@ import { mustBeInsideWorker } from "../../inside-worker";
|
|
|
9
9
|
import {
|
|
10
10
|
randomPermute,
|
|
11
11
|
randomUIntBelowFactory,
|
|
12
|
-
} from "
|
|
12
|
+
} from "../../../../vendor/random-uint-below";
|
|
13
13
|
import type { SGSCachedData } from "../parseSGS";
|
|
14
14
|
import { TrembleSolver } from "../tremble";
|
|
15
15
|
|
|
@@ -3,11 +3,11 @@ import { KPuzzle, Transformation } from "../../../../../kpuzzle";
|
|
|
3
3
|
import { puzzles } from "../../../../../puzzles";
|
|
4
4
|
import { mustBeInsideWorker } from "../../../inside-worker";
|
|
5
5
|
import { addOrientationSuffix } from "../../addOrientationSuffix";
|
|
6
|
-
import {
|
|
7
|
-
import { randomChoiceFactory } from "../../vendor/random-uint-below";
|
|
6
|
+
import { randomChoiceFactory } from "../../../../../vendor/random-uint-below";
|
|
8
7
|
import { toMin2PhaseState } from "./convert";
|
|
9
8
|
import { passesFilter } from "./filter";
|
|
10
9
|
import { sgs3x3x3 } from "./legacy-sgs";
|
|
10
|
+
import { initialize, solveState } from "../../../../../vendor/min2phase/gwt";
|
|
11
11
|
|
|
12
12
|
export async function random333State(): Promise<Transformation> {
|
|
13
13
|
const def = await puzzles["3x3x3"].def();
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Alg } from "../../../../alg";
|
|
2
2
|
import { addOrientationSuffix } from "../addOrientationSuffix";
|
|
3
|
-
import { random444Scramble } from "
|
|
3
|
+
import { random444Scramble } from "../../../../vendor/cstimer/src/js/scramble/scramble_444";
|
|
4
4
|
export {
|
|
5
5
|
initialize as initialize444,
|
|
6
6
|
random444Scramble,
|
|
7
|
-
} from "
|
|
7
|
+
} from "../../../../vendor/cstimer/src/js/scramble/scramble_444";
|
|
8
8
|
|
|
9
9
|
const randomSuffixes = [
|
|
10
10
|
[null, "x", "x2", "x'", "z", "z'"],
|
|
@@ -2,7 +2,7 @@ import { Alg, AlgBuilder, Move, QuantumMove } from "../../../../alg";
|
|
|
2
2
|
import {
|
|
3
3
|
randomChoiceFactory,
|
|
4
4
|
randomUIntBelowFactory,
|
|
5
|
-
} from "
|
|
5
|
+
} from "../../../../vendor/random-uint-below";
|
|
6
6
|
|
|
7
7
|
function numMoves(n: number): number {
|
|
8
8
|
switch (n) {
|
|
@@ -1,16 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { KPuzzleDefinition } from "../../../../kpuzzle";
|
|
2
|
+
import { getPuzzleGeometryByName } from "../../../../puzzle-geometry";
|
|
3
|
+
import { parseSGS, SGSCachedData } from "../parseSGS";
|
|
4
|
+
|
|
5
|
+
export async function ftoDef(): Promise<KPuzzleDefinition> {
|
|
6
|
+
return getPuzzleGeometryByName("FTO", {
|
|
7
|
+
allMoves: true,
|
|
8
|
+
orientCenters: true,
|
|
9
|
+
addRotations: true,
|
|
10
|
+
}).writekpuzzle(true);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let cachedData: Promise<SGSCachedData> | null = null;
|
|
14
|
+
export async function sgsDataFTO() {
|
|
15
|
+
return (cachedData ??= uncachedSGSDataFTO());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// TODO: Reduce info.
|
|
19
|
+
async function uncachedSGSDataFTO(): Promise<SGSCachedData> {
|
|
20
|
+
return parseSGS(
|
|
21
|
+
await ftoDef(),
|
|
22
|
+
`SubgroupSizes 24 12 11 12 12 11 10 9 11 8 10 9 7 8 10 10 6 9 8 5 7 6 5 4 4 8 7 3 6 6 2 5 3 4 3
|
|
23
|
+
|
|
24
|
+
Alg T
|
|
25
|
+
Alg B
|
|
26
|
+
Alg B T
|
|
27
|
+
Alg B'
|
|
28
|
+
Alg B' T
|
|
5
29
|
Alg U
|
|
30
|
+
Alg U T
|
|
6
31
|
Alg U'
|
|
7
|
-
Alg
|
|
8
|
-
Alg
|
|
9
|
-
Alg
|
|
10
|
-
Alg
|
|
32
|
+
Alg U' T
|
|
33
|
+
Alg B BL
|
|
34
|
+
Alg B BL T
|
|
35
|
+
Alg B BL'
|
|
36
|
+
Alg B BL' T
|
|
37
|
+
Alg B' BR
|
|
38
|
+
Alg B' BR T
|
|
39
|
+
Alg B' BR'
|
|
40
|
+
Alg B' BR' T
|
|
11
41
|
Alg U R'
|
|
42
|
+
Alg U R' T
|
|
12
43
|
Alg U' L
|
|
13
|
-
Alg
|
|
44
|
+
Alg U' L T
|
|
45
|
+
Alg B BL' D
|
|
46
|
+
Alg B BL' D T
|
|
14
47
|
|
|
15
48
|
Alg R
|
|
16
49
|
Alg R'
|
|
@@ -21,19 +54,19 @@ Alg R BR'
|
|
|
21
54
|
Alg R' F
|
|
22
55
|
Alg R' L
|
|
23
56
|
Alg R' L'
|
|
24
|
-
Alg
|
|
57
|
+
Alg B L B'
|
|
25
58
|
Alg U L' U'
|
|
26
59
|
|
|
27
|
-
Alg
|
|
28
|
-
Alg
|
|
29
|
-
Alg
|
|
30
|
-
Alg
|
|
31
|
-
Alg
|
|
32
|
-
Alg
|
|
33
|
-
Alg
|
|
34
|
-
Alg
|
|
35
|
-
Alg
|
|
36
|
-
Alg
|
|
60
|
+
Alg B U B'
|
|
61
|
+
Alg B U' B'
|
|
62
|
+
Alg B R B'
|
|
63
|
+
Alg B R' B'
|
|
64
|
+
Alg B' U' B
|
|
65
|
+
Alg B' U B L
|
|
66
|
+
Alg B' U B L'
|
|
67
|
+
Alg B' U' B BL'
|
|
68
|
+
Alg B U' B' BR
|
|
69
|
+
Alg B' R' B F
|
|
37
70
|
|
|
38
71
|
Alg BR
|
|
39
72
|
Alg BR'
|
|
@@ -42,22 +75,22 @@ Alg BR BL'
|
|
|
42
75
|
Alg BR' F
|
|
43
76
|
Alg BR' F'
|
|
44
77
|
Alg BR' D
|
|
45
|
-
Alg
|
|
78
|
+
Alg B BR B'
|
|
46
79
|
Alg U F U'
|
|
47
80
|
Alg BR BL L
|
|
48
81
|
Alg BR' D BR'
|
|
49
82
|
|
|
50
|
-
Alg
|
|
51
|
-
Alg
|
|
83
|
+
Alg B' BL B
|
|
84
|
+
Alg B' BL' B
|
|
52
85
|
Alg BR D' BR'
|
|
53
|
-
Alg
|
|
54
|
-
Alg
|
|
55
|
-
Alg
|
|
56
|
-
Alg
|
|
57
|
-
Alg
|
|
58
|
-
Alg
|
|
59
|
-
Alg
|
|
60
|
-
Alg
|
|
86
|
+
Alg B' BL B D'
|
|
87
|
+
Alg B' BL B BL
|
|
88
|
+
Alg B' BL B BL'
|
|
89
|
+
Alg B' BL L B
|
|
90
|
+
Alg B' BL' B F'
|
|
91
|
+
Alg B' BL' B L'
|
|
92
|
+
Alg B' BL' B BL'
|
|
93
|
+
Alg B' BL' L BL' B
|
|
61
94
|
|
|
62
95
|
Alg R' BR R
|
|
63
96
|
Alg R' BR' R
|
|
@@ -65,8 +98,8 @@ Alg BR BL' D BR
|
|
|
65
98
|
Alg R' BR D R
|
|
66
99
|
Alg R' BR D' R
|
|
67
100
|
Alg R' BR R BL
|
|
68
|
-
Alg
|
|
69
|
-
Alg BR
|
|
101
|
+
Alg B' D' BL D B
|
|
102
|
+
Alg BR B D' B' BR'
|
|
70
103
|
Alg BR BL' D BR L'
|
|
71
104
|
Alg BR BL' D BL BR
|
|
72
105
|
|
|
@@ -74,31 +107,31 @@ Alg U BR U'
|
|
|
74
107
|
Alg U BR' U'
|
|
75
108
|
Alg U' R U
|
|
76
109
|
Alg U' R' U
|
|
77
|
-
Alg U BR
|
|
110
|
+
Alg U BR B' U'
|
|
78
111
|
Alg U BR' U' D
|
|
79
112
|
Alg U BR' U' D'
|
|
80
113
|
Alg U' R F' U
|
|
81
114
|
Alg U' R' U L'
|
|
82
115
|
|
|
83
|
-
Alg U
|
|
84
|
-
Alg U
|
|
85
|
-
Alg U
|
|
86
|
-
Alg U
|
|
87
|
-
Alg U
|
|
88
|
-
Alg U
|
|
89
|
-
Alg U
|
|
90
|
-
Alg U
|
|
91
|
-
|
|
92
|
-
Alg
|
|
93
|
-
Alg
|
|
94
|
-
Alg U
|
|
95
|
-
Alg U
|
|
116
|
+
Alg U B U'
|
|
117
|
+
Alg U B' U'
|
|
118
|
+
Alg U B U' L
|
|
119
|
+
Alg U B U' L'
|
|
120
|
+
Alg U B' U' BL'
|
|
121
|
+
Alg U B U' L F
|
|
122
|
+
Alg U B U' L F'
|
|
123
|
+
Alg U B' U' BL' D'
|
|
124
|
+
|
|
125
|
+
Alg B BL' L BL B'
|
|
126
|
+
Alg B BL' L' BL B'
|
|
127
|
+
Alg U B' D B U'
|
|
128
|
+
Alg U B' D' B U'
|
|
96
129
|
Alg U R D R' U'
|
|
97
130
|
Alg U R D' R' U'
|
|
98
131
|
Alg R' F L F' R
|
|
99
132
|
Alg R' F L' F' R
|
|
100
|
-
Alg
|
|
101
|
-
Alg U
|
|
133
|
+
Alg B L' B F' D B
|
|
134
|
+
Alg U B' D' B U' D
|
|
102
135
|
|
|
103
136
|
Alg F
|
|
104
137
|
Alg F'
|
|
@@ -148,19 +181,19 @@ Alg R' D R
|
|
|
148
181
|
Alg R' D' R
|
|
149
182
|
Alg L D L' D'
|
|
150
183
|
Alg L R L' R'
|
|
151
|
-
Alg L'
|
|
184
|
+
Alg L' B' L B
|
|
152
185
|
Alg R' D R BL
|
|
153
186
|
Alg L BL' L' BL L'
|
|
154
187
|
|
|
155
188
|
Alg U L' D L U'
|
|
156
|
-
Alg U
|
|
189
|
+
Alg U B D B' U'
|
|
157
190
|
Alg U L' D' L U'
|
|
158
|
-
Alg U
|
|
191
|
+
Alg U B D' B' U'
|
|
159
192
|
Alg R' D' BL' D R
|
|
160
|
-
Alg U
|
|
161
|
-
Alg U
|
|
162
|
-
Alg U
|
|
163
|
-
Alg U
|
|
193
|
+
Alg U B D' B' U' D
|
|
194
|
+
Alg U B' L B L' U'
|
|
195
|
+
Alg U B D B' U' BL'
|
|
196
|
+
Alg U B D' B' L' D' L U'
|
|
164
197
|
|
|
165
198
|
Alg F L F'
|
|
166
199
|
Alg F L' F'
|
|
@@ -172,18 +205,18 @@ Alg L BL' D BL L'
|
|
|
172
205
|
Alg L BL' D' BL L'
|
|
173
206
|
Alg F D L D' L' F'
|
|
174
207
|
Alg F L D L' D' F'
|
|
175
|
-
Alg F L'
|
|
208
|
+
Alg F L' B' L B F'
|
|
176
209
|
Alg F' D' R' D R F
|
|
177
210
|
Alg F D L D' L' F' BL'
|
|
178
|
-
Alg F' R'
|
|
211
|
+
Alg F' R' B' R' B R' F
|
|
179
212
|
|
|
180
|
-
Alg
|
|
181
|
-
Alg
|
|
213
|
+
Alg B D B'
|
|
214
|
+
Alg B D' B'
|
|
182
215
|
Alg L' D L
|
|
183
216
|
Alg L' D' L
|
|
184
|
-
Alg
|
|
185
|
-
Alg
|
|
186
|
-
Alg
|
|
217
|
+
Alg B D B' D'
|
|
218
|
+
Alg B' L B L'
|
|
219
|
+
Alg B D B' D' BL
|
|
187
220
|
|
|
188
221
|
Alg D
|
|
189
222
|
Alg D'
|
|
@@ -192,14 +225,14 @@ Alg D BL'
|
|
|
192
225
|
|
|
193
226
|
Alg D BL' D BL D'
|
|
194
227
|
Alg D BL' D' BL D'
|
|
195
|
-
Alg
|
|
196
|
-
Alg
|
|
228
|
+
Alg B D R D' R' B'
|
|
229
|
+
Alg B R D R' D' B'
|
|
197
230
|
Alg D BL' D BL D' BL
|
|
198
231
|
Alg D BL' D BL D' BL'
|
|
199
232
|
|
|
200
233
|
Alg D BL D BL' D'
|
|
201
234
|
Alg D BL D' BL' D'
|
|
202
|
-
Alg
|
|
235
|
+
Alg B' BL' B BR D' BR'
|
|
203
236
|
Alg D BL D BL' D' BL
|
|
204
237
|
Alg D BL D BL' D' BL'
|
|
205
238
|
|
|
@@ -208,15 +241,15 @@ Alg D' BL' D
|
|
|
208
241
|
Alg D' BL D BL
|
|
209
242
|
Alg D' BL D BL'
|
|
210
243
|
|
|
211
|
-
Alg
|
|
212
|
-
Alg
|
|
244
|
+
Alg B D' B' BL B D B'
|
|
245
|
+
Alg B D' B' BL' B D B'
|
|
213
246
|
Alg D' BL' D BL D' BL D
|
|
214
247
|
|
|
215
|
-
Alg
|
|
216
|
-
Alg
|
|
248
|
+
Alg B R' B' BL B R B'
|
|
249
|
+
Alg B R' B' BL' B R B'
|
|
217
250
|
Alg L R L' BL' L R' L'
|
|
218
251
|
|
|
219
|
-
Alg F BL'
|
|
252
|
+
Alg F BL' B' BL F' BL' B
|
|
220
253
|
Alg F' R' F BL F' R F
|
|
221
254
|
Alg F' R' F BL' F' R F
|
|
222
255
|
Alg BR R BR' BL' BR R' BR'
|
|
@@ -241,7 +274,7 @@ Alg BR F BL F' BL' BR'
|
|
|
241
274
|
Alg F U' F' U BL' U BL U'
|
|
242
275
|
|
|
243
276
|
Alg F U' F' D F U F' D'
|
|
244
|
-
Alg
|
|
277
|
+
Alg B' U' F U B U' F' U
|
|
245
278
|
Alg D F U' F' D' F U F'
|
|
246
279
|
Alg BR' U BR D' BR' U' BR D
|
|
247
280
|
Alg D' BR BL' F BL' F' BL BR' BL D
|
|
@@ -250,15 +283,18 @@ Alg U BR' U' BR BL' BR BL BR'
|
|
|
250
283
|
|
|
251
284
|
Alg F L F' BL D F' D' F BL' L'
|
|
252
285
|
Alg F' BR F BR' L BL' BR' BL BR L'
|
|
253
|
-
Alg
|
|
286
|
+
Alg B BR' U R BR' R' BR U' B' BR
|
|
254
287
|
Alg U BR' U' BR L' BL BR BL' BR' L
|
|
255
288
|
|
|
256
|
-
Alg F
|
|
257
|
-
Alg
|
|
289
|
+
Alg B' F' BR' L R' BL U R BL' BR L' B' F BL' B'
|
|
290
|
+
Alg B BL F' B L BR' BL R' U' BL' R L' BR F B
|
|
258
291
|
|
|
259
292
|
Alg F' D BR F' R F R' BR' F D'
|
|
260
|
-
Alg
|
|
261
|
-
Alg U
|
|
262
|
-
|
|
263
|
-
Alg F BL F' BL'
|
|
264
|
-
Alg
|
|
293
|
+
Alg B BL U' L U L' BL' U B' U'
|
|
294
|
+
Alg U B U' BL L U' L' U BL' B'
|
|
295
|
+
|
|
296
|
+
Alg F BL F' BL' B F' BR F BR' B'
|
|
297
|
+
Alg B BR F' BR' B' F BL F BL' F'
|
|
298
|
+
`,
|
|
299
|
+
);
|
|
300
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Alg } from "../../../../alg";
|
|
2
|
+
import type { Transformation } from "../../../../kpuzzle";
|
|
3
|
+
import { mustBeInsideWorker } from "../../inside-worker";
|
|
4
|
+
import type { SGSCachedData } from "../parseSGS";
|
|
5
|
+
import { randomStateFromSGS, TrembleSolver } from "../tremble";
|
|
6
|
+
|
|
7
|
+
const TREMBLE_DEPTH = 3;
|
|
8
|
+
|
|
9
|
+
let cachedTrembleSolver: Promise<TrembleSolver> | null = null;
|
|
10
|
+
async function getCachedTrembleSolver(): Promise<TrembleSolver> {
|
|
11
|
+
return (
|
|
12
|
+
cachedTrembleSolver ||
|
|
13
|
+
(cachedTrembleSolver = (async (): Promise<TrembleSolver> => {
|
|
14
|
+
const sgs = await import("./fto.sgs.json");
|
|
15
|
+
const json: SGSCachedData = await sgs.sgsDataFTO();
|
|
16
|
+
return new TrembleSolver(await sgs.ftoDef(), json, [
|
|
17
|
+
"U",
|
|
18
|
+
"R",
|
|
19
|
+
"F",
|
|
20
|
+
"L",
|
|
21
|
+
"D",
|
|
22
|
+
"B",
|
|
23
|
+
"BR",
|
|
24
|
+
"BL",
|
|
25
|
+
]);
|
|
26
|
+
})())
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export async function preInitializeFTO(): Promise<void> {
|
|
31
|
+
await getCachedTrembleSolver();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// TODO: centers
|
|
35
|
+
export async function solveFTO(state: Transformation): Promise<Alg> {
|
|
36
|
+
mustBeInsideWorker();
|
|
37
|
+
const trembleSolver = await getCachedTrembleSolver();
|
|
38
|
+
const alg = await trembleSolver.solve(
|
|
39
|
+
state,
|
|
40
|
+
TREMBLE_DEPTH,
|
|
41
|
+
() => 3, // TODO: Attach quantum move order lookup to puzzle.
|
|
42
|
+
);
|
|
43
|
+
return alg;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
let warned = false;
|
|
47
|
+
export async function randomFTOScramble(): Promise<Alg> {
|
|
48
|
+
if (!warned) {
|
|
49
|
+
console.warn(
|
|
50
|
+
"FTO scrambles are not yet optimized. They may be much too long (≈90 moves).",
|
|
51
|
+
);
|
|
52
|
+
warned = true;
|
|
53
|
+
}
|
|
54
|
+
const sgs = await import("./fto.sgs.json");
|
|
55
|
+
return solveFTO(
|
|
56
|
+
await randomStateFromSGS(await sgs.ftoDef(), await sgs.sgsDataFTO()),
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Alg } from "../../../../alg";
|
|
2
|
-
import { getRandomSquare1ScrambleString } from "
|
|
2
|
+
import { getRandomSquare1ScrambleString } from "../../../../vendor/sq12phase/scramble_sq1";
|
|
3
3
|
|
|
4
4
|
export async function getRandomSquare1Scramble(): Promise<Alg> {
|
|
5
5
|
return Alg.fromString(await getRandomSquare1ScrambleString());
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
} from "../../../kpuzzle";
|
|
11
11
|
import { countMoves } from "../../../notation";
|
|
12
12
|
import type { SGSAction, SGSCachedData } from "./parseSGS";
|
|
13
|
-
import { randomChoiceFactory } from "
|
|
13
|
+
import { randomChoiceFactory } from "../../../vendor/random-uint-below";
|
|
14
14
|
|
|
15
15
|
const DEFAULT_STAGE1_DEPTH_LIMIT = 2; // Moderately performant default.
|
|
16
16
|
|
|
@@ -170,6 +170,7 @@ export class TrembleSolver {
|
|
|
170
170
|
const idx = loc.permutationIdx;
|
|
171
171
|
key += ` ${inverseState[orbitName].permutation[idx]} ${inverseState[orbitName].orientation[idx]}`;
|
|
172
172
|
}
|
|
173
|
+
// console.log(key, step.lookup);
|
|
173
174
|
const info = step.lookup[key];
|
|
174
175
|
if (!info) {
|
|
175
176
|
throw new Error("Missing algorithm in sgs or esgs?");
|
|
Binary file
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
constructWorkerFromString,
|
|
5
5
|
workerFileConstructor,
|
|
6
6
|
wrap,
|
|
7
|
-
} from "
|
|
7
|
+
} from "../vendor/comlink-everywhere/outside";
|
|
8
8
|
|
|
9
9
|
import type { esmTestAPIImplementation } from "./esm-test-worker";
|
|
10
10
|
type ESMTestAPI = typeof esmTestAPIImplementation;
|