|
@@ -18,6 +18,8 @@ data Grid = Grid [[Cell]]
|
|
|
|
|
|
data StdGen = SG -- TODO : replace
|
|
|
|
|
|
+type Mat = [[Int]]
|
|
|
+
|
|
|
|
|
|
-- Methods
|
|
|
|
|
@@ -47,9 +49,21 @@ randomRs (x, y) sg = [x + mod k (y - x) | k <- [1..y] ] -- TODO : replace
|
|
|
mineIndic::Cell -> Int
|
|
|
mineIndic c = let Covered _ b _ = c in if b then 1 else 0
|
|
|
|
|
|
-mines::Grid -> [[Int]]
|
|
|
+mines::Grid -> Mat
|
|
|
mines g = let Grid m = g in map (map mineIndic) m
|
|
|
|
|
|
+moveUp::Mat -> Mat
|
|
|
+moveUp m = concat [tail m, [[0 | _ <- [1..length (m!!0)]]]]
|
|
|
+
|
|
|
+moveDown::Mat -> Mat
|
|
|
+moveDown m = concat [[[0 | _ <- [1..length (m!!0)]]], init m]
|
|
|
+
|
|
|
+moveRight::Mat -> Mat
|
|
|
+moveRight m = map (\l -> 0 : init l) m
|
|
|
+
|
|
|
+moveLeft::Mat -> Mat
|
|
|
+moveLeft m = map (\l -> concat [tail l, [0]]) m
|
|
|
+
|
|
|
|
|
|
-- Testing data
|
|
|
|
|
@@ -58,6 +72,6 @@ dtTinyGrid = Grid [
|
|
|
[Selected, Uncovered 0, Covered 2 True True]
|
|
|
]
|
|
|
|
|
|
-dtRS = randSet 2 SG SG 3 4
|
|
|
-dtGridCover = grid 3 4 dtRS
|
|
|
+dtRS = randSet 3 SG SG 4 5
|
|
|
+dtGridCover = grid 4 5 dtRS
|
|
|
dtMines = mines dtGridCover
|