diff --git a/src/Game.hs b/src/Game.hs index 6b0bd67..ca51dc9 100644 --- a/src/Game.hs +++ b/src/Game.hs @@ -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 diff --git a/src/Types/GameState.hs b/src/Types/GameState.hs new file mode 100644 index 0000000..14ab207 --- /dev/null +++ b/src/Types/GameState.hs @@ -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 diff --git a/src/Types/Player.hs b/src/Types/Player.hs new file mode 100644 index 0000000..8ee5b3e --- /dev/null +++ b/src/Types/Player.hs @@ -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)