Skip to content

Releases: Owstin/scrambow

Optimal clock scrambles (again)

03 Aug 01:42
Compare
Choose a tag to compare
  • Added back the optimal clock scrambler from cstimer

I thought the scrambler was the way old one from the original jsss code, but that was replaced in 1.6.0 and was removed in 1.8.0 😵.
Thanks again to @JoshM2 for adding this scrambler back in.

Types that generate optimal clock scrambles are:

  • clockoptimal
  • clock-optimal
  • clock-o

Better Clock scrambles

13 Jul 02:22
b5ae1f7
Compare
Choose a tag to compare

For years I ignored the fact the the clock scrambles were different from regular WCA scrambles. No longer.

Big thanks to @JoshM2 for taking the time to update this scrambler. 🥳

ES6 and custom scramblers

03 Oct 01:32
a022626
Compare
Choose a tag to compare

All imports and exports are now done using the es6 syntax.

Custom scramblers can now be added using registerCustomScrambler.
Only prereq is that the scrambler needs to have the following methods present: initialize, setRandomSource, setScrambleLength, getRandomScramble. Strictly speaking, only getRandomScramble is required, but Scrambow can call the other methods so they need to exist.

example from readme:

const myCustomScrambler = (() => {
  const initialize = () => { /* do nothing */ };
  const setRandomSource = () => { /* do nothing */ };
  const setScrambleLength = () => { /* do nothing */ };
  const getRandomScramble = () => ({ scramble_string: 'cool scramble' });

  return {
    initialize,
    setRandomSource,
    setScrambleLength,
    getRandomScramble
  };
})();

const scrambow = new Scrambow();
scrambow.registerCustomScrambler('myCustomScrambler', myCustomScrambler)

scrambow.setType('myCustomScrambler').get(); // { scramble_string: 'cool scramble' }

The syntax of the scrambler isn't strict either. They could be simple objects, classes, or iifes like the example.

WCA notation for clock scrambler

21 Jul 03:47
989bcda
Compare
Choose a tag to compare
scrambow -t clock
# UR4+ DL2+ UL4+ R2+ D6+ L3- ALL1- y2 DR1- U1+ D5+ L4- UR DR DL UL
  • Default scramble length for Fto is now 30

Big thanks to @coder13 for the new clock scrambler!

New Fto scrambler and WCA notation for big cubes

20 Jul 23:34
Compare
Choose a tag to compare
# cli usage
scrambow -t fto
// js usage
const scrambler = new Scrambow('fto');
scrambler.get();
scrambow -t 666
# 3Uw Uw Fw D' R2 3Fw Uw' 3Rw' 3Uw' Uw Fw 3Uw Fw2 Rw 3Uw' Uw' B2 Bw2 Lw2 B2 Bw' 3Fw2 Fw2 F D' U2 Bw2 Lw' Bw2 D U F Rw' 3Uw' 3Fw F2 Dw U L Lw2 Rw Bw2 Uw Fw' Uw' Bw2 D B' Bw' 3Uw 3Rw B Fw' F2 Uw2 Rw D2 Dw' Uw B2 3Rw' U2 R2 Uw 3Fw' L2 Fw2 Uw B Fw

Thanks @coder13 and @saranshgrover!

CMLL update and FMC

04 May 00:33
b0a6da0
Compare
Choose a tag to compare
  • Added CO subset selection to CMLL
# cli usage
# generate 10 scrambles with antisune or sune subset
scmrabow -t cmll -n 10 As S
// js usage
const scrambler = new Scrambow('cmll').setArgs('As', 'S');
scrambler.get();
  • Added FMC scrambler
    • aliases: 333fm, 333fmc, fmc

3x3 restricted move subsets

19 Apr 04:08
2a15c32
Compare
Choose a tag to compare
  • Added 3x3 restricted move scramblers
    • LSE, RU, LU, RUD, and RUL
  • Add aliases for common names
    • 222: 2, 2x2, 2x2x2
    • 333: 3, 3x3, 3x3x3
    • 444: 4, 4x4, 4x4x4
    • 555: 5, 5x5, 5x5x5
    • sq1: square1, square-1, squan
    • minx: mega, megaminx
    • pyram: pyra, praminx
    • lse: mu

Better api for setArgs

18 Apr 04:47
Compare
Choose a tag to compare

Small change from v1.2.0

// 1.2.1
new Scrambow().setType('zz').setArgs('0', '2');

// 1.2.0
new Scrambow().setType('zz').setArgs(['0', '2']);

Random state scramblers with args!

18 Apr 04:42
e20198c
Compare
Choose a tag to compare

New scramblers

  • 2gll
  • cls
  • trizbll
  • tsle
  • zbll
  • zz

New 3x3 scramblers!

17 Apr 22:58
Compare
Choose a tag to compare

New subsets include

  • BLE
  • CMLL
  • CMLL sune
  • edges
  • LCCP
  • LL
  • LSLL
  • PLL
  • NLS
  • PLL
  • WV
  • ZZLL
  • ZZLSLL

Props to @coder13 for Scramblr where I got all of the subset scramblers from