|
@@ -127,7 +127,7 @@ won g nbMines =
|
|
|
nbUnco == nbTotal - nbMines
|
|
|
|
|
|
toggleFlag::Cell -> Cell
|
|
|
-toggleFlag (Covered n b flag) = Covered n b !flag
|
|
|
+toggleFlag (Covered n b flag) = Covered n b (not flag)
|
|
|
toggleFlag c = c
|
|
|
|
|
|
loop::Int -> Int -> Int -> Grid -> IO ()
|
|
@@ -137,13 +137,13 @@ loop i j n b@(Grid xs)
|
|
|
putStrLn $ show $ Grid $ applyij ( const Selected ) i j xs
|
|
|
c <- getChar
|
|
|
case c of
|
|
|
- 'i' -> loop (max (i - 1) 0) j n b -- move caret up
|
|
|
- 'k' -> loop (min (i + 1) ((length xs) - 1)) j n b -- move caret down
|
|
|
- 'j' -> loop i (max (j - 1) 0) n b -- move caret left
|
|
|
- 'l' -> loop i (min (j + 1) ((length (xs!!0)) - 1)) n b -- move caret right
|
|
|
- 'f' -> Grid $ applyij toggleFlag i j b -- toggle flag
|
|
|
- 'u' -> Grid $ applyij uncover i j b -- uncover tile
|
|
|
- otherwise -> loop i j n b -- do nothing
|
|
|
+ 'i' -> loop (max (i - 1) 0) j n b -- move caret up
|
|
|
+ 'k' -> loop (min (i + 1) ((length xs) - 1)) j n b -- move caret down
|
|
|
+ 'j' -> loop i (max (j - 1) 0) n b -- move caret left
|
|
|
+ 'l' -> loop i (min (j + 1) ((length (xs!!0)) - 1)) n b -- move caret right
|
|
|
+ 'f' -> Grid $ applyij toggleFlag i j b -- toggle flag
|
|
|
+ 'u' -> Grid $ applyij uncover i j b -- uncover tile
|
|
|
+ otherwise -> loop i j n b -- do nothing
|
|
|
|
|
|
|
|
|
-- Testing data
|