Rubik's Cube Simulator and Solver (Scripts) Publisher's description
from Joren Heit
This program allows the user to generate a Rubik's Cube in a number of ways
This program allows the user to generate a Rubik's Cube in a number of ways:
1. Randomly scrambled
2. With predefined scramble
3. By reading state from webcam images
4. By manually inputting all fields
After having generated a cube, it can be manipulated using two types of commands. The first is the original Rubik's Code where the face is specified by F,B,L,R,U,D to realize a clockwise rotation of this face. An additional ' or 2 will respectively invert (counterclockwise) or double (180 degrees) the move. However, this only works on a 3x3x3 cube. Cubes of higher order can be manipulated by specifying the rotation axis, the row to rotate and the number of rotations, e.g. 'x23'.
Lastly, the program contains a solving mechanism that follows a beginners method:
1. Form a cross (correct edges)
2. Place + orient cornerpieces
3. Complete second layer
4. Make a cross on the third layer
5. Place and orient cornerpieces
6. Permute edge pieces to complete cube
This is not a very efficient way but it will solve the cube in most cases.
Remember that this is the very first beta-version, so any comments on bugs or other stuff that can be improved will be highly appreciated!
DESCRIPTION OF INCLUDED FUNCTIONS/FILES:
algrot.m - calculates how an algorithm changes under rotation of the cube.
digrub.fig - GUI figure main program
digrub.m - GUIDE-generated m-file to go with digrub.fig.
editstate.fig - GUI figure for manual input program
editstate.m - GUIDE-generated m-file to go with editstate.fig.
findpeeks.m - Peek-finder that is used to find the cube's position in a webcam image.
move2rub.m - converts a move of the form 'x11' to Rubik's Code 'B'.
rub2move.m - converts a move in Rubik's code to axile 'x11' form.
rubcross.m - searches for a cross on the cube.
rubgen.m - generates a cube
rubinfo.m - returns information about the cube state
rubopt.m - optimizes a move-sequence
ruborient.m - orients the cube
rubplot.m - plot a 3D image of the cube
rubrot.m - apply a move to the cube
rubrot2.m - rotate the entire cube
rubsolve.m - solve the cube
System Requirements:MATLAB 7.10 (2010a)
Program Release Status: New Release
Program Install Support: Install and Uninstall