From ba61f2b7363116f6530fc6c256b1ad97ef0e0861 Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Thu, 5 Jan 2023 22:10:15 +0800 Subject: Game.dealCards --- Game.hs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Game.hs') 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) }) -- cgit v1.2.3