Safe Haskell | None |
---|---|
Language | Haskell2010 |
Move and cube definitions
- newtype MoveTag m a = MoveTag {
- unMoveTag :: a
- data Move18
- data Move10
- u :: Cube
- r :: Cube
- f :: Cube
- d :: Cube
- l :: Cube
- b :: Cube
- move6 :: [Cube]
- move18Names :: MoveTag Move18 [ElemMove]
- move18 :: MoveTag Move18 [Cube]
- move10Names :: MoveTag Move10 [ElemMove]
- move10 :: MoveTag Move10 [Cube]
- move6' :: [Cube]
- surf3 :: Cube
- sf2 :: Cube
- su4 :: Cube
- slr2 :: Cube
- data Symmetry sym = Symmetry {
- symAsCube :: Cube
- symAsMovePerm :: [Int]
- data Symmetric sym a
- data UDFix
- rawMoveSym :: Symmetry sym -> [a] -> [a]
- rawCast :: RawCoord a -> RawCoord (Symmetric sym a)
- symmetry_urf3 :: Symmetry sym
- symmetry_urf3' :: Symmetry sym
- mkSymmetry :: Cube -> Symmetry sym
- newtype SymCode s = SymCode {}
- symDecode :: SymCode s -> Cube
- sym16Codes :: [SymCode UDFix]
- sym16 :: [Symmetry UDFix]
- sym16' :: [Cube]
- sym48Codes :: [SymCode CubeSyms]
- sym48 :: [Symmetry CubeSyms]
- sym48' :: [Cube]
- composeSym :: SymCode sym -> SymCode sym -> SymCode sym
- invertSym :: SymCode sym -> SymCode sym
- randomCube :: MonadRandom m => m Cube
- data BasicMove
- oppositeAndGT :: BasicMove -> BasicMove -> Bool
- type ElemMove = (Int, BasicMove)
- type Move = [ElemMove]
- reduceMove :: Move -> Move
- nubMove :: [Move] -> [Move]
- moveToCube :: Move -> Cube
- moveToString :: Move -> String
- stringToMove :: String -> Either Char Move
Documentation
Generating moves
18 elementary moves
move18 :: MoveTag Move18 [Cube] Source
List of the 18 elementary moves.
move18 = [u, u <>^ 2, u <>^ 3, ...]
Other subgroups
Symmetries
rawMoveSym :: Symmetry sym -> [a] -> [a] Source
symmetry_urf3 :: Symmetry sym Source
symmetry_urf3' :: Symmetry sym Source
mkSymmetry :: Cube -> Symmetry sym Source
Index of a symmetry
sym16Codes :: [SymCode UDFix] Source
sym48Codes :: [SymCode CubeSyms] Source
All symmetries of the whole cube
composeSym :: SymCode sym -> SymCode sym -> SymCode sym Source
Random cube/move
randomCube :: MonadRandom m => m Cube Source
Move algebra
Minimal set of moves
oppositeAndGT :: BasicMove -> BasicMove -> Bool Source
Relation between faces
oppositeAndGT X Y == True
if X and Y are opposite faces and X > Y
.
reduceMove :: Move -> Move Source
Perform "trivial" reductions of the move sequence.
Conversions
moveToCube :: Move -> Cube Source
Scramble the solved cube.
moveToString :: Move -> String Source
Show the move sequence.