Uncover all squares when bomb hit
This commit is contained in:
parent
5576cc46e3
commit
f5e8477bc0
|
@ -13,11 +13,11 @@ data Board = Board { size :: Int
|
||||||
|
|
||||||
-- Creates a board given a size (width/height), mine ratio and random generator
|
-- Creates a board given a size (width/height), mine ratio and random generator
|
||||||
createBoard :: Int -> Float -> StdGen -> Board
|
createBoard :: Int -> Float -> StdGen -> Board
|
||||||
createBoard size mineRatio rng = Board size (seedGrid rng mineRatio (createGrid size)) (createGrid size) (createGrid size)
|
createBoard size mineRatio rng = Board size (seedGrid rng mineRatio (createGrid False size)) (createGrid False size) (createGrid False size)
|
||||||
|
|
||||||
-- Creates a 2D list of booleans of given size, initialised to False
|
-- Creates a 2D list of booleans of given size, initialised to given boolean
|
||||||
createGrid :: Int -> Grid
|
createGrid :: Bool -> Int -> Grid
|
||||||
createGrid size = replicate size (replicate size False)
|
createGrid b size = replicate size (replicate size b)
|
||||||
|
|
||||||
-- Functions relating to seeding a grid with mines
|
-- Functions relating to seeding a grid with mines
|
||||||
|
|
||||||
|
@ -105,6 +105,8 @@ boolToInt x | x = 1
|
||||||
uncover :: Board -> Square -> Board
|
uncover :: Board -> Square -> Board
|
||||||
uncover b (r,c) | not $ validSquare b (r,c) = b
|
uncover b (r,c) | not $ validSquare b (r,c) = b
|
||||||
| isUncovered b (r,c) = b
|
| isUncovered b (r,c) = b
|
||||||
|
| hasMine b (r,c) = let Board s m u f = b
|
||||||
|
in Board s m (createGrid True s) f
|
||||||
| otherwise = let Board s m u f = b
|
| otherwise = let Board s m u f = b
|
||||||
(rowsA, row : rowsB) = splitAt r u
|
(rowsA, row : rowsB) = splitAt r u
|
||||||
(cellsA, _ : cellsB) = splitAt c row
|
(cellsA, _ : cellsB) = splitAt c row
|
||||||
|
|
Loading…
Reference in New Issue