Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Rubik's Cube solver for fully and/or partially defined cubes
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
ACube 4.0 alpha test version by Josef Jelinek <firstname.lastname@example.org> Forum for the project is located at http://www.speedsolving.com/forum/showthread.php?32153 Changes in v4.0a7 - Added experimental optimal - one phase solver mode Changes in v4.0a6 - Fixed turn pruning bug - Caching a few tables to a local directory added Changes in v4.0a5 - Added new shortcut symbols to cycle notation - Added checking for valid configuration (parity and orientation checks) - Joining phases A and B refined How to use aCube4 (thanks to Stachu Korick) Open it by cd-ing to the file and opening with java -jar acube.jar or whatever teh filename is. You should see a bunch of blah blah text come up.  This is to specify the cube's current state in the full positional notation. The notation is identical to what program shows as the curent state. It differs from aCube3 notation in that it does not support "!" shortcuts. It uses @ prefix for ignoring the orientation, ? for unknown position. Combinations are possible ("@?", "@UR", "-?", "+?", ...) 1: UF UL UB UR DF DR DB DL FR FL BR BL URB UFR UBL ULF DRF DFL DLB DBR↵ tperm 1: -? -? -? -? DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR↵ flip top 4 edges, don't care about permutation  This defines the cube's current state. () is to define cycle notations.  is to detail pieces that you don't care about the positions of. [UF UL D*] means "I don't care about the permutation of UF, UL, and any of the bottom edges and corners." Use U* for all top pieces, UF* for all top-front pieces (UFR UF UFL); M, E, S, U, F, ... for all middle edges in the corresponding layers UF? is to say "hey, I don't care about the orientation of this" With this, UF- means "flip this" and UFR+ means twist this clockwise, UFR- for counter-clockwise. 2: (UL UR) (UFR URB)↵ tperm 2: (UL UR) (UFR URB) UF? UB?↵ tperm, not caring about the orientation of UF and UB 2: (UL UR) (UFR URB) [DF DL DR DB]↵ Tperm, not caring about the EP of the d-layer 2: UFR- URB+ UL- UF-↵ twist two corners, flip two edges 2: [UL UR UF UB] UL- UR- UF- UB-↵ flip top 4 edges, don't care about permutation  Enter allowed turns. Like, everything is supported as of now. 3: R* U* D*↵ all of the following can be used: R R' R2 D D' D2 U U' U2 3: R U D↵ can be used: R U D. So, no R' or any of that nonsense. You should know that so called wide turns r = R M', f = S F, u = U E' etc. e, s, m are rotations with the same direction as M, E, S, but for the entire cube.  Set the metric. I basically just use qtm, stm, or ftm. 4: qtm↵ quarter turn metric  Max length. Simply, "I don't want to bother with algs more than this number of moves in the chosen metric" 5: 19↵ Don't use more than 19 moves. No way.  Toggling between finding a bunch (hopefully all) of the optimal solutions or just the first optimal solution  Toggling between optimal and sub-optimal (two-phase) solver. Optimal solver uses more memory and takes more time to build its tables, but it can get to optimal solutions faster.  Once you hit this guy, all of your options should be reset. [ ] This is just ↵ or hitting the enter button. Runs the solver with the parameters specified using other options There are two ways to input parameters for the options a) type the option number, hit enter, type parameters, hit enter, b) type the option number followed by ":" and parameters and hit enter, where the second one is more convenient to keep command history in a console window