|
@@ -130,6 +130,21 @@ toggleFlag::Cell -> Cell
|
|
|
toggleFlag (Covered n b flag) = Covered n b !flag
|
|
|
toggleFlag c = c
|
|
|
|
|
|
+loop::Int -> Int -> Int -> Grid -> IO ()
|
|
|
+loop i j n b@(Grid xs)
|
|
|
+ | won n b = putStrLn " Victory !"
|
|
|
+ | otherwise = do
|
|
|
+ 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 ’ -> ... -- move caret down
|
|
|
+ ’j ’ -> ... -- move caret left
|
|
|
+ ’l ’ -> ... -- move caret right
|
|
|
+ ’f ’ -> ... -- toggle flag
|
|
|
+ ’u ’ -> ... -- uncover tile
|
|
|
+ otherwise -> loop i j n b -- do nothing
|
|
|
+
|
|
|
|
|
|
-- Testing data
|
|
|
|