Quellcode durchsuchen

Add matrix translations

DricomDragon vor 5 Jahren
Ursprung
Commit
371895a423
1 geänderte Dateien mit 17 neuen und 3 gelöschten Zeilen
  1. 17 3
      tp/mine-sweeper/main.hs

+ 17 - 3
tp/mine-sweeper/main.hs

@@ -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