summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Game.hs22
1 files changed, 11 insertions, 11 deletions
diff --git a/Game.hs b/Game.hs
index 5de5ce5..99b3486 100644
--- a/Game.hs
+++ b/Game.hs
@@ -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) })