Back last November, Dave Eaton <devo@vnet.ibm.com> wrote
Is there a program that allows you to type in Singmaster-style moves
and then prints out the resultant state, something like this (not
actual results):INPUT: (R U2 R3 U2)2 OUTPUT: (fur,drb,rdf) (fr,dr)
I can't recall whether anyone offered such a thing or not. I think
there were some related programs, but nothing quite like this.
Anyway, there is now. :-)
Sample run:
% twist > .set SLICER CUBER R' L `SLICER' defined > (SLICER U)4 Cube: u b u l u u u u u l u l f f f r r r b u b l l l f f f r r r b b b l l l f d f r r r b d b d f d d d d d b d Cycles: (ub)+ (ul)+ (fd)+ (bd)+ Already centered > .set WRENCH LAST `WRENCH' defined > WRENCH U WRENCH U' Cube: u b u u u u u f u l l l f u f r r r b u b l l l f f f r r r b b b l l l f f f r r r b b b d d d d d d d d d Cycles: (ub)+ (uf)+ Already centered > (R U2 R3 U2)2 Cube: b u d f u u f u u r r r u f b l l r f b u l l l f f u r r r b b b l l l f f f l r r b b b d d u d d d d d d Cycles: (ul,ur,fr) (ulb,urf,flu,frd,bru) Already centered > SLICER U Cube: u u u f f f u u u f d f r r r b u b l l l l l l f d f r r r b u b l l l f d f r r r b u b d b d d b d d b d Cycles: (u,b,d,f) (ub,bd,df,lu)+ (ur,uf)+ (ulb,ubr,urf,ufl) Centred: (ul,fu,fr,dr,br,ur,fd,fl,dl,bl) (ulb,fur,lfd,ldb)+ (ubr,frd,drb)+ (ufl)+ > WRENCH CUBEU2 CUBEL WRENCH' (CUBEU2 CUBEL)' Cube: u u u l u u u u u l u l f f f r r r b b b l l l f f r f r r b b b l l l f f f r r r b b b d d d d d d d d d Cycles: (ul)+ (fr)+ Already centered >
The program is up for anonymous ftp from collatz.mcrcim.mcgill.edu in
/games/cube/twist.c. You have not a prayer of compiling it under
anything but gcc as it stands, though I think it would be relatively
easy (but perhaps rather ugly) to turn it into vanilla C. But with gcc
2.6.3, it builds fine for me on a Sun under SunOS 4.1.3 and a NeXT
under NeXT release 2.1, and probably most other machines too.
Read the comment header for a fuller description of its capabilities.
der Mouse
mouse@collatz.mcrcim.mcgill.edu