Bläddra i källkod

Implement gridMoves

DricomDragon 5 år sedan
förälder
incheckning
7a0363648f
1 ändrade filer med 9 tillägg och 0 borttagningar
  1. 9 0
      tp/mine-sweeper/main.hs

+ 9 - 0
tp/mine-sweeper/main.hs

@@ -7,6 +7,8 @@ import Data.Char
 import Data.Set ( Set )
 import qualified Data.Set as S
 
+import Data.Universe.Helpers ( cartesianProduct ) -- Need to be installed : `cabal install universe`
+
 
 -- Types
 
@@ -64,6 +66,13 @@ moveRight m = map (\l -> 0 : init l) m
 moveLeft::Mat -> Mat
 moveLeft m = map (\l -> concat [tail l, [0]]) m
 
+gridMoves::Mat -> [Mat]
+gridMoves m =
+    let hMov = [id, moveUp, moveDown] in
+    let wMov = [id, moveLeft, moveRight] in
+    let allMov = tail $ cartesianProduct (.) hMov wMov in
+    map (\f -> f m) allMov
+
 
 -- Testing data