packages feed

hcube 0.1.0 → 0.1.1

raw patch · 15 files changed

+200/−103 lines, 15 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- HCube.Common: fourPagesOnOne :: String -> [String] -> [String]
- HCube.Common: getLine2 :: IO [Char]
- HCube.Common: padL :: Int -> String -> String
- HCube.Common: padR :: Int -> String -> String
- HCube.Common: plShow :: Show a => Int -> a -> String
- HCube.Common: prShow :: Show a => Int -> a -> String
- HCube.Common: twoPagesOnOne :: String -> [String] -> [String]
- HCube.Data: TestNumb :: Int -> TestNumb
- HCube.Data: instance Enum TestNumb
- HCube.Data: instance Eq ActualCube
- HCube.Data: instance Eq Color
- HCube.Data: instance Eq Direction
- HCube.Data: instance Eq Rotation
- HCube.Data: instance Eq Side
- HCube.Data: instance Eq Slab
- HCube.Data: instance Eq TestNumb
- HCube.Data: instance Eq View
- HCube.Data: instance Integral TestNumb
- HCube.Data: instance Num TestNumb
- HCube.Data: instance Ord Side
- HCube.Data: instance Ord TestNumb
- HCube.Data: instance Read ActualCube
- HCube.Data: instance Read Color
- HCube.Data: instance Read Direction
- HCube.Data: instance Read Rotation
- HCube.Data: instance Read Side
- HCube.Data: instance Read Slab
- HCube.Data: instance Read TestNumb
- HCube.Data: instance Read View
- HCube.Data: instance Real TestNumb
- HCube.Data: instance Show ActualCube
- HCube.Data: instance Show Color
- HCube.Data: instance Show Direction
- HCube.Data: instance Show Matrix
- HCube.Data: instance Show Rotation
- HCube.Data: instance Show Side
- HCube.Data: instance Show Slab
- HCube.Data: instance Show TestNumb
- HCube.Data: instance Show View
- HCube.Data: newtype TestNumb
- HCube.Lib: instance Eq Cube
- HCube.Lib: instance Eq Rubik
- HCube.Lib: instance Read Cube
- HCube.Lib: instance Read Rubik
- HCube.Lib: instance Show Cube
- HCube.Lib: instance Show Rubik
- HCube.OrientGroup: instance Eq Orient
- HCube.OrientGroup: instance Group Orient
- HCube.OrientGroup: instance Monoid Orient
- HCube.OrientGroup: instance Read Orient
- HCube.OrientGroup: instance Show Orient
- HCube.Test: instance Arbitrary TestNumb
+ HCube.Cons: fromPhysical :: FilePath -> IO Rubik
+ HCube.Data: instance [safe] Eq ActualCube
+ HCube.Data: instance [safe] Eq Color
+ HCube.Data: instance [safe] Eq Direction
+ HCube.Data: instance [safe] Eq Rotation
+ HCube.Data: instance [safe] Eq Side
+ HCube.Data: instance [safe] Eq Slab
+ HCube.Data: instance [safe] Eq View
+ HCube.Data: instance [safe] Ord Side
+ HCube.Data: instance [safe] Read ActualCube
+ HCube.Data: instance [safe] Read Color
+ HCube.Data: instance [safe] Read Direction
+ HCube.Data: instance [safe] Read Rotation
+ HCube.Data: instance [safe] Read Side
+ HCube.Data: instance [safe] Read Slab
+ HCube.Data: instance [safe] Read View
+ HCube.Data: instance [safe] Show ActualCube
+ HCube.Data: instance [safe] Show Color
+ HCube.Data: instance [safe] Show Direction
+ HCube.Data: instance [safe] Show Matrix
+ HCube.Data: instance [safe] Show Rotation
+ HCube.Data: instance [safe] Show Side
+ HCube.Data: instance [safe] Show Slab
+ HCube.Data: instance [safe] Show View
+ HCube.Lib: instance [safe] Eq Cube
+ HCube.Lib: instance [safe] Eq Rubik
+ HCube.Lib: instance [safe] Read Cube
+ HCube.Lib: instance [safe] Read Rubik
+ HCube.Lib: instance [safe] Show Cube
+ HCube.Lib: instance [safe] Show Rubik
+ HCube.OrientGroup: instance [safe] Eq Orient
+ HCube.OrientGroup: instance [safe] Group Orient
+ HCube.OrientGroup: instance [safe] Monoid Orient
+ HCube.OrientGroup: instance [safe] Read Orient
+ HCube.OrientGroup: instance [safe] Show Orient
+ HCube.Utility: squareRoot :: Int -> Maybe Int
- HCube.Cons: realToVirtual :: Size -> CubeSurf -> Rubik
+ HCube.Cons: realToVirtual :: CubeSurf -> Rubik

