diff --git a/src/Types/GameBoard.hs b/src/Types/GameBoard.hs index 6f8b23d..f6516bf 100644 --- a/src/Types/GameBoard.hs +++ b/src/Types/GameBoard.hs @@ -20,15 +20,15 @@ data GameBoard mode = MkGameBoard , gameMode :: mode } -clear :: (GameMode mode) => GameBoard mode -> BoardPosition -> BoardPosition -> Bool clear = undefined +clear :: (GameMode mode) => BoardPosition -> BoardPosition -> GameBoard mode -> GameBoard mode -selectCheck :: (GameMode mode) => GameBoard mode -> BoardPosition -> BoardPosition -> Bool -selectCheck board@MkGameBoard{gameMode} topLeft bottomRight = - check gameMode (select board topLeft bottomRight) +selectCheck :: (GameMode mode) => BoardPosition -> BoardPosition -> GameBoard mode -> Bool +selectCheck topLeft bottomRight board@MkGameBoard{gameMode} = + check gameMode (select topLeft bottomRight board) -select :: (GameMode mode) => GameBoard mode -> BoardPosition -> BoardPosition -> [Tile mode] -select MkGameBoard{board} topLeft bottomRight = +select :: (GameMode mode) => BoardPosition -> BoardPosition -> GameBoard mode -> [Tile mode] +select topLeft bottomRight MkGameBoard{board} = mapMaybe (board !) (range (topLeft, bottomRight)) -- TODO: rewrite this with monadic RNG diff --git a/test/Spec.hs b/test/Spec.hs index ec57706..2cbed54 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -25,5 +25,5 @@ spec = describe "gameboard" do displayText gameBoard `shouldBe` "1 2 \n3 4 \n" it "validates a move" do - selectCheck gameBoard (0, 0) (1, 1) `shouldBe` True - selectCheck gameBoard (0, 0) (0, 1) `shouldBe` False + selectCheck (0, 0) (1, 1) gameBoard `shouldBe` True + selectCheck (0, 0) (0, 1) gameBoard `shouldBe` False