Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype MoveTag m a = MoveTag {
- unMoveTag :: a
- data Move18
- data Move10
- move18Names :: MoveTag Move18 [ElemMove]
- move10Names :: MoveTag Move10 [ElemMove]
- u_ :: Cube
- u :: Cube
- l :: Cube
- f :: Cube
- r :: Cube
- b :: Cube
- d :: Cube
- move6 :: [Cube]
- move18 :: MoveTag Move18 [Cube]
- move6' :: [Cube]
- move10 :: MoveTag Move10 [Cube]
- surf3 :: Cube
- sf2 :: Cube
- su4 :: Cube
- slr2 :: Cube
- newtype SymCode s = SymCode {}
- data Symmetry sym = Symmetry {
- symAsCube :: Cube
- symAsMovePerm :: [Int]
- data Symmetric sym a
- rawMoveSym :: Symmetry sym -> [a] -> [a]
- rawCast :: RawCoord a -> RawCoord (Symmetric sym a)
- symmetry_urf3 :: Symmetry sym
- symmetry_urf3' :: Symmetry sym
- mkSymmetry :: Cube -> Symmetry sym
- symDecode :: SymCode s -> Cube
- data UDFix
- data CubeSyms
- 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
- data BasicMove
- type ElemMove = (Int, BasicMove)
- type Move = [ElemMove]
- consMove :: ElemMove -> Move -> Move
- oppositeAndGT :: BasicMove -> BasicMove -> Bool
- reduceMove :: Move -> Move
- moveToCube :: Move -> Cube
- moveToCube' :: Move -> Cube
- basicMoveToCube :: BasicMove -> Cube
- elemMoveToCube :: ElemMove -> Cube
- moveToString :: Move -> String
- decodeMove :: Char -> Maybe BasicMove
- stringToMove :: String -> Either Char Move
- nubMove :: [Move] -> [Move]
- coordToCube :: RawCoord CornerPermu -> RawCoord CornerOrien -> RawCoord EdgePermu -> RawCoord EdgeOrien -> Cube
- randomCube :: MonadRandom m => m Cube
Documentation
move18 :: MoveTag Move18 [Cube] Source
List of the 18 elementary moves.
move18 = [u, u <>^ 2, u <>^ 3, ...]
Index of a symmetry
rawMoveSym :: Symmetry sym -> [a] -> [a] Source
symmetry_urf3 :: Symmetry sym Source
symmetry_urf3' :: Symmetry sym Source
mkSymmetry :: Cube -> Symmetry sym Source
sym16Codes :: [SymCode UDFix] Source
sym48Codes :: [SymCode CubeSyms] Source
All symmetries of the whole cube
composeSym :: SymCode sym -> SymCode sym -> SymCode sym Source
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.
moveToCube :: Move -> Cube Source
Scramble the solved cube.
moveToCube' :: Move -> Cube Source
basicMoveToCube :: BasicMove -> Cube Source
elemMoveToCube :: ElemMove -> Cube Source
moveToString :: Move -> String Source
Show the move sequence.
decodeMove :: Char -> Maybe BasicMove Source
Associates s character in ULFRBD
or the same in lowercase
to a generating move.
stringToMove :: String -> Either Char Move Source
Reads a space-free sequence of moves. If the string is incorrectly formatted, the first wrong character is returned.
([ulfrbd][23']?)*
Random cube
coordToCube :: RawCoord CornerPermu -> RawCoord CornerOrien -> RawCoord EdgePermu -> RawCoord EdgeOrien -> Cube Source
Decode a whole Cube
from coordinates.
randomCube :: MonadRandom m => m Cube Source