Implement basic board types/functions

This commit is contained in:
Sidharth Kulkarni 2026-05-02 18:00:08 -07:00
parent 2b64fe2a0b
commit 0fe8205ed9
Signed by: skulk
SSH key fingerprint: SHA256:Jby+S9d1WmwqnXIrngHgccYNHz+cYquxN1zm3ym3Kbg
8 changed files with 140 additions and 35 deletions

View file

@ -1,9 +1,24 @@
module Main where
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE OverloadedStrings #-}
module Spec where
import Data.Array (array)
import Display (Display (display), displayText)
import Test.Hspec
import Types.GameBoard
import Types.GameMode (SumTo (MkSumTo), Tile (IntTile))
spec :: Spec
spec = undefined
main :: IO ()
main = hspec spec
spec = describe "gameboard" do
it "displays correctly" do
let tiles =
array
((0, 0), (1, 1))
[ ((0, 0), Just $ IntTile 1)
, ((0, 1), Just $ IntTile 2)
, ((1, 0), Just $ IntTile 3)
, ((1, 1), Just $ IntTile 4)
]
gameBoard = MkGameBoard{width = 2, height = 2, gameMode = MkSumTo 10, board = tiles}
displayText gameBoard `shouldBe` "1 2 \n3 4 \n"