Files

HCube/Common.hs view
@@ -1,15 +1,18 @@ ----------------------------------------------------------------------------- --  -- Module      :  HCube.Common--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable -- -- Common utility functions that should not be exported.  -----------------------------------------------------------------------------+{-# LANGUAGE Safe #-}+{-# OPTIONS_HADDOCK hide #-}+ module HCube.Common where  import Control.Monad (liftM)
HCube/Cons.hs view
@@ -1,29 +1,35 @@ ----------------------------------------------------------------------------- -- |  -- Module      :  HCube.Cons--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  -- Provides functions for re-constructing internal data representation -- of virtual cube from a physical cube. ------------------------------------------------------------------------------module HCube.Cons (realToVirtual, consOrient) where+{-# LANGUAGE Safe #-} +module HCube.Cons (realToVirtual, fromPhysical, consOrient) where+ import Data.Monoid-import Data.Maybe (mapMaybe)-import Data.List (sort, mapAccumL)+import Data.Maybe (mapMaybe, fromMaybe)+import Data.List (sort, mapAccumL, nub) import HCube.Data import HCube.Utility import HCube.Lib import HCube.OrientGroup +fromPhysical		:: FilePath -> IO Rubik+fromPhysical fn		= readFile fn >>= f . read where+    f			= return . realToVirtual+ -- | Constructs a virtual cube from a physical cube using CubeSurf.-realToVirtual		:: Size -> CubeSurf -> Rubik-realToVirtual sz ci	= f $ foldr g ([],[],[],[]) $ consCubeInfo sz ci where+realToVirtual		:: CubeSurf -> Rubik+realToVirtual cs	= f $ foldr g ([],[],[],[]) $ consCubeInfo sz cs where     f (cr, ed, ce, hi)	= Rubik sz cr ed ce hi True LeftV []     g (ci, ac, ct) (cr,ed,ce,hi) = h $ length ct where 	h 0	= (cr,ed,ce,i ci ac :hi)@@ -38,6 +44,14 @@     l (v1:v2:_)		= consOrient v1 v2     m []		= 0     m ls		= head ls+    --sz			= fromJust $ getSize cs+    sz			= fromMaybe (error "Improper format") $ getSize cs++getSize			:: CubeSurf -> Maybe Size+getSize cs		= f . nub $ map (squareRoot . length) $ map snd cs where+    f (hd:[])		= hd+    f _			= Nothing+  extractOrientInfo	:: ActualCube -> [(Side,Color)] extractOrientInfo ac	= mapMaybe f [(UpS, up ac), (FrontS, front ac), (DownS, down ac),
HCube/Cube.hs view
@@ -1,20 +1,23 @@------------------------------------------------------------------------------+---------------------------------------------------------------------------- -- |  -- Module      :  HCube.Cube--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  -- Executable of hcube.  -----------------------------------------------------------------------------+{-# LANGUAGE Trustworthy #-}+ module Main where  import System.Environment (getArgs) import Control.Monad (foldM, (>=>)) import Data.Maybe (fromMaybe)+import System.Directory (createDirectoryIfMissing) import HCube.Data import HCube.Lib import HCube.Utility@@ -28,36 +31,21 @@ {- ghci Cube.hs :set args 2+:set args "physicalCubeExample" -} +path			= "store/"+ main			:: IO () main			= getArgs >>= f where-    f args		= runTests+    f args		= createDirectoryIfMissing True path  			  >> putStrLn "enter 'help' for menu"-			  >> loadCube g h+			  >> getCube args 			  >>= render 			  >>= console-			  >>= saveCube h+			  >>= saveCube2 			  >> return () where-        g		= getCubeSize args-	h		= show g ++ "x" ++ show g -main2			:: IO ()-main2			= getArgs >>= f where-    f args		= runTests-			  >> putStrLn "enter 'help' for menu"-			  >> return ( realToVirtual 3 myCube)-			  >>= render-			  >>= console-			  >> return () where-        g		= getCubeSize args-	h		= show g ++ "x" ++ show g--getCubeSize		:: [String] -> Int -getCubeSize 		= f where-    f []		= 3-    f args		= fromMaybe 3 $ maybeRead $ head args - console			:: Rubik -> IO Rubik console			= doM loop f where    f			= (getLine >>= parseCmd ~> processCmd) >=> render @@ -131,29 +119,19 @@     f _ _ 0		= NoCommand     f sl dr nm		= Operation [Rotation sl dr nm] --- On a face record cube color from left to right moving from top to bottom.--- Start with Top face--- Rotate cube so Front face comes to Top--- Top -> Front -> Bottom -> Back -> Top -> Left -> Top -> Right+getCube			:: [String] -> IO Rubik+getCube			= f where+    f []		= loadCube2 3+    f args		= maybe g loadCube2 (maybeRead h) where+    	g		= fromPhysical $ concat [path, h]+	h		= head args  -{--FACE IDs-               1  2  -               3  4  -         1  2  1  2  1  2  -         3  4  3  4  3  4  -               1  2  -               3  4  -         4  3  1  2  4  3  -         2  1  3  4  2  1  -               1  2  -               3  4   --}+loadCube2		:: Size -> IO Rubik+loadCube2 sz		= loadCube sz f where+    f 			= concat [path, g, "x", g, "x", g]+    g			= show sz -myCube	:: CubeSurf-myCube = [(UpS,	[White,Green,Yellow,Green,White,Green,Red,White,Green]),-	  (FrontS, 	[Blue,Blue,White,Yellow,Orange,Yellow,Red,Yellow,White]),-	  (DownS,	[Yellow,Blue,Green,White,Yellow,Blue,White,Orange,Green]),-	  (BackS,	[Orange,Blue,Orange,Yellow,Red,Red,Red,Orange,Blue]),-	  (LeftS,	[Orange,White,Yellow,Red,Green,Red,Orange,Red,Red]),-	  (RightS,	[Blue,Green,Blue,Orange,Blue,White,Green,Orange,Yellow])]+saveCube2		:: Rubik -> IO ()+saveCube2 rk		= saveCube f rk where+    f 			= concat [path, g, "x", g, "x", g]+    g			= show $ n rk
HCube/Data.hs view
@@ -1,18 +1,17 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Data--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  ------------------------------------------------------------------------------{-# LANGUAGE GeneralizedNewtypeDeriving #-}-module HCube.Data where+{-# LANGUAGE Safe #-} -newtype TestNumb	= TestNumb Int deriving (Integral, Enum, Num, Real, Eq, Ord, Read, Show)+module HCube.Data where  -- | Integer type used in hcube. type Numb		= Int
HCube/Lib.hs view
@@ -1,15 +1,18 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Lib--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable -- -- Exposes virtual cube functionality. -----------------------------------------------------------------------------++{-# LANGUAGE Safe #-}+ module HCube.Lib (Rubik(..),  		Cube(..), 		posToId,@@ -251,6 +254,3 @@  fromFile		:: FilePath -> IO Rubik fromFile fn		= readFile fn >>= return . read---
HCube/OrientGroup.hs view
@@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.OrientGroup--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --@@ -12,7 +12,7 @@ -- whole.  ----------------------------------------------------------------------------- -{-# LANGUAGE MultiParamTypeClasses, FlexibleContexts #-}+{-# LANGUAGE Safe, MultiParamTypeClasses, FlexibleContexts #-}  module HCube.OrientGroup ( 	Group(..), 
HCube/Permutation.hs view
@@ -1,15 +1,18 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Permutation--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  -- Generation of permutation representation of cube. -----------------------------------------------------------------------------++{-# LANGUAGE Trustworthy #-}+ module HCube.Permutation (genPerm) where  import Math.Algebra.Group.PermutationGroup (Permutation, fromPairs')
HCube/Template.hs view
@@ -1,15 +1,17 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Template--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  -- Console visualization of virtual cube. -----------------------------------------------------------------------------+{-# LANGUAGE Trustworthy #-}+ module HCube.Template (render) where  import Data.Text (Text, pack, unpack, replace, splitOn)
HCube/Test.hs view
@@ -1,10 +1,10 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Test--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --@@ -13,17 +13,20 @@ module HCube.Test (runTests) where +{-# LANGUAGE Safe #-}++import Data.Int import Test.QuickCheck.Test(verboseCheckWith,quickCheck,quickCheckWith, Args(..)) import Test.QuickCheck.Arbitrary(Arbitrary, arbitrary, shrink, shrinkIntegral) import Test.QuickCheck.Gen(Gen,sized, choose)-import HCube.Data (Vec, TestNumb(..) )+import HCube.Data (Vec, Numb) import HCube.Lib (posToId, getPos, initCube) import HCube.OrientGroup (Orient (..), rawToOrientNumber, rawOrientNum, orientNumberToRaw) import HCube.Utility (mapVec, modNot, gateMinus, modMinus)  -- invariants -idProperty (TestNumb sz) = f where+idProperty sz     = f where 	f	  = [posToId sz . getPos sz $ a | a <- [1..g]] == [1..g] 	g	  = sz*sz*sz @@ -36,7 +39,7 @@ 		j	= gateMinus cd 		k	= modMinus cd 17 -orientProperty   :: TestNumb -> Bool	+orientProperty   :: Numb -> Bool	 orientProperty _ = orientId  args = Args {@@ -49,16 +52,6 @@  args2 = args {maxSuccess = 1, 	      maxDiscardRatio = 1} --instance Arbitrary TestNumb where-  arbitrary = arbitraryNumb-  shrink    = shrinkIntegral--arbitraryNumb   :: Gen TestNumb-arbitraryNumb =-  sized $ \n ->-    let n' = toInteger n in-      fmap fromInteger (choose (1, n'))  runTests		:: IO () runTests		= f where
HCube/Theory.hs view
@@ -1,16 +1,18 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Theory--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable --  -- Module for generating tables exhibiting internals of hcube. -- See the design directory for output generated by these functions. -----------------------------------------------------------------------------+{-# LANGUAGE Safe #-}+ module HCube.Theory ( 	displayColors, 	displayOrientVecMapping,@@ -107,7 +109,7 @@ -} -- | Shows how colors on a cubie are mapped to orientation.  displayColorToOrient	:: IO ()-displayColorToOrient	= writeFile "colorToOrient" $ unlines . twoPagesOnOne "\t\t"+displayColorToOrient	= writeFile "store/colorToOrient" $ unlines . twoPagesOnOne "\t\t" 			. sort . map f $ map g sideColorDomain where     f (((fd1,cl1),(fd2,cl2)), vs)  			= concat [show cl1 ++ show cl2, "  ",
HCube/Utility.hs view
@@ -1,21 +1,33 @@ ----------------------------------------------------------------------------- -- | -- Module      :  HCube.Utility--- Copyright   :  (c) Todd Wegner 2013+-- Copyright   :  (c) Todd Wegner 2012 -- License     :  BSD-style (see the LICENSE file) -- --- Maintainer  :  todd.w.wegner@gmail.com+-- Maintainer  :  echbar137@yahoo.co.in -- Stability   :  provisional -- Portability :  portable -- -- Common utility functions, simple linear algebra.  -----------------------------------------------------------------------------+{-# LANGUAGE Safe #-}+ module HCube.Utility where  import Control.Monad (foldM, (>=>), liftM, liftM2) import Data.List import HCube.Data import HCube.Common(padL)++-- | Returns square root of argument if argument is a perfect square. +squareRoot		:: Int -> Maybe Int+squareRoot nn		= f 1 nn where+    f lo hi | lo > hi	= Nothing+	    | nn == h	= Just g+	    | nn < h	= f lo (g - 1)+	    | otherwise = f (g + 1) h where+	g		= (hi + lo) `div` 2+	h		= g * g  -- | Multiple a matrix on the left side of a vector. (|*|)		:: Matrix -> Vec -> Vec
− HCube/store/physicalCubeExample
@@ -1,6 +0,0 @@-[(UpS, [White,Green,Yellow,Green,White,Green,Red,White,Green]),-          (FrontS,      [Blue,Blue,White,Yellow,Orange,Yellow,Red,Yellow,White]),-          (DownS,       [Yellow,Blue,Green,White,Yellow,Blue,White,Orange,Green]),-          (BackS,       [Orange,Blue,Orange,Yellow,Red,Red,Red,Orange,Blue]),-          (LeftS,       [Orange,White,Yellow,Red,Green,Red,Orange,Red,Red]),-          (RightS,      [Blue,Green,Blue,Orange,Blue,White,Green,Orange,Yellow])]
README view
@@ -0,0 +1,91 @@+----------------------------------------------------------------------------+-- +--             :  hcube+-- Copyright   :  (c) Todd Wegner 2012+-- License     :  BSD-style (see the LICENSE file)+-- +-- Maintainer  :  echbar137@yahoo.co.in+-- Stability   :  provisional+-- Portability :  portable+-- +-----------------------------------------------------------------------------++Command line arguments for hcube :++./hcube 2	Loads the 2x2x2 cube state.+./hcube 3	Loads the 3x3x3 cube state.+./hcube 4	Loads the 4x4x4 cube state.+./hcube 5	Loads the 5x5x5 cube state.+./hcube		Loads the 3x3x3 cube state.+./hcube <name of physical cube file> Creates cube based on physical file.++Cube is created in a solved state if no previous state for that dimension exists.+Although the library supports cubes of arbitrary size, the hcube executable does not+support sizes beyond 5x5x5.++The state of cube is stored in the 'store' directory with a name based on the dimension+of the cube.  For example a 3x3x3 cube is saved as 'solved/3x3x3'.++If the 'solve' directory does not exist it is created.++Loading a physical Cube state :+Physical file must be placed in the 'store' directory.++Sample contents of a physical file for a 3x3x3 cube is :++[(UpS,    [White,Green,Yellow,Green,White,Green,Red,White,Green]),+ (FrontS, [Blue,Blue,White,Yellow,Orange,Yellow,Red,Yellow,White]),+ (DownS,  [Yellow,Blue,Green,White,Yellow,Blue,White,Orange,Green]),+ (BackS,  [Orange,Blue,Orange,Yellow,Red,Red,Red,Orange,Blue]),+ (LeftS,  [Orange,White,Yellow,Red,Green,Red,Orange,Red,Red]),+ (RightS, [Blue,Green,Blue,Orange,Blue,White,Green,Orange,Yellow])]++This is a list of six tuples, corresponding to one for each six side of a cube.+A tuple consists of the cube side followed by a list of colors appearing on that cube side.+The tuples can be in any order, however it is easier to use the order given, rotating the cube+about the Left and Right axis to identify the colors of four of the sides.+The order of the colors appear in the list is important and is given by the following diagram :++1  2  3  Right     1  2  3  Up            1  2  3  Left +4  5  6  Side      4  5  6  Side          4  5  6  Side+7  8  9            7  8  9                7  8  9++                   1  2  3  Front+                   4  5  6  Side+                   7  8  9++                   1  2  3  Down+                   4  5  6  Side+                   7  8  9++                   1  2  3  Back+                   4  5  6  Side+                   7  8  9++Console commands for hcube :++help   displays command list+l1+    rotate layer 1 clockwise+l2-    rotate layer 2 counter+h3+    rotate horizontal slab 3 clockwise+h1-    rotate horizontal slab 1 counter+v2+    rotate vertical slab 2 clockwise+v3-    rotate vertical slab 3 counter+l      left side view+r      right side view+r+     rotate whole cube clockwise 90 degrees (z axis)+r-     rotate whole cube counter clockwise 90 degrees (z axis)+r2     rotate whole cube 180 degrees+fh     flip whole cube over along horizontal axis+fv     flip whole cube over along vertical axis+u      undo last cube operation++History :+0.1.0	Inital release.+0.1.1	hcube is able to physical cube from a file.++To Do :+1) Add two phase algorithm to solve 3x3x3 cube in minumal number of moves.+2) Add undo.+3) Add sequence macros.+4) Extend to 4x4x4 and 5x5x5.
hcube.cabal view
@@ -1,5 +1,5 @@ name:                 hcube-version:              0.1.0+version:              0.1.1 synopsis:       Virtual Rubik's cube of arbitrary size.  description:	Provides virtual model of NxNxN Rubik's cube and console visualization for 		2x2x2, 3x3x3 ,4x4x4, and 5x5x5. Console visualization is choosen in the interest@@ -9,7 +9,7 @@ 		The Rubik's cube exhibits many non-trival aspects of group theory.  		The package comes with an executable "hcube". -                The command ./hcube 5 will create a 5x5x5 cube.+                Refer to the README file for details.  license:              BSD3  license-file:         LICENSE @@ -22,7 +22,7 @@ stability:            experimental category:             Game -data-dir:             HCube/store+data-dir:             store data-files:           physicalCubeExample extra-source-files:   README 		      design/common.txt
+ store/physicalCubeExample view
@@ -0,0 +1,6 @@+[(UpS, [White,Green,Yellow,Green,White,Green,Red,White,Green]),+          (FrontS,      [Blue,Blue,White,Yellow,Orange,Yellow,Red,Yellow,White]),+          (DownS,       [Yellow,Blue,Green,White,Yellow,Blue,White,Orange,Green]),+          (BackS,       [Orange,Blue,Orange,Yellow,Red,Red,Red,Orange,Blue]),+          (LeftS,       [Orange,White,Yellow,Red,Green,Red,Orange,Red,Red]),+          (RightS,      [Blue,Green,Blue,Orange,Blue,White,Green,Orange,Yellow])]