cubing 0.57.4 → 0.58.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/lib/cubing/{PuzzleLoader-B7Ly-OAs.d.ts → PuzzleLoader-BskBhUgu.d.ts} +11 -1
- package/dist/lib/cubing/alg/index.d.ts +2 -2
- package/dist/lib/cubing/alg/index.js +1 -1
- package/dist/lib/cubing/bluetooth/index.d.ts +3 -3
- package/dist/lib/cubing/bluetooth/index.js +701 -58
- package/dist/lib/cubing/bluetooth/index.js.map +4 -4
- package/dist/lib/cubing/{bluetooth-puzzle-nh-dCXPL.d.ts → bluetooth-puzzle-BIDZuWiS.d.ts} +1 -1
- package/dist/lib/cubing/chunks/{big-puzzle-orientation-SKZG73EB.js → big-puzzle-orientation-CQUVRARW.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-SWKNZGJF.js → chunk-3MMNI5O2.js} +7 -1
- package/dist/lib/cubing/chunks/chunk-3MMNI5O2.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-3U3UEVVD.js → chunk-53UENZ7A.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-GKM2CK6T.js → chunk-7M7ZAS5G.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-7HQOMRBY.js → chunk-BVZN7IXO.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-3YVVF3KK.js → chunk-CZGLT7LF.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-H75BKRPQ.js → chunk-LII4MJEB.js} +5 -5
- package/dist/lib/cubing/chunks/{chunk-NJFJ3OMF.js → chunk-SR66SYE2.js} +2 -2
- package/dist/lib/cubing/chunks/chunk-SR66SYE2.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-2H2XY6KQ.js → chunk-WI3YFILD.js} +48 -298
- package/dist/lib/cubing/chunks/chunk-WI3YFILD.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-F7UESNJD.js → chunk-YICS6Q2F.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-666TWRT6.js → chunk-Z4CZPP2W.js} +461 -69
- package/dist/lib/cubing/chunks/chunk-Z4CZPP2W.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-7CZZRWBJ.js → chunk-ZVLDZYZD.js} +3 -3
- package/dist/lib/cubing/chunks/{inside-AYMLD6IQ.js → inside-ICFSQUAC.js} +14 -14
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-T4N6YHT7.js → search-dynamic-sgs-side-events-5AC7RH72.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-EQIJODP7.js → search-dynamic-sgs-unofficial-INRHQCBE.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NT5XKSLV.js → search-dynamic-solve-4x4x4-VNSEVV7B.js} +7 -7
- package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-NKAFVO65.js → search-dynamic-solve-fto-BHX3R6ZT.js} +2 -2
- package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-EDGE5SP4.js → search-dynamic-solve-kilominx-SAJCQILQ.js} +2 -2
- package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-FRZJG7S6.js → twisty-dynamic-3d-CCZCZBPC.js} +7 -8
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-FRZJG7S6.js.map → twisty-dynamic-3d-CCZCZBPC.js.map} +1 -1
- package/dist/lib/cubing/chunks/{twsearch-WDBATGZX.js → twsearch-T3W5T5WE.js} +4 -4
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js +10 -0
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js.map +7 -0
- package/dist/lib/cubing/{index-BOJwUPsI.d.ts → index-1uDGfzzz.d.ts} +1 -1
- package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
- package/dist/lib/cubing/kpuzzle/index.js +2 -2
- package/dist/lib/cubing/notation/index.d.ts +1 -1
- package/dist/lib/cubing/notation/index.js +4 -4
- package/dist/lib/cubing/protocol/index.d.ts +1 -1
- package/dist/lib/cubing/protocol/index.js +4 -4
- package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
- package/dist/lib/cubing/puzzle-geometry/index.js +1 -1
- package/dist/lib/cubing/puzzles/index.d.ts +2 -1
- package/dist/lib/cubing/puzzles/index.js +6 -5
- package/dist/lib/cubing/scramble/index.d.ts +2 -2
- package/dist/lib/cubing/scramble/index.js +6 -6
- package/dist/lib/cubing/search/index.d.ts +2 -2
- package/dist/lib/cubing/search/index.js +6 -6
- package/dist/lib/cubing/stream/index.d.ts +2 -2
- package/dist/lib/cubing/stream/index.js +1 -1
- package/dist/lib/cubing/twisty/index.d.ts +2 -2
- package/dist/lib/cubing/twisty/index.js +7 -7
- package/package.json +4 -3
- package/dist/lib/cubing/chunks/chunk-2H2XY6KQ.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-666TWRT6.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-NJFJ3OMF.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-SWKNZGJF.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-WOVCK52S-RP4VI7OV.js +0 -10
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-WOVCK52S-RP4VI7OV.js.map +0 -7
- /package/dist/lib/cubing/chunks/{big-puzzle-orientation-SKZG73EB.js.map → big-puzzle-orientation-CQUVRARW.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-3U3UEVVD.js.map → chunk-53UENZ7A.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-GKM2CK6T.js.map → chunk-7M7ZAS5G.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-7HQOMRBY.js.map → chunk-BVZN7IXO.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-3YVVF3KK.js.map → chunk-CZGLT7LF.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-H75BKRPQ.js.map → chunk-LII4MJEB.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-F7UESNJD.js.map → chunk-YICS6Q2F.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-7CZZRWBJ.js.map → chunk-ZVLDZYZD.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{inside-AYMLD6IQ.js.map → inside-ICFSQUAC.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-T4N6YHT7.js.map → search-dynamic-sgs-side-events-5AC7RH72.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-EQIJODP7.js.map → search-dynamic-sgs-unofficial-INRHQCBE.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-NT5XKSLV.js.map → search-dynamic-solve-4x4x4-VNSEVV7B.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-NKAFVO65.js.map → search-dynamic-solve-fto-BHX3R6ZT.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-EDGE5SP4.js.map → search-dynamic-solve-kilominx-SAJCQILQ.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{twsearch-WDBATGZX.js.map → twsearch-T3W5T5WE.js.map} +0 -0
|
@@ -6,22 +6,23 @@ import {
|
|
|
6
6
|
asyncGetKPuzzleByDesc,
|
|
7
7
|
asyncGetPuzzleGeometry,
|
|
8
8
|
bigCubePuzzleOrientation,
|
|
9
|
+
cube3x3x3,
|
|
10
|
+
cube3x3x3KeyMapping,
|
|
9
11
|
cubeLikeStickeringList,
|
|
10
12
|
cubeLikeStickeringMask,
|
|
13
|
+
cubeMirrorTransforms,
|
|
11
14
|
descAsyncGetPuzzleGeometry,
|
|
12
|
-
experimental3x3x3KPuzzle,
|
|
13
15
|
experimentalIs2x2x2Solved,
|
|
14
16
|
from,
|
|
15
17
|
getCached
|
|
16
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-Z4CZPP2W.js";
|
|
17
19
|
import {
|
|
18
20
|
KPuzzle
|
|
19
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-CZGLT7LF.js";
|
|
20
22
|
import {
|
|
21
23
|
Move,
|
|
22
|
-
Pause
|
|
23
|
-
|
|
24
|
-
} from "./chunk-SWKNZGJF.js";
|
|
24
|
+
Pause
|
|
25
|
+
} from "./chunk-3MMNI5O2.js";
|
|
25
26
|
|
|
26
27
|
// src/cubing/puzzles/events.ts
|
|
27
28
|
var wcaEvents = {
|
|
@@ -170,296 +171,8 @@ var cube2x2x2 = {
|
|
|
170
171
|
return asyncGetPuzzleGeometry("2x2x2");
|
|
171
172
|
}),
|
|
172
173
|
stickeringMask: (stickering) => cubeLikeStickeringMask(cube2x2x2, stickering),
|
|
173
|
-
stickerings: () => cubeLikeStickeringList("2x2x2", { use3x3x3Fallbacks: true })
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
// src/cubing/puzzles/implementations/3x3x3/cube3x3x3KeyMapping.ts
|
|
177
|
-
var cube3x3x3KeyMapping = {
|
|
178
|
-
KeyI: new Move("R"),
|
|
179
|
-
KeyK: new Move("R'"),
|
|
180
|
-
KeyW: new Move("B"),
|
|
181
|
-
KeyO: new Move("B'"),
|
|
182
|
-
KeyS: new Move("D"),
|
|
183
|
-
KeyL: new Move("D'"),
|
|
184
|
-
KeyD: new Move("L"),
|
|
185
|
-
KeyE: new Move("L'"),
|
|
186
|
-
KeyJ: new Move("U"),
|
|
187
|
-
KeyF: new Move("U'"),
|
|
188
|
-
KeyH: new Move("F"),
|
|
189
|
-
KeyG: new Move("F'"),
|
|
190
|
-
KeyC: new Move("l"),
|
|
191
|
-
KeyR: new Move("l'"),
|
|
192
|
-
KeyU: new Move("r"),
|
|
193
|
-
KeyM: new Move("r'"),
|
|
194
|
-
KeyX: new Move("d"),
|
|
195
|
-
Comma: new Move("d'"),
|
|
196
|
-
KeyT: new Move("x"),
|
|
197
|
-
KeyY: new Move("x"),
|
|
198
|
-
KeyV: new Move("x'"),
|
|
199
|
-
KeyN: new Move("x'"),
|
|
200
|
-
Semicolon: new Move("y"),
|
|
201
|
-
KeyA: new Move("y'"),
|
|
202
|
-
KeyP: new Move("z"),
|
|
203
|
-
KeyQ: new Move("z'"),
|
|
204
|
-
KeyZ: new Move("M'"),
|
|
205
|
-
KeyB: new Move("M"),
|
|
206
|
-
Period: new Move("M'"),
|
|
207
|
-
Backquote: new Pause()
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
// src/cubing/puzzles/implementations/3x3x3/puzzle-specific-simplifications.ts
|
|
211
|
-
function makeSourceInfo(moveStrings, type, from2, to) {
|
|
212
|
-
const output = [];
|
|
213
|
-
for (const moveString of moveStrings) {
|
|
214
|
-
const move = Move.fromString(moveString);
|
|
215
|
-
const { family, amount: direction } = move;
|
|
216
|
-
if (![-1, 1].includes(direction)) {
|
|
217
|
-
throw new Error("Invalid config move");
|
|
218
|
-
}
|
|
219
|
-
output.push({ family, direction, type, from: from2, to });
|
|
220
|
-
}
|
|
221
|
-
return output;
|
|
222
|
-
}
|
|
223
|
-
var axisInfos = {
|
|
224
|
-
["x axis" /* X */]: {
|
|
225
|
-
sliceDiameter: 3,
|
|
226
|
-
extendsThroughEntirePuzzle: true,
|
|
227
|
-
moveSourceInfos: [
|
|
228
|
-
...makeSourceInfo(["R"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
229
|
-
...makeSourceInfo(["L'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
230
|
-
...makeSourceInfo(["r", "Rw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 2),
|
|
231
|
-
...makeSourceInfo(["l'", "Lw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 2),
|
|
232
|
-
...makeSourceInfo(["M'"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
233
|
-
// TODO: remove some indices?
|
|
234
|
-
...makeSourceInfo(["x", "Uv", "Dv'"], 5 /* ROTATION */, 0, 3)
|
|
235
|
-
// TODO: remove some indices?
|
|
236
|
-
]
|
|
237
|
-
},
|
|
238
|
-
["y axis" /* Y */]: {
|
|
239
|
-
sliceDiameter: 3,
|
|
240
|
-
extendsThroughEntirePuzzle: true,
|
|
241
|
-
moveSourceInfos: [
|
|
242
|
-
...makeSourceInfo(["U"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
243
|
-
...makeSourceInfo(["D'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
244
|
-
...makeSourceInfo(["u", "Uw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 2),
|
|
245
|
-
...makeSourceInfo(["d'", "Dw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 2),
|
|
246
|
-
...makeSourceInfo(["E'"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
247
|
-
// TODO: remove some indices?
|
|
248
|
-
...makeSourceInfo(["y", "Uv", "Dv'"], 5 /* ROTATION */, 0, 3)
|
|
249
|
-
// TODO: remove some indices?
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
["z axis" /* Z */]: {
|
|
253
|
-
sliceDiameter: 3,
|
|
254
|
-
extendsThroughEntirePuzzle: true,
|
|
255
|
-
moveSourceInfos: [
|
|
256
|
-
...makeSourceInfo(["F"], 0 /* INDEXABLE_SLICE_NEAR */, 0, 3),
|
|
257
|
-
...makeSourceInfo(["B'"], 1 /* INDEXABLE_SLICE_FAR */, 0, 3),
|
|
258
|
-
...makeSourceInfo(["f", "Fw"], 2 /* INDEXABLE_WIDE_NEAR */, 0, 3),
|
|
259
|
-
...makeSourceInfo(["b'", "Bw'"], 3 /* INDEXABLE_WIDE_FAR */, 0, 3),
|
|
260
|
-
...makeSourceInfo(["S"], 4 /* SPECIFIC_SLICE */, 1, 2),
|
|
261
|
-
// TODO: remove some indices?
|
|
262
|
-
...makeSourceInfo(["z", "Fv", "Bv'"], 5 /* ROTATION */, 0, 3)
|
|
263
|
-
// TODO: remove some indices?
|
|
264
|
-
]
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
var byFamily = {};
|
|
268
|
-
for (const [axis, info] of Object.entries(axisInfos)) {
|
|
269
|
-
for (const moveSourceInfo of info.moveSourceInfos) {
|
|
270
|
-
byFamily[moveSourceInfo.family] = { axis, moveSourceInfo };
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
var byAxisThenType = {};
|
|
274
|
-
for (const axis of Object.keys(axisInfos)) {
|
|
275
|
-
const entry = {};
|
|
276
|
-
byAxisThenType[axis] = entry;
|
|
277
|
-
for (const moveSourceInfo of axisInfos[axis].moveSourceInfos) {
|
|
278
|
-
(entry[moveSourceInfo.type] ??= []).push(moveSourceInfo);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
var byAxisThenSpecificSlices = {};
|
|
282
|
-
for (const axis of Object.keys(axisInfos)) {
|
|
283
|
-
const entry = /* @__PURE__ */ new Map();
|
|
284
|
-
byAxisThenSpecificSlices[axis] = entry;
|
|
285
|
-
for (const moveSourceInfo of axisInfos[axis].moveSourceInfos) {
|
|
286
|
-
if (!entry.get(moveSourceInfo.from)) {
|
|
287
|
-
entry.set(moveSourceInfo.from, moveSourceInfo);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
function firstOfType(axis, moveSourceType) {
|
|
292
|
-
const entry = byAxisThenType[axis][moveSourceType]?.[0];
|
|
293
|
-
if (!entry) {
|
|
294
|
-
throw new Error(
|
|
295
|
-
`Could not find a reference move (axis: ${axis}, move source type: ${moveSourceType})`
|
|
296
|
-
);
|
|
297
|
-
}
|
|
298
|
-
return entry;
|
|
299
|
-
}
|
|
300
|
-
var areQuantumMovesSameAxis = (quantumMove1, quantumMove2) => {
|
|
301
|
-
return byFamily[quantumMove1.family].axis === byFamily[quantumMove2.family].axis;
|
|
302
|
-
};
|
|
303
|
-
function simplestMove(axis, from2, to, directedAmount) {
|
|
304
|
-
if (from2 + 1 === to) {
|
|
305
|
-
const sliceSpecificInfo = byAxisThenSpecificSlices[axis].get(from2);
|
|
306
|
-
if (sliceSpecificInfo) {
|
|
307
|
-
return new Move(
|
|
308
|
-
new QuantumMove(sliceSpecificInfo.family),
|
|
309
|
-
directedAmount * sliceSpecificInfo.direction
|
|
310
|
-
);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
const axisInfo = axisInfos[axis];
|
|
314
|
-
const { sliceDiameter } = axisInfo;
|
|
315
|
-
if (from2 === 0 && to === sliceDiameter) {
|
|
316
|
-
const moveSourceInfo2 = firstOfType(axis, 5 /* ROTATION */);
|
|
317
|
-
return new Move(
|
|
318
|
-
new QuantumMove(moveSourceInfo2.family),
|
|
319
|
-
directedAmount * moveSourceInfo2.direction
|
|
320
|
-
);
|
|
321
|
-
}
|
|
322
|
-
const far = from2 + to > sliceDiameter;
|
|
323
|
-
if (far) {
|
|
324
|
-
[from2, to] = [sliceDiameter - to, sliceDiameter - from2];
|
|
325
|
-
}
|
|
326
|
-
let outerLayer = from2 + 1;
|
|
327
|
-
let innerLayer = to;
|
|
328
|
-
const slice = outerLayer === innerLayer;
|
|
329
|
-
if (slice) {
|
|
330
|
-
innerLayer = null;
|
|
331
|
-
}
|
|
332
|
-
if (outerLayer === 1) {
|
|
333
|
-
outerLayer = null;
|
|
334
|
-
}
|
|
335
|
-
if (slice && outerLayer === 1) {
|
|
336
|
-
innerLayer = null;
|
|
337
|
-
}
|
|
338
|
-
if (!slice && innerLayer === 2) {
|
|
339
|
-
innerLayer = null;
|
|
340
|
-
}
|
|
341
|
-
const moveSourceType = slice ? far ? 1 /* INDEXABLE_SLICE_FAR */ : 0 /* INDEXABLE_SLICE_NEAR */ : far ? 3 /* INDEXABLE_WIDE_FAR */ : 2 /* INDEXABLE_WIDE_NEAR */;
|
|
342
|
-
const moveSourceInfo = firstOfType(axis, moveSourceType);
|
|
343
|
-
return new Move(
|
|
344
|
-
new QuantumMove(moveSourceInfo.family, innerLayer, outerLayer),
|
|
345
|
-
directedAmount * moveSourceInfo.direction
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
function simplifySameAxisMoves(moves, quantumMod = true) {
|
|
349
|
-
if (moves.length === 0) {
|
|
350
|
-
return [];
|
|
351
|
-
}
|
|
352
|
-
const axis = byFamily[moves[0].family].axis;
|
|
353
|
-
const axisInfo = axisInfos[axis];
|
|
354
|
-
const { sliceDiameter } = axisInfo;
|
|
355
|
-
const sliceDeltas = /* @__PURE__ */ new Map();
|
|
356
|
-
let lastCandidateRange = null;
|
|
357
|
-
function adjustValue(idx, relativeDelta) {
|
|
358
|
-
let newDelta = (sliceDeltas.get(idx) ?? 0) + relativeDelta;
|
|
359
|
-
if (quantumMod) {
|
|
360
|
-
newDelta = newDelta % 4 + 5 % 4 - 1;
|
|
361
|
-
}
|
|
362
|
-
if (newDelta === 0) {
|
|
363
|
-
sliceDeltas.delete(idx);
|
|
364
|
-
} else {
|
|
365
|
-
sliceDeltas.set(idx, newDelta);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
let suffixLength = 0;
|
|
369
|
-
for (const move of Array.from(moves).reverse()) {
|
|
370
|
-
suffixLength++;
|
|
371
|
-
const { moveSourceInfo } = byFamily[move.family];
|
|
372
|
-
const directedAmount2 = move.amount * moveSourceInfo.direction;
|
|
373
|
-
switch (moveSourceInfo.type) {
|
|
374
|
-
case 0 /* INDEXABLE_SLICE_NEAR */: {
|
|
375
|
-
const idx = (move.innerLayer ?? 1) - 1;
|
|
376
|
-
adjustValue(idx, directedAmount2);
|
|
377
|
-
adjustValue(idx + 1, -directedAmount2);
|
|
378
|
-
break;
|
|
379
|
-
}
|
|
380
|
-
case 1 /* INDEXABLE_SLICE_FAR */: {
|
|
381
|
-
const idx = sliceDiameter - (move.innerLayer ?? 1);
|
|
382
|
-
adjustValue(idx, directedAmount2);
|
|
383
|
-
adjustValue(idx + 1, -directedAmount2);
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
case 2 /* INDEXABLE_WIDE_NEAR */: {
|
|
387
|
-
adjustValue((move.outerLayer ?? 1) - 1, directedAmount2);
|
|
388
|
-
adjustValue(move.innerLayer ?? 2, -directedAmount2);
|
|
389
|
-
break;
|
|
390
|
-
}
|
|
391
|
-
case 3 /* INDEXABLE_WIDE_FAR */: {
|
|
392
|
-
adjustValue(sliceDiameter - (move.innerLayer ?? 2), directedAmount2);
|
|
393
|
-
adjustValue(
|
|
394
|
-
sliceDiameter - ((move.outerLayer ?? 1) - 1),
|
|
395
|
-
-directedAmount2
|
|
396
|
-
);
|
|
397
|
-
break;
|
|
398
|
-
}
|
|
399
|
-
case 4 /* SPECIFIC_SLICE */: {
|
|
400
|
-
adjustValue(moveSourceInfo.from, directedAmount2);
|
|
401
|
-
adjustValue(moveSourceInfo.to, -directedAmount2);
|
|
402
|
-
break;
|
|
403
|
-
}
|
|
404
|
-
case 5 /* ROTATION */: {
|
|
405
|
-
adjustValue(0, directedAmount2);
|
|
406
|
-
adjustValue(sliceDiameter, -directedAmount2);
|
|
407
|
-
break;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
if ([0, 2].includes(sliceDeltas.size)) {
|
|
411
|
-
lastCandidateRange = { suffixLength, sliceDeltas: new Map(sliceDeltas) };
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
if (sliceDeltas.size === 0) {
|
|
415
|
-
return [];
|
|
416
|
-
}
|
|
417
|
-
if (!lastCandidateRange) {
|
|
418
|
-
return moves;
|
|
419
|
-
}
|
|
420
|
-
let [from2, to] = lastCandidateRange.sliceDeltas.keys();
|
|
421
|
-
if (from2 > to) {
|
|
422
|
-
[from2, to] = [to, from2];
|
|
423
|
-
}
|
|
424
|
-
const directedAmount = lastCandidateRange.sliceDeltas.get(from2);
|
|
425
|
-
return [
|
|
426
|
-
...moves.slice(0, -lastCandidateRange.suffixLength),
|
|
427
|
-
...directedAmount !== 0 ? [simplestMove(axis, from2, to, directedAmount)] : []
|
|
428
|
-
];
|
|
429
|
-
}
|
|
430
|
-
var puzzleSpecificSimplifyOptions333 = {
|
|
431
|
-
quantumMoveOrder: () => 4,
|
|
432
|
-
// doQuantumMovesCommute: areQuantumMovesSameAxis,
|
|
433
|
-
axis: { areQuantumMovesSameAxis, simplifySameAxisMoves }
|
|
434
|
-
};
|
|
435
|
-
|
|
436
|
-
// src/cubing/puzzles/implementations/3x3x3/index.ts
|
|
437
|
-
var cube3x3x3 = {
|
|
438
|
-
id: "3x3x3",
|
|
439
|
-
fullName: "3\xD73\xD73 Cube",
|
|
440
|
-
inventedBy: ["Ern\u0151 Rubik"],
|
|
441
|
-
inventionYear: 1974,
|
|
442
|
-
// https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development
|
|
443
|
-
kpuzzle: getCached(async () => {
|
|
444
|
-
return experimental3x3x3KPuzzle;
|
|
445
|
-
}),
|
|
446
|
-
svg: getCached(async () => {
|
|
447
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3SVG;
|
|
448
|
-
}),
|
|
449
|
-
llSVG: getCached(async () => {
|
|
450
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3LLSVG;
|
|
451
|
-
}),
|
|
452
|
-
llFaceSVG: getCached(async () => {
|
|
453
|
-
return (await import("./puzzles-dynamic-3x3x3-JWIWLLZA.js")).cube3x3x3LLFaceSVG;
|
|
454
|
-
}),
|
|
455
|
-
pg: getCached(async () => {
|
|
456
|
-
return asyncGetPuzzleGeometry("3x3x3");
|
|
457
|
-
}),
|
|
458
|
-
stickeringMask: (stickering) => cubeLikeStickeringMask(cube3x3x3, stickering),
|
|
459
|
-
stickerings: () => cubeLikeStickeringList("3x3x3"),
|
|
460
|
-
puzzleSpecificSimplifyOptions: puzzleSpecificSimplifyOptions333,
|
|
461
|
-
keyMapping: async () => cube3x3x3KeyMapping
|
|
462
|
-
// TODO: async loading
|
|
174
|
+
stickerings: () => cubeLikeStickeringList("2x2x2", { use3x3x3Fallbacks: true }),
|
|
175
|
+
algTransformData: cubeMirrorTransforms
|
|
463
176
|
};
|
|
464
177
|
|
|
465
178
|
// src/cubing/puzzles/implementations/4x4x4/cube4x4x4And5x5x5KeyMapping.ts
|
|
@@ -758,6 +471,29 @@ var FTOPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
758
471
|
return (await import("./puzzles-dynamic-unofficial-P3TW433I.js")).ftoSVG;
|
|
759
472
|
});
|
|
760
473
|
keyMapping = async () => ftoKeyMapping;
|
|
474
|
+
algTransformData = {
|
|
475
|
+
"\u2194 Mirror (x)": {
|
|
476
|
+
replaceMovesByFamily: {
|
|
477
|
+
L: "R",
|
|
478
|
+
R: "L",
|
|
479
|
+
l: "r",
|
|
480
|
+
r: "l",
|
|
481
|
+
Lw: "Rw",
|
|
482
|
+
Rw: "Lw",
|
|
483
|
+
Lv: "Rv",
|
|
484
|
+
Rv: "Lv",
|
|
485
|
+
BL: "BR",
|
|
486
|
+
BR: "BL",
|
|
487
|
+
bl: "br",
|
|
488
|
+
br: "bl",
|
|
489
|
+
BLw: "BRw",
|
|
490
|
+
BRw: "BLw",
|
|
491
|
+
BLv: "BRv",
|
|
492
|
+
BRv: "BLv"
|
|
493
|
+
},
|
|
494
|
+
invertExceptByFamily: /* @__PURE__ */ new Set(["x"])
|
|
495
|
+
}
|
|
496
|
+
};
|
|
761
497
|
};
|
|
762
498
|
var fto = new FTOPuzzleLoader();
|
|
763
499
|
|
|
@@ -899,6 +635,21 @@ var PyraminxPuzzleLoader = class extends PGPuzzleLoader {
|
|
|
899
635
|
svg = getCached(async () => {
|
|
900
636
|
return (await import("./puzzles-dynamic-side-events-BOGUHF4Q.js")).pyraminxSVG;
|
|
901
637
|
});
|
|
638
|
+
algTransformData = {
|
|
639
|
+
"\u2194 Mirror (x)": {
|
|
640
|
+
replaceMovesByFamily: {
|
|
641
|
+
L: "R",
|
|
642
|
+
R: "L",
|
|
643
|
+
l: "r",
|
|
644
|
+
r: "l",
|
|
645
|
+
Lw: "Rw",
|
|
646
|
+
Rw: "Lw",
|
|
647
|
+
Lv: "Rv",
|
|
648
|
+
Rv: "Lv"
|
|
649
|
+
},
|
|
650
|
+
invertExceptByFamily: /* @__PURE__ */ new Set([])
|
|
651
|
+
}
|
|
652
|
+
};
|
|
902
653
|
};
|
|
903
654
|
var pyraminx = new PyraminxPuzzleLoader();
|
|
904
655
|
|
|
@@ -1015,7 +766,6 @@ export {
|
|
|
1015
766
|
twizzleEvents,
|
|
1016
767
|
eventInfo,
|
|
1017
768
|
cube2x2x2,
|
|
1018
|
-
cube3x3x3,
|
|
1019
769
|
puzzles
|
|
1020
770
|
};
|
|
1021
|
-
//# sourceMappingURL=chunk-
|
|
771
|
+
//# sourceMappingURL=chunk-WI3YFILD.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cubing/puzzles/events.ts", "../../../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../../../src/cubing/puzzles/implementations/4x4x4/cube4x4x4And5x5x5KeyMapping.ts", "../../../../src/cubing/puzzles/implementations/4x4x4/index.ts", "../../../../src/cubing/puzzles/implementations/5x5x5/index.ts", "../../../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../../../src/cubing/puzzles/implementations/fto/ftoKeyMapping.ts", "../../../../src/cubing/puzzles/implementations/baby_fto/index.ts", "../../../../src/cubing/puzzles/implementations/clock/index.ts", "../../../../src/cubing/puzzles/implementations/fto/index.ts", "../../../../src/cubing/puzzles/implementations/kilominx/index.ts", "../../../../src/cubing/puzzles/implementations/loopover/index.ts", "../../../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../../../src/cubing/puzzles/implementations/megaminx/megaminxKeyMapping.ts", "../../../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../../../src/cubing/puzzles/implementations/melindas2x2x2x2/index.ts", "../../../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../../../src/cubing/puzzles/implementations/redi-cube/index.ts", "../../../../src/cubing/puzzles/implementations/square1/index.ts", "../../../../src/cubing/puzzles/implementations/tri_quad/index.ts", "../../../../src/cubing/puzzles/index.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PuzzleID } from \"../twisty\";\n\ninterface EventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n /** Whether/how scrambles are implemented in `randomScrambleForEvent(\u2026)` in this version of `cubing.js` */\n scramblesImplemented: null | \"random-state\" | \"random-moves\";\n}\n\nexport const wcaEvents: Record<string, EventInfo> = {\n \"333\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"222\": {\n puzzleID: \"2x2x2\",\n eventName: \"2x2x2 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"444\": {\n puzzleID: \"4x4x4\",\n eventName: \"4x4x4 Cube\",\n scramblesImplemented: \"random-state\",\n },\n \"555\": {\n puzzleID: \"5x5x5\",\n eventName: \"5x5x5 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"666\": {\n puzzleID: \"6x6x6\",\n eventName: \"6x6x6 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"777\": {\n puzzleID: \"7x7x7\",\n eventName: \"7x7x7 Cube\",\n scramblesImplemented: \"random-moves\",\n },\n \"333bf\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Blindfolded\",\n scramblesImplemented: \"random-state\",\n },\n \"333fm\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Fewest Moves\",\n scramblesImplemented: \"random-state\",\n },\n \"333oh\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 One-Handed\",\n scramblesImplemented: \"random-state\",\n },\n clock: {\n puzzleID: \"clock\",\n eventName: \"Clock\",\n scramblesImplemented: \"random-state\",\n },\n minx: {\n puzzleID: \"megaminx\",\n eventName: \"Megaminx\",\n scramblesImplemented: \"random-moves\",\n },\n pyram: {\n puzzleID: \"pyraminx\",\n eventName: \"Pyraminx\",\n scramblesImplemented: \"random-state\",\n },\n skewb: {\n puzzleID: \"skewb\",\n eventName: \"Skewb\",\n scramblesImplemented: \"random-state\",\n },\n sq1: {\n puzzleID: \"square1\",\n eventName: \"Square-1\",\n scramblesImplemented: \"random-state\",\n },\n \"444bf\": {\n puzzleID: \"4x4x4\",\n eventName: \"4x4x4 Blindfolded\",\n scramblesImplemented: \"random-state\",\n },\n \"555bf\": {\n puzzleID: \"5x5x5\",\n eventName: \"5x5x5 Blindfolded\",\n scramblesImplemented: \"random-moves\",\n },\n \"333mbf\": {\n puzzleID: \"3x3x3\",\n eventName: \"3x3x3 Multi-Blind\",\n scramblesImplemented: \"random-state\",\n },\n};\n\n/** @category Event Info */\nexport function wcaEventInfo(event: string): EventInfo | null {\n return wcaEvents[event] ?? null;\n}\n\nexport const twizzleEvents: Record<string, EventInfo> = {\n ...wcaEvents,\n fto: {\n puzzleID: \"fto\",\n eventName: \"Face-Turning Octahedron\",\n scramblesImplemented: \"random-state\",\n },\n master_tetraminx: {\n puzzleID: \"master_tetraminx\",\n eventName: \"Master Tetraminx\",\n scramblesImplemented: \"random-state\",\n },\n kilominx: {\n puzzleID: \"kilominx\",\n eventName: \"Kilominx\",\n scramblesImplemented: \"random-state\",\n },\n redi_cube: {\n puzzleID: \"redi_cube\",\n eventName: \"Redi Cube\",\n scramblesImplemented: \"random-state\",\n },\n baby_fto: {\n puzzleID: \"baby_fto\",\n eventName: \"Baby FTO\",\n scramblesImplemented: \"random-state\",\n },\n loopover: {\n puzzleID: \"loopover\",\n eventName: \"Loopover\",\n scramblesImplemented: null,\n },\n};\n\n/** @category Event Info */\nexport function eventInfo(event: string): EventInfo | null {\n return twizzleEvents[event] ?? null;\n}\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { experimentalIs2x2x2Solved } from \"../../../puzzles/cubing-private\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport {\n cubeLikeStickeringList,\n cubeLikeStickeringMask,\n} from \"../../stickerings/cube-like-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { cubeMirrorTransforms } from \"../3x3x3\";\n\n/** @category Specific Puzzles */\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n kpuzzle: getCached(async () => {\n const kpuzzle = new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2JSON,\n );\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIs2x2x2Solved;\n return kpuzzle;\n }),\n svg: async () =>\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2SVG,\n llSVG: getCached(\n async () =>\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .cube2x2x2LLSVG,\n ),\n pg: getCached(async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n }),\n stickeringMask: (\n stickering: ExperimentalStickering,\n ): Promise<StickeringMask> => cubeLikeStickeringMask(cube2x2x2, stickering),\n stickerings: () =>\n cubeLikeStickeringList(\"2x2x2\", { use3x3x3Fallbacks: true }),\n algTransformData: cubeMirrorTransforms,\n};\n", "import { type AlgLeaf, Move } from \"../../../alg\";\nimport { cube3x3x3KeyMapping } from \"../3x3x3/cube3x3x3KeyMapping\";\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code\n\n// TODO: place this definition in a more shared location.\nexport const cube4x4x4And5x5x5KeyMapping: { [key: number | string]: AlgLeaf } =\n {\n ...cube3x3x3KeyMapping,\n KeyZ: new Move(\"m'\"),\n KeyB: new Move(\"m\"),\n Period: new Move(\"m'\"),\n };\n", "import { CubePGPuzzleLoader, PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { bigCubePuzzleOrientation } from \"../../cubing-private\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport { cube4x4x4And5x5x5KeyMapping } from \"./cube4x4x4And5x5x5KeyMapping\";\n\nconst cube4x4x4: PuzzleLoader = new CubePGPuzzleLoader({\n id: \"4x4x4\",\n fullName: \"4\u00D74\u00D74 Cube\",\n inventedBy: [\"Peter Sebest\u00E9ny\"],\n inventionYear: 1981,\n});\n\ncube4x4x4.llSVG = getCached(async () => {\n return (await import(\"../dynamic/4x4x4/puzzles-dynamic-4x4x4\"))\n .cube4x4x4LLSVG;\n});\ncube4x4x4.keyMapping = async () => cube4x4x4And5x5x5KeyMapping; // TODO: async loading\n\ncube4x4x4.kpuzzle = getCached(async () => {\n const kpuzzle = await PGPuzzleLoader.prototype.kpuzzle.call(cube4x4x4);\n // TODO: pass up an option to do this instead.\n kpuzzle.definition.defaultPattern[\"CENTERS\"].pieces = [\n // U\n 0, 0, 0, 0,\n // L\n 4, 4, 4, 4,\n // F\n 8, 8, 8, 8,\n // R\n 12, 12, 12, 12,\n // B\n 16, 16, 16, 16,\n // D\n 20, 20, 20, 20,\n ];\n const { experimentalIsBigCubeSolved } = await bigCubePuzzleOrientation();\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIsBigCubeSolved;\n return kpuzzle;\n});\n\nexport { cube4x4x4 };\n", "import { CubePGPuzzleLoader, PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { bigCubePuzzleOrientation } from \"../../cubing-private\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport { cube4x4x4And5x5x5KeyMapping } from \"../4x4x4/cube4x4x4And5x5x5KeyMapping\";\n\nconst cube5x5x5: PuzzleLoader = new CubePGPuzzleLoader({\n id: \"5x5x5\",\n fullName: \"5\u00D75\u00D75 Cube\",\n inventedBy: [\"Udo Krell\"],\n inventionYear: 1981,\n});\n\ncube5x5x5.keyMapping = async () => cube4x4x4And5x5x5KeyMapping; // TODO: async loading\n\ncube5x5x5.kpuzzle = getCached(async () => {\n const kpuzzle = await PGPuzzleLoader.prototype.kpuzzle.call(cube5x5x5);\n\n const speffzDistinguishableCenters = [\n // U\n 0, 0, 0, 0,\n // L\n 4, 4, 4, 4,\n // F\n 8, 8, 8, 8,\n // R\n 12, 12, 12, 12,\n // B\n 16, 16, 16, 16,\n // D\n 20, 20, 20, 20,\n ];\n // TODO: pass up an option to do this instead.\n kpuzzle.definition.defaultPattern[\"CENTERS\"].pieces =\n speffzDistinguishableCenters;\n kpuzzle.definition.defaultPattern[\"CENTERS2\"].pieces =\n speffzDistinguishableCenters;\n kpuzzle.definition.defaultPattern[\"CENTERS3\"].orientationMod = new Array(\n 6,\n ).fill(1);\n const { experimentalIsBigCubeSolved } = await bigCubePuzzleOrientation();\n kpuzzle.definition.experimentalIsPatternSolved = experimentalIsBigCubeSolved;\n return kpuzzle;\n});\n\nexport { cube5x5x5 };\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n type PieceSet,\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n type StickeringMask,\n} from \"./mask\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<StickeringMask> {\n const kpuzzle = await puzzleLoader.kpuzzle();\n const puzzleStickering = new PuzzleStickering(kpuzzle);\n const m = new StickeringManager(kpuzzle);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\": {\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n }\n case \"experimental-fto-f2t\": {\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n }\n case \"experimental-fto-sc\": {\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n }\n case \"experimental-fto-l2c\": {\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n }\n case \"experimental-fto-lbt\": {\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n }\n case \"experimental-fto-l3t\": {\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n }\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toStickeringMask();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import { type AlgLeaf, Move, Pause } from \"../../../alg\";\n\nexport const ftoKeyMapping: { [key: number | string]: AlgLeaf } = {\n KeyI: new Move(\"R\"),\n KeyK: new Move(\"R'\"),\n KeyW: new Move(\"B\"),\n KeyO: new Move(\"B'\"),\n KeyS: new Move(\"D\"),\n KeyL: new Move(\"D'\"),\n KeyD: new Move(\"L\"),\n KeyE: new Move(\"L'\"),\n KeyJ: new Move(\"U\"),\n KeyF: new Move(\"U'\"),\n KeyH: new Move(\"F\"),\n KeyG: new Move(\"F'\"),\n\n KeyN: new Move(\"Rv'\"),\n KeyC: new Move(\"l\"),\n KeyR: new Move(\"l'\"),\n KeyU: new Move(\"r\"),\n KeyM: new Move(\"r'\"),\n\n KeyX: new Move(\"d\"),\n Comma: new Move(\"d'\"),\n\n KeyT: new Move(\"Lv'\"),\n KeyY: new Move(\"Rv\"),\n KeyV: new Move(\"Lv\"),\n Semicolon: new Move(\"Uv\"),\n KeyA: new Move(\"Uv'\"),\n KeyP: new Move(\"BR'\"),\n KeyQ: new Move(\"BL\"),\n\n KeyZ: new Move(\"BL'\"),\n KeyB: new Move(\"T\"),\n Period: new Move(\"BR\"),\n\n Backquote: new Pause(),\n};\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport { ftoStickering } from \"../../stickerings/fto-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { ftoKeyMapping } from \"../fto/ftoKeyMapping\";\n\nclass BabyFTOPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n pgID: \"skewb diamond\",\n id: \"baby_fto\",\n fullName: \"Baby FTO\",\n inventedBy: [\"Uwe M\u00E8ffert\"],\n // inventionYear: TODO\n setOrientationModTo1ForPiecesOfOrbits: [\"CENTERS\"],\n });\n }\n stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return ftoStickering(this, stickering);\n }\n override svg = getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .babyFTOSVG;\n });\n keyMapping = async () => ftoKeyMapping;\n}\n\nexport const baby_fto = new BabyFTOPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .clockJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .clockSVG;\n }),\n};\n", "import type { AlgTransformData } from \"cubing/puzzles/cubing-private\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport { ftoKeyMapping } from \"./ftoKeyMapping\";\n\nclass FTOPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n pgID: \"FTO\",\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n });\n }\n stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return ftoStickering(this, stickering);\n }\n stickerings = ftoStickerings;\n override svg = getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .ftoSVG;\n });\n keyMapping = async () => ftoKeyMapping;\n algTransformData: AlgTransformData = {\n \"\u2194 Mirror (x)\": {\n replaceMovesByFamily: {\n L: \"R\",\n R: \"L\",\n l: \"r\",\n r: \"l\",\n Lw: \"Rw\",\n Rw: \"Lw\",\n Lv: \"Rv\",\n Rv: \"Lv\",\n BL: \"BR\",\n BR: \"BL\",\n bl: \"br\",\n br: \"bl\",\n BLw: \"BRw\",\n BRw: \"BLw\",\n BLv: \"BRv\",\n BRv: \"BLv\",\n },\n invertExceptByFamily: new Set([\"x\"]),\n },\n };\n}\n\nexport const fto = new FTOPuzzleLoader();\n", "import type { PuzzleLoader } from \"../..\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport {\n asyncGetKPuzzleByDesc,\n descAsyncGetPuzzleGeometry,\n} from \"../../customPGPuzzleLoader\";\n\nconst KILOMINX_PUZZLE_DESCRIPTION = \"d f 0.56\";\n\n// TODO: Make this consistent with Megaminx corners\nexport const kilominx: PuzzleLoader = {\n id: \"kilominx\",\n fullName: \"Kilominx\",\n kpuzzle: getCached(() =>\n asyncGetKPuzzleByDesc(KILOMINX_PUZZLE_DESCRIPTION, {\n includeCenterOrbits: false,\n includeEdgeOrbits: false,\n }),\n ),\n pg: () =>\n descAsyncGetPuzzleGeometry(KILOMINX_PUZZLE_DESCRIPTION, {\n includeCenterOrbits: false,\n includeEdgeOrbits: false,\n }),\n svg: getCached(async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .kilominxSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const loopover: PuzzleLoader = {\n id: \"loopover\",\n fullName: \"Loopover\",\n inventedBy: [\"Cary Huang\"],\n inventionYear: 2018,\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .loopoverJSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .loopoverSVG;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport { from } from \"../../vendor/mit/p-lazy/p-lazy\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeLikeStickeringList,\n cubeLikeStickeringMask,\n} from \"./cube-like-stickerings\";\nimport type { StickeringMask } from \"./mask\";\n\n// TODO: cache calculations?\nexport async function megaminxStickeringMask(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<StickeringMask> {\n // TODO: optimize lookup instead of looking through a list\n if ((await megaminxStickerings()).includes(stickering)) {\n return cubeLikeStickeringMask(puzzleLoader, stickering);\n }\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n return cubeLikeStickeringMask(puzzleLoader, \"full\");\n}\n\nconst megaminxStickeringListPromise: Promise<string[]> = from(() =>\n cubeLikeStickeringList(\"megaminx\"),\n);\nexport function megaminxStickerings(): Promise<string[]> {\n return megaminxStickeringListPromise;\n}\n", "import { type AlgLeaf, Move, Pause } from \"../../../alg\";\n\n// See: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code\n\nexport const megaminxKeyMapping: { [key: number | string]: AlgLeaf } = {\n KeyI: new Move(\"R\"),\n KeyK: new Move(\"R'\"),\n KeyW: new Move(\"B\"),\n KeyO: new Move(\"B'\"),\n KeyS: new Move(\"FR\"),\n KeyL: new Move(\"FR'\"),\n KeyD: new Move(\"L\"),\n KeyE: new Move(\"L'\"),\n KeyJ: new Move(\"U\"),\n KeyF: new Move(\"U'\"),\n KeyH: new Move(\"F\"),\n KeyG: new Move(\"F'\"),\n\n KeyC: new Move(\"Lw\"),\n KeyR: new Move(\"Lw'\"),\n KeyU: new Move(\"Rw\"),\n KeyM: new Move(\"Rw'\"),\n\n KeyX: new Move(\"d\"),\n Comma: new Move(\"d'\"),\n\n KeyT: new Move(\"Rv\"),\n KeyY: new Move(\"Rv\"),\n KeyV: new Move(\"Rv'\"),\n KeyN: new Move(\"Rv'\"),\n Semicolon: new Move(\"y\"),\n KeyA: new Move(\"y'\"),\n KeyP: new Move(\"z\"),\n KeyQ: new Move(\"z'\"),\n\n KeyZ: new Move(\"2L'\"),\n KeyB: new Move(\"2R\"),\n Period: new Move(\"2R'\"),\n\n Backquote: new Pause(),\n};\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { StickeringMask } from \"../../stickerings/mask\";\nimport {\n megaminxStickeringMask,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\nimport { megaminxKeyMapping } from \"./megaminxKeyMapping\";\n\nclass MegaminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"megaminx\",\n fullName: \"Megaminx\",\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n });\n }\n stickeringMask(stickering: ExperimentalStickering): Promise<StickeringMask> {\n return megaminxStickeringMask(this, stickering);\n }\n stickerings = megaminxStickerings;\n\n llSVG = getCached(async () => {\n return (await import(\"../dynamic/megaminx/puzzles-dynamic-megaminx\"))\n .megaminxLLSVG;\n });\n\n keyMapping = async () => megaminxKeyMapping; // TODO: async loading\n}\n\nexport const megaminx = new MegaminxPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const melindas2x2x2x2: PuzzleLoader = {\n id: \"melindas2x2x2x2\",\n fullName: \"Melinda's 2\u00D72\u00D72\u00D72\",\n inventedBy: [\"Melinda Green\"],\n // inventionYear: 20__, // TODO\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .melindas2x2x2x2OrbitJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .melindas2x2x2x2OrbitSVG;\n }),\n};\n", "import type { AlgTransformData } from \"cubing/puzzles/cubing-private\";\nimport { PGPuzzleLoader } from \"../../async/async-pg3d\";\nimport { getCached } from \"../../async/lazy-cached\";\n\nclass PyraminxPuzzleLoader extends PGPuzzleLoader {\n constructor() {\n super({\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n });\n }\n override svg = getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .pyraminxSVG;\n });\n algTransformData: AlgTransformData = {\n \"\u2194 Mirror (x)\": {\n replaceMovesByFamily: {\n L: \"R\",\n R: \"L\",\n l: \"r\",\n r: \"l\",\n Lw: \"Rw\",\n Rw: \"Lw\",\n Lv: \"Rv\",\n Rv: \"Lv\",\n },\n invertExceptByFamily: new Set([]),\n },\n };\n}\n\nexport const pyraminx = new PyraminxPuzzleLoader();\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const rediCube: PuzzleLoader = {\n id: \"redi_cube\",\n fullName: \"Redi Cube\",\n // Announced 2009-07-21: https://www.youtube.com/watch?v=cjfMzA1u3vM\n // https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1520\n inventedBy: [\"Oskar van Deventer\"],\n inventionYear: 2009,\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .rediCubeJSON,\n ),\n ),\n svg: async () => {\n return (await import(\"../dynamic/unofficial/puzzles-dynamic-unofficial\"))\n .rediCubeSVG;\n },\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .sq1HyperOrbitJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .sq1HyperOrbitSVG;\n }),\n};\n", "import { KPuzzle } from \"../../../kpuzzle\";\nimport { getCached } from \"../../async/lazy-cached\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const tri_quad: PuzzleLoader = {\n id: \"tri_quad\",\n fullName: \"TriQuad\",\n inventedBy: [\"Bram Cohen\", \"Carl Hoff\"],\n inventionYear: 2018, // https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=6809\n kpuzzle: getCached(\n async () =>\n new KPuzzle(\n (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .triQuadJSON,\n ),\n ),\n svg: getCached(async () => {\n return (await import(\"../dynamic/side-events/puzzles-dynamic-side-events\"))\n .triQuadSVG;\n }),\n};\n", "export { eventInfo, twizzleEvents, wcaEventInfo, wcaEvents } from \"./events\";\nexport { cube2x2x2, cube3x3x3 };\nexport type { PuzzleLoader };\n\nimport { CubePGPuzzleLoader, PGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { cube4x4x4 } from \"./implementations/4x4x4\";\nimport { cube5x5x5 } from \"./implementations/5x5x5\";\nimport { baby_fto } from \"./implementations/baby_fto\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { kilominx } from \"./implementations/kilominx\";\nimport { loopover } from \"./implementations/loopover\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { melindas2x2x2x2 } from \"./implementations/melindas2x2x2x2\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { rediCube } from \"./implementations/redi-cube\";\nimport { square1 } from \"./implementations/square1\";\nimport { tri_quad } from \"./implementations/tri_quad\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n/** @category All Puzzles */\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cube4x4x4,\n \"5x5x5\": cube5x5x5,\n \"6x6x6\": new CubePGPuzzleLoader({ id: \"6x6x6\", fullName: \"6\u00D76\u00D76 Cube\" }),\n \"7x7x7\": new CubePGPuzzleLoader({ id: \"7x7x7\", fullName: \"7\u00D77\u00D77 Cube\" }),\n \"40x40x40\": new CubePGPuzzleLoader({\n id: \"40x40x40\",\n fullName: \"40\u00D740\u00D740 Cube\",\n }),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n megaminx: megaminx,\n pyraminx,\n skewb: new PGPuzzleLoader({\n id: \"skewb\",\n fullName: \"Skewb\",\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n fto,\n gigaminx: new PGPuzzleLoader({\n id: \"gigaminx\",\n fullName: \"Gigaminx\",\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n master_tetraminx: new PGPuzzleLoader({\n pgID: \"master tetraminx\",\n id: \"master_tetraminx\",\n fullName: \"Master Tetraminx\",\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n }),\n kilominx,\n redi_cube: rediCube,\n melindas2x2x2x2,\n loopover,\n tri_quad,\n baby_fto,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-RDSQRW3G.js";
|
|
7
7
|
import {
|
|
8
8
|
Alg
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3MMNI5O2.js";
|
|
10
10
|
|
|
11
11
|
// src/cubing/search/inside/solve/puzzles/clock.ts
|
|
12
12
|
import { randomUIntBelow } from "random-uint-below";
|
|
@@ -366,4 +366,4 @@ export {
|
|
|
366
366
|
solveTwsearch,
|
|
367
367
|
setSearchDebug
|
|
368
368
|
};
|
|
369
|
-
//# sourceMappingURL=chunk-
|
|
369
|
+
//# sourceMappingURL=chunk-YICS6Q2F.js.map
|