[Jprogramming] 1D Rubik's Cube
David Vaughan
purpleblues13 at googlemail.com
Thu Oct 20 22:36:25 HKT 2011
I saw a script for a 1D Rubik's cube on the wiki but I couldn't run it - I seem to be missing the appropriate files - so I decided to write my own one to be used in the browser. I am trying to allow you to see the move you've made or choose not to see it. The idea is that:
0 move 1
moves the cube but doesn't show you while:
1 move 1
1 5 4 3 2 6
The default is 1 (based on my understanding of 1&$:).
move=: 1&$: : (4 :0) NB. x is 0 or 1 to show cube
select. y
case. 0 do.
cube=: (_2{. cube) ,~ |. (2-~#cube) {. cube NB. rotate first section
case. 1 do.
cube=: ({:cube) ,~ ({.cube) , |. (2-~#cube) {. }.cube NB. rotate middle section
case. 2 do.
cube=: (2{. cube) , |. (-2-~#cube) {. cube NB. rotate end section
end.
if. x=1 do. cube end. NB. display cube
)
The main reason I want to do this is so that my shuffle verb can shuffle the row without displaying every move its made - only showing the last:
shuffle=: 3 :'(((y-1)$0),1) move"0 ] 3|?~y'
It would seem that in the case statements, whenever anything is assigned, it is also displayed - can this be avoided? Also I would appreciate it if anyone could clarify how the $: works here (I copied the idea from a verb somewhere in the wiki).
Thanks.
More information about the Programming
mailing list