summaryrefslogtreecommitdiff
path: root/Game.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Game.hs')
-rw-r--r--Game.hs11
1 files changed, 11 insertions, 0 deletions
diff --git a/Game.hs b/Game.hs
index 77b2e92..6912ea4 100644
--- a/Game.hs
+++ b/Game.hs
@@ -39,3 +39,14 @@ prompt game@(Game plyrs pidx att _ _ _) = do
putStrLn "This card does not exist, try again"
prompt game
else return $ Just (cards !! cardIdx)
+
+-- | Deal c cards to each player in game.
+dealCards :: Int -> Game -> Game
+dealCards c game@(Game plyrs _ _ _ stock disc)
+ | (length $ P.cards $ head plyrs) < c =
+ dealCards c game { players = newPlyrs, stockPile = newStock }
+ | otherwise = game
+ where newPlyrs = giveOneCardEach stock plyrs
+ newStock = drop c stock
+ giveOneCardEach =
+ zipWith (\card player -> player { P.cards = card:(P.cards player) })