scramble-generator
Version:
Generate scrambles for Rubik's cubes
1 lines • 2.79 kB
JavaScript
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.ScrambleGenerator=r():e.ScrambleGenerator=r()}(this,function(){return function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var t={};return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s=1)}([function(e,r,t){"use strict";function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}Object.defineProperty(r,"__esModule",{value:!0});var o=r.Axes={X:"X",Y:"Y",Z:"Z"},i=r.FaceAxisInfo={R:o.X,L:o.X,U:o.Y,D:o.Y,F:o.Z,B:o.Z},u=r.FaceList=Object.keys(i),a=r.Faces=u.reduce(function(e,r){return Object.assign(e,n({},r,r))},{});r.Modifiers={INVERTED:"'",DOUBLE:"2",WIDE:"w"},r.createMove=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.face,t=void 0===r?a.R:r,n=e.inverted,o=void 0!==n&&n,i=e.double,u=void 0!==i&&i,c=e.layerCount,f=void 0===c?1:c;return{face:t,inverted:!u&&o,double:u,layerCount:f}}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.Faces=r.formatScramble=void 0;var n=t(0);Object.defineProperty(r,"Faces",{enumerable:!0,get:function(){return n.Faces}});var o=t(2),i=t(3),u=function(e){return e&&e.__esModule?e:{default:e}}(i),a=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.cubeSize,t=void 0===r?3:r,i=e.length,a=void 0===i?20*(t-2)||8:i,c=e.formatted,f=void 0===c||c,d=[],l=Math.floor(t/2),s=void 0,v=0;v<a;v++){var p=n.FaceList.filter(function(e){return n.FaceAxisInfo[e]!==s}),b=(0,o.randomInRange)(0,p.length),y=p[b];s=n.FaceAxisInfo[y],d.push((0,n.createMove)({face:y,inverted:(0,o.coinFlip)(),double:(0,o.coinFlip)(),layerCount:(0,o.randomInRange)(1,l+1)}))}return f?(0,u.default)(d):d};r.formatScramble=u.default,r.default=a},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=r.randomInRange=function(e,r){return Math.floor(Math.random()*(r-e)+e)};r.coinFlip=function(){return!!n(0,2)}},function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t(0),o=function(e){return Array.isArray(e)?e.filter(function(e){return n.Faces[e.face]}).map(function(e){var r=e.double,t=e.inverted,o=e.layerCount,i=e.face,u="";return o>1&&(u+=n.Modifiers.WIDE),r?u+=n.Modifiers.DOUBLE:t&&(u+=n.Modifiers.INVERTED),""+(o>2?o:"")+i+u}).join(" "):""};r.default=o}])});