diff options
Diffstat (limited to 'Game.hs')
-rw-r--r-- | Game.hs | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -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) }) |