diff options
-rw-r--r-- | Game.hs | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -17,6 +17,17 @@ data Game = Game { players :: [Player] , discardPile :: [Card] } +-- | 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) }) + -- | Begin `r` rounds of game. beginRounds :: Int -> Bool -> Game -> IO Game beginRounds r auto game = do @@ -127,14 +138,3 @@ automate game@(Game plyrs pidx att _ prev _ _) = then Nothing else Just (head validCards) where validCards = filter (C.isValid prev att) $ P.cards (plyrs !! pidx) - --- | 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) }) |