Rubik's Cube solver for fully and/or partially defined cubes
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ACube
ACubeTest
ToDo
README

README

ACube 4.0

alpha test version

by Josef Jelinek <josef.jelinek@gmail.com>

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.

[1]  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

[2]  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

[3]  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.

[4]  Set the metric. I basically just use qtm, stm, or ftm.

  4: qtm↵
     quarter turn metric

[5]  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.

[6]  Toggling between finding a bunch (hopefully all) of the optimal solutions
     or just the first optimal solution

[7]  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.

[9]  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