@cubingcenter/scrambler 0.5.1 → 0.5.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/dist/puzzles/cube2/facelets.d.ts.map +1 -1
- package/dist/puzzles/cube2/facelets.js +43 -22
- package/dist/puzzles/cube2/random-state.d.ts.map +1 -1
- package/dist/puzzles/cube2/random-state.js +38 -34
- package/dist/puzzles/cube2/scrambler.d.ts.map +1 -1
- package/dist/puzzles/cube2/scrambler.js +24 -10
- package/dist/puzzles/cube2/solver/browser-loader.d.ts +2 -2
- package/dist/puzzles/cube2/solver/browser-loader.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/browser-loader.js +2 -2
- package/dist/puzzles/cube2/solver/generated/manifest.json +3 -3
- package/dist/puzzles/cube2/solver/generated/policy.bin +0 -0
- package/dist/puzzles/cube2/solver/generated-assets.d.ts +1 -1
- package/dist/puzzles/cube2/solver/generated-assets.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/index.d.ts +2 -1
- package/dist/puzzles/cube2/solver/index.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/index.js +2 -1
- package/dist/puzzles/cube2/solver/node-loader.d.ts +1 -1
- package/dist/puzzles/cube2/solver/node-loader.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/node-loader.js +2 -2
- package/dist/puzzles/cube2/solver/search.d.ts +3 -0
- package/dist/puzzles/cube2/solver/search.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/search.js +51 -36
- package/dist/puzzles/cube2/solver/table-metadata.d.ts +2 -2
- package/dist/puzzles/cube2/solver/table-metadata.js +2 -2
- package/dist/puzzles/cube2/solver/tables.d.ts +2 -1
- package/dist/puzzles/cube2/solver/tables.d.ts.map +1 -1
- package/dist/puzzles/cube2/solver/tables.js +39 -13
- package/dist/puzzles/cube2/state.d.ts.map +1 -1
- package/dist/puzzles/cube2/state.js +3 -1
- package/dist/puzzles/cube2/validation.d.ts +2 -0
- package/dist/puzzles/cube2/validation.d.ts.map +1 -1
- package/dist/puzzles/cube2/validation.js +45 -8
- package/dist/puzzles/cube3/facelets.d.ts.map +1 -1
- package/dist/puzzles/cube3/facelets.js +53 -28
- package/dist/puzzles/cube3/random-state.d.ts.map +1 -1
- package/dist/puzzles/cube3/random-state.js +9 -2
- package/dist/puzzles/cube3/scrambler.js +1 -1
- package/dist/puzzles/cube3/state.d.ts.map +1 -1
- package/dist/puzzles/cube3/state.js +4 -1
- package/dist/puzzles/cube3/validation.d.ts.map +1 -1
- package/dist/puzzles/cube3/validation.js +5 -2
- package/dist/puzzles/skewb/random-state.d.ts +1 -0
- package/dist/puzzles/skewb/random-state.d.ts.map +1 -1
- package/dist/puzzles/skewb/random-state.js +9 -1
- package/dist/puzzles/skewb/scrambler.d.ts.map +1 -1
- package/dist/puzzles/skewb/scrambler.js +6 -2
- package/dist/puzzles/skewb/solver/tables.d.ts +1 -0
- package/dist/puzzles/skewb/solver/tables.d.ts.map +1 -1
- package/dist/puzzles/skewb/solver/tables.js +11 -5
- package/dist-cjs/puzzles/cube2/facelets.js +43 -22
- package/dist-cjs/puzzles/cube2/random-state.js +37 -33
- package/dist-cjs/puzzles/cube2/scrambler.js +22 -8
- package/dist-cjs/puzzles/cube2/solver/browser-loader.js +2 -2
- package/dist-cjs/puzzles/cube2/solver/generated/manifest.json +3 -3
- package/dist-cjs/puzzles/cube2/solver/generated/policy.bin +0 -0
- package/dist-cjs/puzzles/cube2/solver/index.js +18 -1
- package/dist-cjs/puzzles/cube2/solver/node-loader.js +2 -2
- package/dist-cjs/puzzles/cube2/solver/search.js +53 -35
- package/dist-cjs/puzzles/cube2/solver/table-metadata.js +2 -2
- package/dist-cjs/puzzles/cube2/solver/tables.js +41 -14
- package/dist-cjs/puzzles/cube2/state.js +3 -1
- package/dist-cjs/puzzles/cube2/validation.js +47 -8
- package/dist-cjs/puzzles/cube3/facelets.js +53 -28
- package/dist-cjs/puzzles/cube3/random-state.js +8 -1
- package/dist-cjs/puzzles/cube3/scrambler.js +1 -1
- package/dist-cjs/puzzles/cube3/state.js +4 -1
- package/dist-cjs/puzzles/cube3/validation.js +5 -2
- package/dist-cjs/puzzles/skewb/random-state.js +9 -0
- package/dist-cjs/puzzles/skewb/scrambler.js +5 -1
- package/dist-cjs/puzzles/skewb/solver/tables.js +12 -6
- package/package.json +1 -1
- package/dist/puzzles/cube2/solver/generated/distances.bin +0 -1
- package/dist/puzzles/cube3/solver/browser-worker-pool.d.ts +0 -31
- package/dist/puzzles/cube3/solver/browser-worker-pool.d.ts.map +0 -1
- package/dist/puzzles/cube3/solver/browser-worker-pool.js +0 -118
- package/dist/puzzles/cube3/solver/browser-worker.d.ts +0 -2
- package/dist/puzzles/cube3/solver/browser-worker.d.ts.map +0 -1
- package/dist/puzzles/cube3/solver/browser-worker.js +0 -71
- package/dist/puzzles/cube3/solver/worker-pool.d.ts +0 -18
- package/dist/puzzles/cube3/solver/worker-pool.d.ts.map +0 -1
- package/dist/puzzles/cube3/solver/worker-pool.js +0 -116
- package/dist/puzzles/cube3/solver/worker.d.ts +0 -2
- package/dist/puzzles/cube3/solver/worker.d.ts.map +0 -1
- package/dist/puzzles/cube3/solver/worker.js +0 -73
- package/dist-cjs/puzzles/cube2/solver/generated/distances.bin +0 -1
|
@@ -20,7 +20,11 @@ exports.skewbScrambleGenerator = {
|
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
async function generateSkewbScramble(options = {}) {
|
|
23
|
-
|
|
23
|
+
// generateRandomSkewbStateSync guarantees the tables are loaded, so use
|
|
24
|
+
// the sync state generation on every call after the first (no await hop).
|
|
25
|
+
const state = (0, index_js_1.areSkewbTablesLoaded)()
|
|
26
|
+
? (0, random_state_js_1.generateRandomSkewbStateSync)(options)
|
|
27
|
+
: await (0, random_state_js_1.generateRandomSkewbState)(options);
|
|
24
28
|
// generateRandomSkewbState guarantees the tables are loaded, so use the
|
|
25
29
|
// sync solve on every call after the first (no extra microtask).
|
|
26
30
|
const solution = (0, index_js_1.areSkewbTablesLoaded)()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SOLVED_RANK = exports.CENTER_UNRANK = exports.PERM7_UNRANK = exports.R7_SETS = exports.ORIENT_CLASS = exports.EVEN_CENTER_FULL = exports.EVEN_CENTER_RANK = exports.POLICY_TABLE = exports.CENTERS_TABLE = exports.ORIENTATION_TABLE = exports.PERMUTATION_TABLE = exports.SKEWB_MOVES = exports.POLICY_PACKED_ENTRIES = exports.STATE_COUNT = exports.MOVE_COUNT = exports.PER_SET_SIZE = exports.ORIENT_CLASS_COUNT = exports.EVEN_CENTER_COUNT = exports.CENTER_COUNT = exports.ORIENTATION_COUNT = exports.PERMUTATION_COUNT = void 0;
|
|
3
|
+
exports.SOLVED_RANK = exports.ORIENT_UNRANK = exports.CENTER_UNRANK = exports.PERM7_UNRANK = exports.R7_SETS = exports.ORIENT_CLASS = exports.EVEN_CENTER_FULL = exports.EVEN_CENTER_RANK = exports.POLICY_TABLE = exports.CENTERS_TABLE = exports.ORIENTATION_TABLE = exports.PERMUTATION_TABLE = exports.SKEWB_MOVES = exports.POLICY_PACKED_ENTRIES = exports.STATE_COUNT = exports.MOVE_COUNT = exports.PER_SET_SIZE = exports.ORIENT_CLASS_COUNT = exports.EVEN_CENTER_COUNT = exports.CENTER_COUNT = exports.ORIENTATION_COUNT = exports.PERMUTATION_COUNT = void 0;
|
|
4
4
|
exports.getPermutationIndex = getPermutationIndex;
|
|
5
5
|
exports.getPermutationFromIndex = getPermutationFromIndex;
|
|
6
6
|
exports.getOrientationIndex = getOrientationIndex;
|
|
@@ -181,6 +181,7 @@ exports.ORIENT_CLASS = null; // rO -> class 0..8
|
|
|
181
181
|
exports.R7_SETS = null; // (rC_even * 9 + class) * 4 + i
|
|
182
182
|
exports.PERM7_UNRANK = null; // r7 * 7 + i -> piece at corner i+1 (derived at load)
|
|
183
183
|
exports.CENTER_UNRANK = null; // rC * 6 + i -> center piece (derived at load)
|
|
184
|
+
exports.ORIENT_UNRANK = null; // rO * 7 + i -> orientation of corner i+1 (derived at load)
|
|
184
185
|
exports.SOLVED_RANK = 0;
|
|
185
186
|
async function ensureTablesLoaded() {
|
|
186
187
|
if (tablesLoaded)
|
|
@@ -217,6 +218,12 @@ function assignTables(tables) {
|
|
|
217
218
|
for (let i = 0; i < 6; i++)
|
|
218
219
|
exports.CENTER_UNRANK[rC * 6 + i] = centers[i];
|
|
219
220
|
}
|
|
221
|
+
exports.ORIENT_UNRANK = new Uint8Array(exports.ORIENTATION_COUNT * 7);
|
|
222
|
+
for (let rO = 0; rO < exports.ORIENTATION_COUNT; rO++) {
|
|
223
|
+
const orient = getOrientationFromIndex(rO);
|
|
224
|
+
for (let i = 0; i < 7; i++)
|
|
225
|
+
exports.ORIENT_UNRANK[rO * 7 + i] = orient[i + 1];
|
|
226
|
+
}
|
|
220
227
|
exports.SOLVED_RANK = rankFromComponents(0, 0, 0);
|
|
221
228
|
tablesLoaded = true;
|
|
222
229
|
}
|
|
@@ -232,6 +239,7 @@ function resetTablesForTests() {
|
|
|
232
239
|
exports.R7_SETS = null;
|
|
233
240
|
exports.PERM7_UNRANK = null;
|
|
234
241
|
exports.CENTER_UNRANK = null;
|
|
242
|
+
exports.ORIENT_UNRANK = null;
|
|
235
243
|
}
|
|
236
244
|
// ---------------------------------------------------------------------------
|
|
237
245
|
// Compact rank helpers
|
|
@@ -277,11 +285,9 @@ function getStateFromRank(rank) {
|
|
|
277
285
|
perm[i + 1] = exports.PERM7_UNRANK[permBase + i];
|
|
278
286
|
const orient = new Array(8);
|
|
279
287
|
orient[0] = 0;
|
|
280
|
-
|
|
281
|
-
for (let i = 1; i < 8; i++)
|
|
282
|
-
orient[i] =
|
|
283
|
-
val = Math.floor(val / 3);
|
|
284
|
-
}
|
|
288
|
+
const orientBase = rO * 7;
|
|
289
|
+
for (let i = 1; i < 8; i++)
|
|
290
|
+
orient[i] = exports.ORIENT_UNRANK[orientBase + i - 1];
|
|
285
291
|
const centers = new Array(6);
|
|
286
292
|
const centerBase = exports.EVEN_CENTER_FULL[even] * 6;
|
|
287
293
|
for (let i = 0; i < 6; i++)
|