cubing 0.25.0 → 0.25.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/dist/esm/{2x2x2.sgs.json-TCTAV5XU.js → 2x2x2.sgs.json-QKP2WRPT.js} +2 -2
- package/dist/esm/{2x2x2.sgs.json-TCTAV5XU.js.map → 2x2x2.sgs.json-QKP2WRPT.js.map} +0 -0
- package/dist/esm/{3d-dynamic-inside-MLJKFLGH.js → 3d-dynamic-inside-GKERM3IG.js} +3 -3
- package/dist/esm/{3d-dynamic-inside-MLJKFLGH.js.map → 3d-dynamic-inside-GKERM3IG.js.map} +0 -0
- package/dist/esm/bluetooth/index.js +1 -1
- package/dist/esm/{chunk-U2R5E2A4.js → chunk-37NJ765B.js} +6 -4
- package/dist/esm/{chunk-U2R5E2A4.js.map → chunk-37NJ765B.js.map} +2 -2
- package/dist/esm/{chunk-4SUQM4XH.js → chunk-GXV3K7MX.js} +2 -2
- package/dist/esm/{chunk-4SUQM4XH.js.map → chunk-GXV3K7MX.js.map} +0 -0
- package/dist/esm/{chunk-TVY3UOOK.js → chunk-HCNUMBT5.js} +2 -2
- package/dist/esm/{chunk-TVY3UOOK.js.map → chunk-HCNUMBT5.js.map} +0 -0
- package/dist/esm/{chunk-AAB2V4UB.js → chunk-QUTXXRPT.js} +2 -2
- package/dist/esm/{chunk-AAB2V4UB.js.map → chunk-QUTXXRPT.js.map} +0 -0
- package/dist/esm/{chunk-V7Z6KRM2.js → chunk-Z5INA5XR.js} +3 -3
- package/dist/esm/{chunk-V7Z6KRM2.js.map → chunk-Z5INA5XR.js.map} +0 -0
- package/dist/esm/{entry-Y2R6JXV7.js → entry-RSZSKW5X.js} +17 -9
- package/dist/esm/{entry-Y2R6JXV7.js.map → entry-RSZSKW5X.js.map} +3 -3
- package/dist/esm/{fto.sgs.json-2IU2J6W7.js → fto.sgs.json-T5WY2HR7.js} +2 -2
- package/dist/esm/{fto.sgs.json-2IU2J6W7.js.map → fto.sgs.json-T5WY2HR7.js.map} +0 -0
- package/dist/esm/{ftosolver-smaller-phase3-table-PUTNXKKW.js → ftosolver-smaller-phase3-table-UTQRO776.js} +283 -76
- package/dist/esm/ftosolver-smaller-phase3-table-UTQRO776.js.map +7 -0
- package/dist/esm/masterpyra-QOJCNGZM.js +732 -0
- package/dist/esm/masterpyra-QOJCNGZM.js.map +7 -0
- package/dist/esm/{module-entry-3WBGTDCZ.js → module-entry-UDFTQHXX.js} +2 -2
- package/dist/esm/{module-entry-3WBGTDCZ.js.map → module-entry-UDFTQHXX.js.map} +0 -0
- package/dist/esm/puzzles/index.js +1 -1
- package/dist/esm/{pyraminx.sgs.json-NZWNQPLL.js → pyraminx.sgs.json-5HPDQAOM.js} +3 -3
- package/dist/esm/{pyraminx.sgs.json-NZWNQPLL.js.map → pyraminx.sgs.json-5HPDQAOM.js.map} +0 -0
- package/dist/esm/scramble/index.js +3 -3
- package/dist/esm/{scramble_444-Q334Y5FH.js → scramble_444-FXLLIDCW.js} +3 -3
- package/dist/esm/{scramble_444-Q334Y5FH.js.map → scramble_444-FXLLIDCW.js.map} +0 -0
- package/dist/esm/search/index.js +3 -3
- package/dist/esm/twisty/index.js +2 -2
- package/dist/esm/worker-inside-generated-string-WGUQ4QSO.js +2828 -0
- package/dist/esm/worker-inside-generated-string-WGUQ4QSO.js.map +7 -0
- package/dist/types/puzzles/async/async-pg3d.d.ts +2 -0
- package/dist/types/search/inside/solve/puzzles/master_tetraminx.d.ts +2 -0
- package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
- package/dist/types/vendor/xyzzy/ftosolver-smaller-phase3-table.d.ts +1 -1
- package/dist/types/vendor/xyzzy/ftosolver.d.ts +4 -25
- package/dist/types/vendor/xyzzy/kilosolver.d.ts +1 -19
- package/dist/types/vendor/xyzzy/masterpyra.d.ts +1 -217
- package/dist/types/vendor/xyzzy/rediscrambler.d.ts +1 -37
- package/package.json +2 -2
- package/dist/esm/ftosolver-smaller-phase3-table-PUTNXKKW.js.map +0 -7
- package/dist/esm/worker-inside-generated-string-BERQU3U7.js +0 -2828
- package/dist/esm/worker-inside-generated-string-BERQU3U7.js.map +0 -7
|
@@ -1,39 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
randomUIntBelowFactory
|
|
3
|
+
} from "./chunk-RENZB7QN.js";
|
|
1
4
|
import "./chunk-WO2AXYFE.js";
|
|
2
5
|
|
|
3
6
|
// src/cubing/vendor/xyzzy/ftosolver-smaller-phase3-table.js
|
|
4
|
-
"use strict";
|
|
5
|
-
var rng = (() => {
|
|
6
|
-
let entropy = 0;
|
|
7
|
-
let entropy_size = 1;
|
|
8
|
-
let random_bit = globalThis.crypto ? () => crypto.getRandomValues(new Uint8Array(1))[0] & 1 : () => Math.round(Math.random());
|
|
9
|
-
const SAFETY_MARGIN = 1e4;
|
|
10
|
-
const MAX_ITERATIONS = 20;
|
|
11
|
-
function next(bound) {
|
|
12
|
-
if (bound <= 0 || bound > 2 ** 32 || bound !== Math.floor(bound)) {
|
|
13
|
-
throw "invalid bound";
|
|
14
|
-
}
|
|
15
|
-
for (let it = 0; it <= MAX_ITERATIONS; it++) {
|
|
16
|
-
for (let i = 0; i < 53 && entropy_size <= 2 ** 52 && entropy_size < bound * SAFETY_MARGIN; i++) {
|
|
17
|
-
entropy += random_bit() * entropy_size;
|
|
18
|
-
entropy_size *= 2;
|
|
19
|
-
}
|
|
20
|
-
let limit = entropy_size - entropy_size % bound;
|
|
21
|
-
if (entropy < limit || it === MAX_ITERATIONS) {
|
|
22
|
-
let result = entropy % bound;
|
|
23
|
-
entropy = (entropy - result) / bound;
|
|
24
|
-
entropy_size = limit / bound;
|
|
25
|
-
if (entropy === entropy_size) {
|
|
26
|
-
entropy = 0;
|
|
27
|
-
entropy_size = 1;
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
entropy -= limit;
|
|
32
|
-
entropy_size -= limit;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return { next, is_crypto: !!globalThis.crypto };
|
|
36
|
-
})();
|
|
37
7
|
function factorial(n) {
|
|
38
8
|
if (n < 2)
|
|
39
9
|
return n;
|
|
@@ -153,17 +123,17 @@ var [evenpermutation8_to_index, index_to_evenpermutation8] = (() => {
|
|
|
153
123
|
}
|
|
154
124
|
return [evenpermutation8_to_index2, index_to_evenpermutation82];
|
|
155
125
|
})();
|
|
156
|
-
function random_permutation(n) {
|
|
126
|
+
function random_permutation(n, randomUintBelow2) {
|
|
157
127
|
let p = [0];
|
|
158
128
|
for (let i = 1; i < n; i++) {
|
|
159
|
-
let r =
|
|
129
|
+
let r = randomUintBelow2(i + 1);
|
|
160
130
|
p[i] = p[r];
|
|
161
131
|
p[r] = i;
|
|
162
132
|
}
|
|
163
133
|
return p;
|
|
164
134
|
}
|
|
165
|
-
function random_even_permutation(n) {
|
|
166
|
-
let p = random_permutation(n);
|
|
135
|
+
function random_even_permutation(n, randomUintBelow2) {
|
|
136
|
+
let p = random_permutation(n, randomUintBelow2);
|
|
167
137
|
if (permutation_parity(p) === 1) {
|
|
168
138
|
[p[0], p[1]] = [p[1], p[0]];
|
|
169
139
|
}
|
|
@@ -243,7 +213,10 @@ function generate_comb4_lookup_tables(n, k0, k1, k2, k3) {
|
|
|
243
213
|
}
|
|
244
214
|
}
|
|
245
215
|
}
|
|
246
|
-
return comb4_lookup_tables[key] = [
|
|
216
|
+
return comb4_lookup_tables[key] = [
|
|
217
|
+
index_to_comb4_table,
|
|
218
|
+
comb4_to_index_table
|
|
219
|
+
];
|
|
247
220
|
}
|
|
248
221
|
function compose(A, B) {
|
|
249
222
|
let C2 = [];
|
|
@@ -323,7 +296,17 @@ function permutation_order(perm) {
|
|
|
323
296
|
return order;
|
|
324
297
|
}
|
|
325
298
|
var solved_state = Array(72).fill().map((_, i) => i / 9 | 0);
|
|
326
|
-
var move_U = permutation_from_cycles([
|
|
299
|
+
var move_U = permutation_from_cycles([
|
|
300
|
+
[0, 4, 8],
|
|
301
|
+
[1, 6, 3],
|
|
302
|
+
[2, 5, 7],
|
|
303
|
+
[9, 22, 35],
|
|
304
|
+
[45, 67, 44],
|
|
305
|
+
[47, 68, 43],
|
|
306
|
+
[46, 69, 39],
|
|
307
|
+
[50, 70, 38],
|
|
308
|
+
[49, 71, 36]
|
|
309
|
+
], 72);
|
|
327
310
|
var move_Ui = compose(move_U, move_U);
|
|
328
311
|
var move_X = Array(72).fill().map((_, i) => (i / 18 | 0) * 18 + (i + 9) % 18);
|
|
329
312
|
var move_Y = Array(72).fill().map((_, i) => (i / 36 | 0) * 36 + (i + 18) % 36);
|
|
@@ -331,7 +314,14 @@ var move_Z = Array(72).fill().map((_, i) => (i + 36) % 72);
|
|
|
331
314
|
var move_L = compose3(move_Z, move_Ui, move_Z);
|
|
332
315
|
var move_F = compose3(move_X, move_U, move_X);
|
|
333
316
|
var move_R = compose3(move_X, move_L, move_X);
|
|
334
|
-
var move_Us = permutation_from_cycles([
|
|
317
|
+
var move_Us = permutation_from_cycles([
|
|
318
|
+
[10, 24, 30],
|
|
319
|
+
[11, 23, 34],
|
|
320
|
+
[12, 19, 33],
|
|
321
|
+
[42, 48, 64],
|
|
322
|
+
[41, 52, 65],
|
|
323
|
+
[37, 51, 66]
|
|
324
|
+
], 72);
|
|
335
325
|
var move_Uw = compose(move_U, move_Us);
|
|
336
326
|
var move_Uwi = compose(move_Uw, move_Uw);
|
|
337
327
|
var move_Lw = compose3(move_Z, move_Uwi, move_Z);
|
|
@@ -416,25 +406,34 @@ function convert_move_to_permutations(move) {
|
|
|
416
406
|
let bp = Array(12).fill().map((_, i) => centreB_piece_facelets.indexOf(move[centreB_piece_facelets[i]]));
|
|
417
407
|
return { cp, ep, ap, bp };
|
|
418
408
|
}
|
|
419
|
-
var moves = [
|
|
409
|
+
var moves = [
|
|
410
|
+
move_U,
|
|
411
|
+
move_L,
|
|
412
|
+
move_F,
|
|
413
|
+
move_R,
|
|
414
|
+
move_Uw,
|
|
415
|
+
move_Lw,
|
|
416
|
+
move_Fw,
|
|
417
|
+
move_Rw
|
|
418
|
+
];
|
|
420
419
|
var move_names = ["U", "L", "F", "R", "u", "l", "f", "r"];
|
|
421
420
|
var move_permutations = moves.map(convert_move_to_permutations);
|
|
422
|
-
function random_state() {
|
|
421
|
+
function random_state(randomUintBelow2) {
|
|
423
422
|
let facelets = Array(72);
|
|
424
|
-
let cp = random_even_permutation(5);
|
|
423
|
+
let cp = random_even_permutation(5, randomUintBelow2);
|
|
425
424
|
cp.push(5);
|
|
426
|
-
let co = Array(4).fill().map((_) =>
|
|
425
|
+
let co = Array(4).fill().map((_) => randomUintBelow2(2));
|
|
427
426
|
co.push(co.reduce((x, y) => x ^ y));
|
|
428
427
|
co.push(0);
|
|
429
428
|
for (let i = 0; i < 6; i++) {
|
|
430
429
|
set_corner_piece(facelets, i, cp[i], co[i]);
|
|
431
430
|
}
|
|
432
|
-
let ep = random_even_permutation(12);
|
|
431
|
+
let ep = random_even_permutation(12, randomUintBelow2);
|
|
433
432
|
for (let i = 0; i < 12; i++) {
|
|
434
433
|
set_edge_piece(facelets, i, ep[i]);
|
|
435
434
|
}
|
|
436
|
-
let a = random_permutation(12).map((x) => x / 3 | 0);
|
|
437
|
-
let b = random_permutation(12).map((x) => 4 + (x / 3 | 0));
|
|
435
|
+
let a = random_permutation(12, randomUintBelow2).map((x) => x / 3 | 0);
|
|
436
|
+
let b = random_permutation(12, randomUintBelow2).map((x) => 4 + (x / 3 | 0));
|
|
438
437
|
for (let i = 0; i < 12; i++) {
|
|
439
438
|
facelets[centreA_piece_facelets[i]] = a[i];
|
|
440
439
|
facelets[centreB_piece_facelets[i]] = b[i];
|
|
@@ -446,7 +445,12 @@ function stringify_move_sequence(move_sequence, no_wide = false) {
|
|
|
446
445
|
const U = 0, L = 1, F = 2, R = 3, D = 4, BR = 5, B = 6, BL = 7;
|
|
447
446
|
move_sequence = move_sequence.map((x) => x.slice());
|
|
448
447
|
let ordering = [U, L, F, R, D, BR, B, BL];
|
|
449
|
-
let rotations = [
|
|
448
|
+
let rotations = [
|
|
449
|
+
[U, R, BR, B, D, BL, L, F],
|
|
450
|
+
[BL, L, U, B, R, BR, D, F],
|
|
451
|
+
[BL, D, F, L, R, U, B, BR],
|
|
452
|
+
[F, D, BR, R, B, U, L, BL]
|
|
453
|
+
];
|
|
450
454
|
rotations = rotations.concat(rotations.map((p) => invert_permutation(p)));
|
|
451
455
|
for (let i = 0; i < move_sequence.length; i++) {
|
|
452
456
|
if (move_sequence[i][0] < 4) {
|
|
@@ -505,8 +509,8 @@ function simplify_move_sequence(move_sequence, make_noise = false) {
|
|
|
505
509
|
}
|
|
506
510
|
return simplified;
|
|
507
511
|
}
|
|
508
|
-
function generate_random_state_scramble() {
|
|
509
|
-
return stringify_move_sequence(invert_move_sequence(solve(random_state(), true)), true);
|
|
512
|
+
function generate_random_state_scramble(randomUintBelow2) {
|
|
513
|
+
return stringify_move_sequence(invert_move_sequence(solve(random_state(randomUintBelow2), true)), true);
|
|
510
514
|
}
|
|
511
515
|
function generate_mtable_comb4_generic(n, k0, k1, k2, k3, permutations) {
|
|
512
516
|
let N = C4(n, k0, k1, k2, k3);
|
|
@@ -719,7 +723,9 @@ function generate_phase1_edge_ptable() {
|
|
|
719
723
|
if (cached_ptables.phase1_edge) {
|
|
720
724
|
return cached_ptables.phase1_edge;
|
|
721
725
|
}
|
|
722
|
-
return cached_ptables.phase1_edge = bfs(generate_phase1_edge_mtable(), [
|
|
726
|
+
return cached_ptables.phase1_edge = bfs(generate_phase1_edge_mtable(), [
|
|
727
|
+
8 + 12 * 9 + 12 ** 2 * 10 + 12 ** 3 * 11
|
|
728
|
+
]);
|
|
723
729
|
}
|
|
724
730
|
function generate_phase1_centreA_mtable() {
|
|
725
731
|
if (cached_mtables.phase1_centreA) {
|
|
@@ -746,8 +752,16 @@ function generate_phase1_centre_ptable() {
|
|
|
746
752
|
return cached_ptables.phase1_centre = bfs(generate_phase1_centreB_mtable(), goal_states);
|
|
747
753
|
}
|
|
748
754
|
function* solve_phase1_gen(facelets) {
|
|
749
|
-
let mtables = [
|
|
750
|
-
|
|
755
|
+
let mtables = [
|
|
756
|
+
generate_phase1_edge_mtable(),
|
|
757
|
+
generate_phase1_centreA_mtable(),
|
|
758
|
+
generate_phase1_centreB_mtable()
|
|
759
|
+
];
|
|
760
|
+
let ptables = [
|
|
761
|
+
generate_phase1_edge_ptable(),
|
|
762
|
+
generate_phase1_centre_ptable(),
|
|
763
|
+
generate_phase1_centre_ptable()
|
|
764
|
+
];
|
|
751
765
|
yield* phase1_ida_solve_gen(index_phase1(facelets), mtables, ptables, 15);
|
|
752
766
|
}
|
|
753
767
|
function* phase1_ida_solve_gen(indices, mtables, ptables, moves_left) {
|
|
@@ -799,7 +813,20 @@ function* phase1_ida_search_gen(indices, mtables, ptables, bound, last) {
|
|
|
799
813
|
}
|
|
800
814
|
var phase2_centre_colour_map = [0, 1, 2, 0, 0, 1, 2, 0];
|
|
801
815
|
var phase2_centre_indices = [0, 1, 2, 3, 4, 5, 7, 8, 10, 11];
|
|
802
|
-
var phase2_keep = [
|
|
816
|
+
var phase2_keep = [
|
|
817
|
+
true,
|
|
818
|
+
true,
|
|
819
|
+
true,
|
|
820
|
+
true,
|
|
821
|
+
true,
|
|
822
|
+
true,
|
|
823
|
+
false,
|
|
824
|
+
true,
|
|
825
|
+
true,
|
|
826
|
+
false,
|
|
827
|
+
true,
|
|
828
|
+
true
|
|
829
|
+
];
|
|
803
830
|
function index_phase2(facelets) {
|
|
804
831
|
let [itc, cti] = generate_comb4_lookup_tables(10, 5, 3, 2, 0);
|
|
805
832
|
let ep = Array(8).fill().map((_, i) => get_edge_piece(facelets, i));
|
|
@@ -815,7 +842,11 @@ function index_phase2(facelets) {
|
|
|
815
842
|
});
|
|
816
843
|
generate_phase2_edge_mtable();
|
|
817
844
|
generate_phase2_corner_mtable_compact();
|
|
818
|
-
return [
|
|
845
|
+
return [
|
|
846
|
+
a_coord,
|
|
847
|
+
b_coord,
|
|
848
|
+
phase2_corner_reduction_map[corner_coord] + 40 * phase2_edge_reduction_map[edge_coord]
|
|
849
|
+
];
|
|
819
850
|
}
|
|
820
851
|
function* solve_phase2_gen(facelets) {
|
|
821
852
|
yield* phase2_ida_solve_gen(index_phase2(facelets), 30);
|
|
@@ -845,7 +876,20 @@ function generate_phase2_corner_mtable() {
|
|
|
845
876
|
}
|
|
846
877
|
const HALFFACT5 = factorial(5) / 2;
|
|
847
878
|
const N = HALFFACT5 * 8;
|
|
848
|
-
const keep = [
|
|
879
|
+
const keep = [
|
|
880
|
+
true,
|
|
881
|
+
true,
|
|
882
|
+
true,
|
|
883
|
+
true,
|
|
884
|
+
true,
|
|
885
|
+
false,
|
|
886
|
+
true,
|
|
887
|
+
true,
|
|
888
|
+
true,
|
|
889
|
+
true,
|
|
890
|
+
true,
|
|
891
|
+
false
|
|
892
|
+
];
|
|
849
893
|
let mtable = Array(4).fill().map(() => new Uint32Array(N));
|
|
850
894
|
let permutations = move_permutations.slice(0, 4).map((x) => invert_permutation(reduce_permutation(x.cp, keep)));
|
|
851
895
|
for (let i = 0; i < N; i++) {
|
|
@@ -997,26 +1041,173 @@ function* phase2_ida_search_gen(a, b, ce, mtable_a, mtable_b, mtable_ce, ptable_
|
|
|
997
1041
|
}
|
|
998
1042
|
}
|
|
999
1043
|
var phase3_2gen_centre_indices = [0, 1, 2, 3, 4, 10, 11];
|
|
1000
|
-
var phase3_2gen_keep = [
|
|
1044
|
+
var phase3_2gen_keep = [
|
|
1045
|
+
true,
|
|
1046
|
+
true,
|
|
1047
|
+
true,
|
|
1048
|
+
true,
|
|
1049
|
+
true,
|
|
1050
|
+
false,
|
|
1051
|
+
false,
|
|
1052
|
+
false,
|
|
1053
|
+
false,
|
|
1054
|
+
false,
|
|
1055
|
+
true,
|
|
1056
|
+
true
|
|
1057
|
+
];
|
|
1001
1058
|
var phase3_2gen_move_seqs = [
|
|
1002
1059
|
[[0, 1]],
|
|
1003
1060
|
[[1, 1]],
|
|
1004
|
-
[
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
[
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1061
|
+
[
|
|
1062
|
+
[2, 1],
|
|
1063
|
+
[0, 1],
|
|
1064
|
+
[3, 1],
|
|
1065
|
+
[0, 2],
|
|
1066
|
+
[3, 2],
|
|
1067
|
+
[2, 2]
|
|
1068
|
+
],
|
|
1069
|
+
[
|
|
1070
|
+
[3, 2],
|
|
1071
|
+
[1, 2],
|
|
1072
|
+
[2, 2],
|
|
1073
|
+
[1, 1],
|
|
1074
|
+
[2, 1],
|
|
1075
|
+
[3, 1]
|
|
1076
|
+
],
|
|
1077
|
+
[
|
|
1078
|
+
[6, 1],
|
|
1079
|
+
[0, 1],
|
|
1080
|
+
[3, 1],
|
|
1081
|
+
[0, 2],
|
|
1082
|
+
[3, 2],
|
|
1083
|
+
[6, 2]
|
|
1084
|
+
],
|
|
1085
|
+
[
|
|
1086
|
+
[7, 2],
|
|
1087
|
+
[1, 2],
|
|
1088
|
+
[2, 2],
|
|
1089
|
+
[1, 1],
|
|
1090
|
+
[2, 1],
|
|
1091
|
+
[7, 1]
|
|
1092
|
+
],
|
|
1093
|
+
[
|
|
1094
|
+
[2, 1],
|
|
1095
|
+
[0, 1],
|
|
1096
|
+
[2, 2],
|
|
1097
|
+
[0, 1],
|
|
1098
|
+
[2, 1],
|
|
1099
|
+
[0, 1],
|
|
1100
|
+
[2, 2]
|
|
1101
|
+
],
|
|
1102
|
+
[
|
|
1103
|
+
[3, 2],
|
|
1104
|
+
[1, 1],
|
|
1105
|
+
[3, 1],
|
|
1106
|
+
[1, 1],
|
|
1107
|
+
[3, 2],
|
|
1108
|
+
[1, 1],
|
|
1109
|
+
[3, 1]
|
|
1110
|
+
],
|
|
1111
|
+
[
|
|
1112
|
+
[2, 1],
|
|
1113
|
+
[3, 1],
|
|
1114
|
+
[2, 2],
|
|
1115
|
+
[1, 2],
|
|
1116
|
+
[0, 2],
|
|
1117
|
+
[2, 1],
|
|
1118
|
+
[3, 1],
|
|
1119
|
+
[2, 2]
|
|
1120
|
+
],
|
|
1121
|
+
[
|
|
1122
|
+
[3, 2],
|
|
1123
|
+
[2, 2],
|
|
1124
|
+
[3, 1],
|
|
1125
|
+
[0, 1],
|
|
1126
|
+
[1, 1],
|
|
1127
|
+
[3, 2],
|
|
1128
|
+
[2, 2],
|
|
1129
|
+
[3, 1]
|
|
1130
|
+
],
|
|
1131
|
+
[
|
|
1132
|
+
[6, 1],
|
|
1133
|
+
[0, 1],
|
|
1134
|
+
[6, 2],
|
|
1135
|
+
[0, 2],
|
|
1136
|
+
[1, 2],
|
|
1137
|
+
[6, 1],
|
|
1138
|
+
[0, 1],
|
|
1139
|
+
[6, 2]
|
|
1140
|
+
],
|
|
1141
|
+
[
|
|
1142
|
+
[7, 2],
|
|
1143
|
+
[1, 2],
|
|
1144
|
+
[7, 1],
|
|
1145
|
+
[1, 1],
|
|
1146
|
+
[0, 1],
|
|
1147
|
+
[7, 2],
|
|
1148
|
+
[1, 2],
|
|
1149
|
+
[7, 1]
|
|
1150
|
+
],
|
|
1151
|
+
[
|
|
1152
|
+
[2, 1],
|
|
1153
|
+
[3, 2],
|
|
1154
|
+
[2, 2],
|
|
1155
|
+
[3, 1],
|
|
1156
|
+
[0, 1],
|
|
1157
|
+
[2, 2],
|
|
1158
|
+
[1, 1],
|
|
1159
|
+
[2, 1]
|
|
1160
|
+
],
|
|
1161
|
+
[
|
|
1162
|
+
[3, 2],
|
|
1163
|
+
[2, 1],
|
|
1164
|
+
[3, 1],
|
|
1165
|
+
[2, 2],
|
|
1166
|
+
[1, 2],
|
|
1167
|
+
[3, 1],
|
|
1168
|
+
[0, 2],
|
|
1169
|
+
[3, 2]
|
|
1170
|
+
],
|
|
1171
|
+
[
|
|
1172
|
+
[6, 1],
|
|
1173
|
+
[0, 2],
|
|
1174
|
+
[6, 2],
|
|
1175
|
+
[7, 1],
|
|
1176
|
+
[6, 1],
|
|
1177
|
+
[1, 2],
|
|
1178
|
+
[7, 1],
|
|
1179
|
+
[6, 1]
|
|
1180
|
+
],
|
|
1181
|
+
[
|
|
1182
|
+
[7, 2],
|
|
1183
|
+
[1, 1],
|
|
1184
|
+
[7, 1],
|
|
1185
|
+
[6, 2],
|
|
1186
|
+
[7, 2],
|
|
1187
|
+
[0, 1],
|
|
1188
|
+
[6, 2],
|
|
1189
|
+
[7, 2]
|
|
1190
|
+
],
|
|
1191
|
+
[
|
|
1192
|
+
[2, 2],
|
|
1193
|
+
[1, 2],
|
|
1194
|
+
[2, 2],
|
|
1195
|
+
[3, 2],
|
|
1196
|
+
[2, 2],
|
|
1197
|
+
[3, 2],
|
|
1198
|
+
[0, 2],
|
|
1199
|
+
[3, 2]
|
|
1200
|
+
],
|
|
1201
|
+
[
|
|
1202
|
+
[6, 2],
|
|
1203
|
+
[7, 2],
|
|
1204
|
+
[1, 2],
|
|
1205
|
+
[0, 2],
|
|
1206
|
+
[1, 2],
|
|
1207
|
+
[0, 2],
|
|
1208
|
+
[6, 2],
|
|
1209
|
+
[7, 2]
|
|
1210
|
+
]
|
|
1020
1211
|
];
|
|
1021
1212
|
phase3_2gen_move_seqs = phase3_2gen_move_seqs.concat(phase3_2gen_move_seqs.map((seq) => invert_move_sequence(seq)));
|
|
1022
1213
|
var phase3_2gen_nmoves = phase3_2gen_move_seqs.length;
|
|
@@ -1056,7 +1247,20 @@ function generate_phase3_2gen_corner_mtable() {
|
|
|
1056
1247
|
}
|
|
1057
1248
|
const HALFFACT4 = factorial(4) / 2;
|
|
1058
1249
|
const N = HALFFACT4 * 2;
|
|
1059
|
-
const keep = [
|
|
1250
|
+
const keep = [
|
|
1251
|
+
true,
|
|
1252
|
+
true,
|
|
1253
|
+
true,
|
|
1254
|
+
true,
|
|
1255
|
+
false,
|
|
1256
|
+
false,
|
|
1257
|
+
true,
|
|
1258
|
+
true,
|
|
1259
|
+
true,
|
|
1260
|
+
true,
|
|
1261
|
+
false,
|
|
1262
|
+
false
|
|
1263
|
+
];
|
|
1060
1264
|
let mtable = Array(phase3_2gen_nmoves).fill().map(() => new Uint32Array(N));
|
|
1061
1265
|
let permutations = phase3_2gen_piece_permutations.map((x) => reduce_permutation(x.cp, keep).slice(0, 4));
|
|
1062
1266
|
for (let i = 0; i < N; i += 2) {
|
|
@@ -1323,8 +1527,11 @@ function solve_phase2_and_phase3_readable(facelets, phase2_attempts = 20, cap =
|
|
|
1323
1527
|
}
|
|
1324
1528
|
return best;
|
|
1325
1529
|
}
|
|
1326
|
-
var
|
|
1530
|
+
var randomUintBelow = randomUIntBelowFactory();
|
|
1531
|
+
async function randomFTOScrambleString() {
|
|
1532
|
+
return generate_random_state_scramble(await randomUintBelow);
|
|
1533
|
+
}
|
|
1327
1534
|
export {
|
|
1328
1535
|
randomFTOScrambleString
|
|
1329
1536
|
};
|
|
1330
|
-
//# sourceMappingURL=ftosolver-smaller-phase3-table-
|
|
1537
|
+
//# sourceMappingURL=ftosolver-smaller-phase3-table-UTQRO776.js.map
|