Move types out

This commit is contained in:
Sidharth Kulkarni 2026-05-03 14:08:43 -07:00
parent 6279619459
commit fa2dcbde01
Signed by: skulk
SSH key fingerprint: SHA256:Jby+S9d1WmwqnXIrngHgccYNHz+cYquxN1zm3ym3Kbg
3 changed files with 25 additions and 21 deletions

View file

@ -1,22 +1 @@
module Game where
import Data.Text
import Types.GameBoard
import Types.GameMode (GameMode)
newtype PlayerName = MkPlayerName Text
deriving (Eq, Show, Ord)
data PlayerState = MkPlayerState
{ name :: Text
, score :: Int
}
deriving (Eq, Show)
data GameState mode = MkGameState
{ board :: GameBoard mode
, players :: PlayerState
}
newGame :: (GameMode mode) => mode -> [PlayerName] -> IO (GameState mode)
newGame = undefined

13
src/Types/GameState.hs Normal file
View file

@ -0,0 +1,13 @@
module Types.GameState where
import Types.GameBoard
import Types.GameMode (GameMode)
import Types.Player
data GameState mode = MkGameState
{ board :: GameBoard mode
, players :: [PlayerState]
}
newGame :: (GameMode mode) => mode -> [PlayerName] -> IO (GameState mode)
newGame = undefined

12
src/Types/Player.hs Normal file
View file

@ -0,0 +1,12 @@
module Types.Player where
import Data.Text
newtype PlayerName = MkPlayerName Text
deriving (Eq, Show, Ord)
data PlayerState = MkPlayerState
{ name :: Text
, score :: Int
}
deriving (Eq, Show)