-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchunk-4G4HFLZ5.js
2 lines (2 loc) · 13.2 KB
/
chunk-4G4HFLZ5.js
1
2
import{b as w}from"./chunk-QYZVNRX4.js";import{a as G}from"./chunk-YEU3QODT.js";import{a as m,c as M,g as a,h as O,o as p}from"./chunk-6QGFZL3G.js";import{c as L,j as g,r as F}from"./chunk-Q4G5UL72.js";var I=!1;function N(e){I=e}function i(){if(!I)throw new Error("Must be called from inside a worker, to avoid impact on page performance. Try importing from the top level of `cubing/solve`?")}var we=2,ye=!0,Le=!1;function be(e,r){let t=[];for(let o of r){let n=new g(o);if(n.amount!==1)throw new Error("SGS cannot handle def moves with an amount other than 1 yet.");let s=e.identityTransformation();for(let f=1;s=s.applyMove(n),!s.isIdentityTransformation();f++)t.push({move:n.modified({amount:f}),transformation:s})}return t}var d=class{constructor(r,t,o){this.kpuzzle=r;this.sgs=t;this.searchMoves=be(this.kpuzzle,o??Object.keys(this.kpuzzle.definition.moves))}searchMoves;async solve(r,t=we,o){let n=r.experimentalToTransformation();if(!n)throw new Error("distinguishable pieces are not supported in tremble solver yt");let s=null,f=1e6,y=(R,B,u)=>{if(B===0){let D=this.sgsPhaseSolve(R,f);if(!D)return;let P=u.concat(D).experimentalSimplify({cancel:{directional:"any-direction",puzzleSpecificModWrap:"canonical-centered"},puzzleSpecificSimplifyOptions:{quantumMoveOrder:o}}),S=G(P);(s===null||S<f)&&(Le&&(console.log(`New best (${S} moves): ${P.toString()}`),console.log(`Tremble moves are: ${u.toString()}`)),s=P,f=S);return}for(let D of this.searchMoves)y(R.applyTransformation(D.transformation),B-1,u.concat([D.move]))};for(let R=0;R<=t;R++)y(n,R,new F);if(s===null)throw new Error("SGS search failed.");return s}sgsPhaseSolve(r,t){let o=new L,n=r;for(let s of this.sgs.ordering){let f=s.pieceOrdering,y="",R=n.invert();for(let u=0;u<f.length;u++){let D=f[u],P=D.orbitName,S=D.permutationIdx;y+=` ${R.transformationData[P].permutation[S]} ${R.transformationData[P].orientationDelta[S]}`}let B=s.lookup[y];if(!B)throw new Error("Missing algorithm in sgs or esgs?");if(o.experimentalPushAlg(B.alg),o.experimentalNumAlgNodes()>=t)return null;if(n=n.applyTransformation(B.transformation),ye)for(let u=0;u<f.length;u++){let D=f[u],P=D.orbitName,S=D.permutationIdx;if(n.transformationData[P].permutation[S]!==S||n.transformationData[P].orientationDelta[S]!==0)throw new Error("bad SGS :-(")}}return o.toAlg()}};function x(e,r){let t=e.identityTransformation();for(let o of r.ordering){let n=w(Object.values(o.lookup));t=t.applyTransformation(n.transformation)}return t.toKPattern()}var l=a(()=>import("./search-dynamic-sgs-side-events-OR6DHGST.js"));var W=a(async()=>import("./twsearch-JCOUPKBE.js"));async function b(e,r,t){let{wasmTwsearch:o}=await W;return o(e,r,t)}async function _(e){let{wasmRandomScrambleForEvent:r}=await W;return r(e)}var q=null;async function ve(){return q||(q=(async()=>{let e=await(await l).cachedData222();return new d(await p["2x2x2"].kpuzzle(),e,"URFLBD".split(""))})())}async function $(){await ve()}async function H(e,r=11){return i(),await b((await O.kpuzzle()).definition,e,{generatorMoves:"UFLR".split(""),maxDepth:r})}function v(e,r){let t=new L;t.experimentalPushAlg(e);for(let o of r){let n=w(o);n!==null&&t.push(g.fromString(n))}return t.toAlg()}var h=a(()=>import("./search-dynamic-solve-3x3x3-XY2BEC77.js"));var xe="UF UR UB UL DF DR DB DL FR FL BR BL".split(" "),he="UFR URB UBL ULF DRF DFL DLB DBR".split(" "),Ue="U L F R B D".split(" "),ze=[[1,2,0],[0,2,0],[1,1,0],[0,3,0],[2,0,0],[0,1,0],[1,3,0],[0,0,0],[1,0,0],[1,0,2],[0,1,1],[1,1,1],[0,8,1],[2,3,0],[0,10,1],[1,4,1],[0,5,1],[1,7,2],[1,3,2],[0,0,1],[1,0,1],[0,9,0],[2,2,0],[0,8,0],[1,5,1],[0,4,1],[1,4,2],[1,5,0],[0,4,0],[1,4,0],[0,7,0],[2,5,0],[0,5,0],[1,6,0],[0,6,0],[1,7,0],[1,2,2],[0,3,1],[1,3,1],[0,11,1],[2,1,0],[0,9,1],[1,6,1],[0,7,1],[1,5,2],[1,1,2],[0,2,1],[1,2,1],[0,10,0],[2,4,0],[0,11,0],[1,7,1],[0,6,1],[1,6,2]];function j(e,r){return e.slice(r)+e.slice(0,r)}function Te(e){let r=[[],[]];for(let t=0;t<6;t++)if(e.patternData.CENTERS.pieces[t]!==t)throw new Error("non-oriented puzzles are not supported");for(let t=0;t<12;t++)r[0].push(j(xe[e.patternData.EDGES.pieces[t]],e.patternData.EDGES.orientation[t]));for(let t=0;t<8;t++)r[1].push(j(he[e.patternData.CORNERS.pieces[t]],e.patternData.CORNERS.orientation[t]));return r.push(Ue),r}function Q(e){let r=Te(e);return ze.map(([t,o,n])=>r[t][o][n]).join("")}function J(e,r){let t=new m(e.kpuzzle,{EDGES:e.patternData.EDGES,CORNERS:e.patternData.CORNERS,CENTERS:{pieces:e.patternData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation(),o=new m(r.kpuzzle,{EDGES:r.patternData.EDGES,CORNERS:r.patternData.CORNERS,CENTERS:{pieces:r.patternData.CENTERS.pieces,orientation:new Array(6).fill(0)}}).experimentalToTransformation();return t.isIdentical(o)}function V(e,r){if(J(e.defaultPattern(),r))return!1;for(let t of"ULFRBD")for(let o=1;o<4;o++){let n=e.moveToTransformation(new g(t,o)).toKPattern();if(J(n,r))return!1}return!0}var X=[["R U'","R2 B","D2 B2","D' L B'","R' U'","B","D B2","R' B","L' U","L2 B'","B2","D L B'","L U","B'","U'","R B","D' B2","L B'","U2","U L' B'","","U' L' B'","U","L' B'"],["F2 L2","F' L'","R' F L2","D' L2","F L2","F2 L'","R' F' L'","R2 F L2","R2 F2 L'","L2","F L'","D' L","D2 L2","R2 F' L'","D L","","L2 F L'","L F' L2","L F L'","F' L2","L'","D L2","D F L'","L"],["R B U2 B'","R2 B U' B'","F2 B U B'","F B2 L' B2","B2 L B2","B U' B'","R2 B U2 B'","R' B U' B'","B2 L' B2","F B U B'","B2 U' B2","B' L B","L F' B D' B'","B' U' B2 D B'","B U2 B'","R B U' B'","B2 L2 B2","D' B' L B","B U B'","F' B2 L' B2","","B2 L' B' U' B'"],["U F2 L2 U'","F' U L' U'","F2 U L' U'","U F L2 U'","U2 B2 U2","R' U' B U","D2 U L U'","D U2 B' U2","U L2 U'","F U L' U'","D U L U'","U2 B' U2","","U2 B' U' L' U'","U2 L' U2","U' B U","U L U'","D' U2 B' U2","U L' U'","U2 B U2"],["R' D' F2","F'","F2","D R F'","R D' F2","R2 F'","D' F2","R F'","F2 R' D' F2","F","D2 F2","D' R F'","R2 D' F2","R' F'","D F2","D2 R F'","","F R' D' F2"],["R' D2 F' D F","R F2 R2 F2","R2 F' D2 F","F' R2 D2 F","L D' L'","D F' D2 F","F2 R2 F2","R F' D2 F","F' R2 D' F","F' R' D2 F","F2 R' F2","L D L'","F' R D' F","F2 R F2","F' D2 F","","L D2 R D' L'","F' D2 F' R F2","D2 R2 F2 R2 F2","D F' D' F","F' D F"],["U F2 U'","R U F' U'","D R U F2 U'","U F U'","R2 U F2 U'","R' U F' U'","R U F2 U'","R2 U F' U'","","U L D L' F U'","F2 D' R D F2","D2 U F U'","R' U F2 U'","U F' U'","F2 D2 R D2 F2","D U F U'"],["R2","R' B' D B","D R'","F' R2 F","","R B' D B","R'","B' D B","D' R'","D2 F' R2 F","R","R2 B' D B","D2 R'","B' D' B"],["R2 D' R2","F' R' F R","R D' R2 D R'","D2 R2 D2 R2","R' D' F' R F","U F D F' U'","","R2 D2 B R' B' R'","R' F D' F2 R F","R2 D R2","F2 U F U' F","R' D F' R F","D R2 D2 R2","U F D' F' U'","D R' D2 F' R F","R2 D2 R2","U F D2 F' U'","R' D2 F' R F"],["B R B'","F D F' B R2 B'","D B R2 B'","D2 B R' B'","B R2 B'","D B R' B'","D' B R2 B'","B R' B'","","B R2 B' D B R' B'","D2 B R2 B'","D' B R' B'"],["","R' D R F D2 F'","R' D R","D F D' F'","R F' R' F","F D' F'","R' D' R","F D2 F'","R' D2 R","F D F'"],["","F2 D2 R F' R' D2 F' D2 F'","F2 D2 F' D' F D' F' D2 F'","F2 D F2 D F2 D2 F2","D2 F L D2 L' D2 F'","D F D2 L D2 L' F'","R' D B' D2 B D' R","R' D2 B' D2 B R","F D2 F' D F D F'","F D' L D2 L' D F'","B D' F D B' D' F'","F D2 L D2 L' F'","F D' L D L' D F'","F L D2 L' D2 F'","R' B' D2 B D2 R"],["D'","F L D L' D' F'","D2","L B D B' D' L'","D","B' L' D' L D B","","D F L D L' D' F'"],["F' D2 F D F' D F","F' D' R' D R F","F' R' D' R D F","B D R D' R' B'","","D B' D' L' D L B"],["D F D F' D F D2 F'","F' U2 B' R' B U2 F' L F' L' F'","","D2 L D L2 F L F2 D F"],["L B' L' F L B L' F'","F2 U F' D2 F U' F' D2 F'","D' F' D B D' F D B'","F L2 F R2 F' L2 F R2 F2","D B D' F' D B' D' F","R F L F' R' F L' F'","","D2 B L' U2 L B' D2 B L' U2 L B'","D2 F R' U2 R F' D2 F R' U2 R F'","R F L' F' R' F L F'","D F D' B' D F' D' B","L2 F2 L' B2 L F2 L' B2 L'"],["L B R' B' L' B R B'","R' B R F' R' B' R F","L D2 L U L' D2 L U' L2","","D2 B' D2 F D' L2 F L2 F' D2 B D' F'","D2 F' R' F R2 B' D2 B D2 R' F D2 F'","L B L' F L B' L' F'","F' D2 F' U' F D2 F' U F2","D' B' D F D' B D F'"],["","D2 F' L U2 L' F D2 F' L U2 L' F","D2 B' R U2 R' B D2 B' R U2 R' B"]];async function Y(){let e=await p["3x3x3"].kpuzzle(),r=e.defaultPattern();for(let t of X)r=r.applyAlg(F.fromString(w(t)));return V(e,r)?r:Y()}async function U(e){return i(),F.fromString((await h).solvePattern(Q(e)))}async function z(){return U(await Y())}async function Z(){(await h).initialize()}var Ee=[[null,"Rw","Rw2","Rw'","Fw","Fw'"],[null,"Dw","Dw2","Dw'"]];async function ee(){return v(await z(),Ee)}var T=a(()=>import("./search-dynamic-solve-4x4x4-4MBY7IK6.js"));var Ke=[[null,"x","x2","x'","z","z'"],[null,"y","y2","y'"]];async function re(){return(await T).initialize()}async function E(){return i(),(await T).random444Scramble()}async function te(){return v(await E(),Ke)}var oe=a(()=>import("./search-dynamic-solve-fto-QGJYB2YQ.js"));var Yr=a(()=>import("./search-dynamic-sgs-unofficial-NFIV4YTT.js"));async function ne(){return i(),new F(await(await oe).randomFTOScrambleString())}var ae=a(()=>import("./search-dynamic-solve-kilominx-KBHTQM2P.js"));async function ie(){return i(),(await ae).getRandomKilominxScramble()}var me=a(()=>import("./search-dynamic-solve-master_tetraminx-P4WQDUIY.js"));async function se(){return i(),new F(await(await me).randomMasterTetraminxScrambleString())}var Ae=2,le=null;async function ke(){return le||(le=(async()=>{let e=await(await l).cachedSGSDataMegaminx();return new d(await(await l).cachedMegaminxKPuzzleWithoutMO(),e,["U","R","F","L","BR","BL","FR","FL","DR","DL","B","D"])})())}async function ce(e){i();let r=await ke(),t=structuredClone(e.patternData);t.CENTERS.orientation=new Array(12).fill(0);let o=new m(await(await l).cachedMegaminxKPuzzleWithoutMO(),t);return await r.solve(o,Ae,()=>5)}var Ce=3,pe=null;async function Me(){return pe||(pe=(async()=>{let e=await(await l).sgsDataPyraminx();return new d(await p.pyraminx.kpuzzle(),e,"RLUB".split(""))})())}async function fe(e){return i(),await(await Me()).solve(e,Ce,()=>3)}var ue=a(()=>import("./search-dynamic-sgs-unofficial-NFIV4YTT.js"));async function De(){return i(),(await ue).getRandomRediCubeScramble()}var Oe=3,Fe=null;async function Ge(){return Fe||(Fe=(async()=>{let e=await(await l).sgsDataSkewb();return new d(await(await l).skewbKPuzzleWithoutMOCached(),e,"RLUB".split(""))})())}async function Ie(e){return new m(await(await l).skewbKPuzzleWithoutMOCached(),{CORNERS:e.patternData.CORNERS,CENTERS:{pieces:e.patternData.CENTERS.pieces,orientation:new Array(6).fill(0)}})}async function K(e){return i(),await(await Ge()).solve(await Ie(e),Oe,o=>o.family==="y"?4:3)}async function Ne(){return x(await(await l).skewbKPuzzleWithoutMOCached(),await(await l).sgsDataSkewbFixedCorner())}async function de(){return K(await Ne())}var Se=a(()=>import("./search-dynamic-solve-sq1-TVNDACZG.js"));async function Re(){return F.fromString(await(await Se).getRandomSquare1ScrambleString())}var We=1e3;N(!0);var ge=!0;function _e(e){ge=e}function Pe(){return(typeof performance>"u"?Date:performance).now()}async function c(e,r,t){if(!ge)return r();let o=Pe(),n=r();n?.then&&await n;let s=Pe();return console.warn(`${e}${t?.isPrefetch?" (prefetched)":""}: ${Math.round(s-o)}ms`),n}var A=new Map,k=null;async function Be(e,r){switch(e){case"222":case"555":case"666":case"777":case"333fm":case"minx":case"pyram":case"555bf":return c(`wasmRandomScrambleForEvent(${JSON.stringify(e)})`,()=>_(e),{isPrefetch:r?.isPrefetch});case"333":case"333oh":case"333ft":return c("random333Scramble",z,{isPrefetch:r?.isPrefetch});case"333bf":case"333mb":return c("random333OrientedScramble",ee);case"444":return c("random444Scramble",E,{isPrefetch:r?.isPrefetch});case"444bf":return c("random444OrientedScramble",te);case"skewb":return c("randomSkewbFixedCornerScramble",de);case"sq1":return c("getRandomSquare1Scramble",Re,{isPrefetch:r?.isPrefetch});case"fto":return c("randomFTOScramble",ne,{isPrefetch:r?.isPrefetch});case"master_tetraminx":return c("randomMasterTetraminxScramble",se);case"kilominx":return c("randomKilominxScramble",ie,{isPrefetch:r?.isPrefetch});case"redi_cube":return c("randomRediCubeScramble",De,{isPrefetch:r?.isPrefetch});default:throw new Error(`unsupported event: ${e}`)}}var C="auto",qe={initialize:async e=>{switch(e){case"222":return c("preInitialize222",$);case"333":case"333oh":case"333ft":return c("initialize333",Z);case"444":return c("initialize444",re);default:throw new Error(`unsupported event: ${e}`)}},setScramblePrefetchLevel(e){C=e},randomScrambleForEvent:async e=>{let r=A.get(e);return r?A.delete(e):r=Be(e),C!=="none"&&r.then(()=>{k&&clearTimeout(k),k=setTimeout(()=>{A.set(e,Be(e,{isPrefetch:!0}))},C==="immediate"?0:We)}),r},randomScrambleStringForEvent:async e=>(await qe.randomScrambleForEvent(e)).toString(),solve333ToString:async e=>{let r=new m(await p["3x3x3"].kpuzzle(),e);return(await U(r)).toString()},solve222ToString:async e=>{let r=new m(await p["2x2x2"].kpuzzle(),e);return(await H(r)).toString()},solveSkewbToString:async e=>{let r=new m(await p.skewb.kpuzzle(),e);return(await K(r)).toString()},solvePyraminxToString:async e=>{let r=new m(await p.pyraminx.kpuzzle(),e);return(await fe(r)).toString()},solveMegaminxToString:async e=>{let r=new m(await p.megaminx.kpuzzle(),e);return(await ce(r)).toString()},setDebugMeasurePerf:async e=>{_e(e)},solveTwsearchToString:async(e,r,t)=>{let o=new M(e),n=new m(o,r);return(await b(e,n,t)).toString()}};export{z as a,qe as b};
//# sourceMappingURL=chunk-4G4HFLZ5.js.map