- 最后登录
- 2024-11-20
- 在线时间
- 3125 小时
- 阅读权限
- 40
- 注册时间
- 2005-12-13
- 积分
- 2562
- 帖子
- 2236
- 精华
- 1
- UID
- 4575
- 兴趣爱好
- 其它
- 积分
- 2562
- 帖子
- 2236
- 精华
- 1
- UID
- 4575
- 兴趣爱好
- 其它
|
********************************************************************************
*** ACube 2.5 *** The edition of my dissapointing by your support :-( ******
********************************************************************************
Program for searching optimal and suboptimal sequences of moves which transform
the Cube into a solved state (even partially).
================================================================================
Please note:
--------------
This program is not associated with or sponsored by the owner of the Rubik's
Cube trademark. This owner is Seven Towns Ltd. (http://rubiks.com)
The program and the source code are freeware.
Please, read carefully the following text in order to use all advantages of
the ACube program...
If you have any questions, e-mail me.
About Author
--------------
This program was my university project at the Technical University Prague
faculty of elektrotechnics, department of computer science in 2001.
Programmed by Jelinek Josef <gloom@email.cz>
Other information can be found at http://cube.misto.cz.
The program is created in GNU C++ (EGCS). It doesn't use any
system-dependent features.
Requirements
--------------
- MS DOS with DPMI, Win9x, WinNT, Win2000 or an OS with C++ compiler
- some more memory (64MB should be enough (maybe even 32MB))
- interest in the cube
Versions and Bugs
-------------------
2.5 08/28/2001 The fixed version (could be bug-free now :-))
the serious bug when you specified 2, 3, 4 or 5
unoriented edges then the program did not work is fixed.
I cannot believe that nobody meets this bug
because I have not got any mail about this!!
Or am I developing this program only for me?
With that bug the program was a little useless
so is it useless now too or what?
Also saving of the current session and then
possibility to continue somewhere else
was been added (key-code generating)
2.1 ??/??/2001 The next version
Solving of the incomplete cube added!!
2.0 ??/??/2000 The first public version
Many things was added
1.x ??/??/???? Simple 2-phase algorithm
To do
-------
- Automatic generation of cube states with specified propperties
(for example: 'Last layer orientations' or 'Middle layer edge inserting
when solving the first two layers' or anything else)
- Adding of the Reid's optimal algorithm (I have enough memory now)
Introduction and the Main Purpose
-----------------------------------
This program tries to help you when searching for the optimal sequences
for transforming special cube state to another state which is nearer
to solved one. So it helps a man beeing able to solve the Cube
step by step with the low number of turns.
寻找使魔方从一个状态到另一个状态的最佳方法,使人能节省转数一步一步解魔方。
It also helps corner-starter cubers because it can output sequences in
center slice-move format and it can optimize for slice-turn metrics.
The program can find optimal and suboptimal sequences in one of three merics:
- quarter-turn (only F, F', R, R',... counted as one turn)
转180度算两下
- face-turn (plus F2, R2,... counted as one turn)
- slice-turn (plus R L' (or Rs), R' L (or Ls), R2 L2 (or Rs2),...
counted as one turn)
转中间,即同相转相对的两面后再把整个魔方转回,只算一次
Controls
----------
The program is started from DOS command line. It needs the DPMI server
(Win 9x have one in themselves) for running. Or you can compile the sources
(eg. g++ -o ACube -O3 -s *.cpp) on another OS and run there.
There are an optional command-line arguments in the program:
q for 'quarter-turn' metrics
f for 'face-turn' metrics
s for 'slice-turn' metrics
a for searching all solutions with the current shortest length
o for searching only for optimal sequences in the given metrics
c for slice-turns (Rs, Us,...)
eg. Rs is R L' followed by the rotation of the whole cube
in the opposite direction then that slice-turn so
only middle layer is moved as the result
Rs corresponds to R L' plus cube rotation
Rs2 corresponds to R2 L2 plus cube rotation
Rs' corresponds to R' L plus cube rotation
...
Examples:
$> ACube q a o
- use quarter-turn metrics and search for all optimal sequences
$> Acube s c
- find me some nice moves and I like slice-turns so use them too
$> Acube s c a o
- I need very short moves and I prefer slice-turns, show me all
After the starting of the program you will be prompted to input
a cube state that program will try to solve.
The input is in this form:
UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR
This configuration represents the solved Cube (similar to the Reid's
program).
The doubles are edges and the triples are corners.
You can also use some simplifications for incomplete cube.
Instead of an edge or a corner you can use:
! 全对this cubie is in its right orientation and place
@! 位置对,色向未知this cubie is in its right place but has unknown orientation
-! 位置对,色向角块逆时针转,边块就是不对this cubie is in its right place but flipped (edge) or counter-clockwise
twisted
+! 位置对,色向角块顺时针转as -! but only for corners and it is clockwise twisted
? 色向对this cubie is oriented but is not known
@? 都不对this cubie is neither oriented nor known
-? this cubie is flipped (edge) or counter-clockwise twisted (corner) than
cubie on the solved Cube in this position but is not known
+? as -? but only for corners and it is clockwise twisted
For orientation of the cubies is important only the first letter of the triple.
So UFR is equivalent of URF but not of eg. FUR.
You can also precede the double or triple by '+', '-', or '@'. It affects
the orientation of given cubie in the known way.
(色向不对The @ character is very useful here!)
You can also use some shortcuts and commands:
!! is the same as repeating '!' to the end of edges or corners
@!! is the same as repeating '@!' to the end of edges or corners
?? is the same as repeating '!' to the end of edges or corners
@?? is the same as repeating '@!' to the end of edges or corners
Q 退出is the end of the program
K is the input of the key-code generated on Ctrl-C key press
N is a canceling of the input and restarting of the input
When the program is computing a solution you can press Ctrl-C and
key-code of the current state of a computation is printed and
you will be prompter for another Cube.
The key-code can be then used to restore the computation from
the point of termination (K command).
Examples:
!! !! solved cube
-? -? -? -? !! !! flip upper edges and do not care of their positions
? ? ? ? !! -? -? -? ? !! twist 3 corners clockwise and leave 4 edges oriented
(do not care of their positions)
! ! ! ! ! ! ! ! -! -! -! -! !! flip edges of the middle layer in their places
? ? ? ? !! -! -! -! !! known 'Sune'-like state
! ! ! ! @? @? @? @? !! +! ! ! ! @?? twist corner and don't care about bottom
Important note for orientation understanding!
-----------------------------------------------
A Corner is correctly oriented if its facelet with the color of the top
or bottom cube face center is facing up or down.
Else it is twisted (clockwise or counter-clockwise) off this possition.
An edge is fliped if it is on the front resp. back face and you proceed
F or F' resp. B or B'.
Other situations leaves the edge in previous orientation.
The solved cube has all corners and edges correctly oriented.
Read the previous note more than once to understand it...
Output of Program
-------------------
The program outputs found sequences to the standard output and other
information to the standard error output.
Output is in standard cube-sequence format. Single quote means inverse and
'2' means double turn.
's' means slice move and appears only if program option 'c' is specified.
(This is true since version 2.5!)
If center slice-turns are allowed then
eg. Rs means that you perform R L' and then turn the whole cube in opposite
direction than is R and L' (it is turn of the slice between R and L layers).
There are lengths in the different metrics in the parentheses at the end of
the found sequence.
Asterisk(*表示最佳方法) indicates that sequence is surely optimal in the given metrics.
Credits
---------
I'd like to thank following people:
Erno Rubik for the Cube
Herbert Kociemba for his algorithm and programs
Michael Reid for his programs
David Singmaster for many other things
and many other cubists (especially on the Yahoo Speed solving club)...
DOS界面。可以输入不确定的块,寻找满足不破坏某些块,并把指定块复原的方法。获得分段解法的最佳方法。
也能求完整魔方的解。
这是Acube软件的英文说明,哪位懂英文的能帮我翻译成中文? |
|