summaryrefslogtreecommitdiff
path: root/Player.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Player.hs')
-rw-r--r--Player.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/Player.hs b/Player.hs
index 0b57c7e..6dab74c 100644
--- a/Player.hs
+++ b/Player.hs
@@ -9,6 +9,12 @@ data Player = Player { name :: String
, cards :: [Card]
}
+-- | Update `i`-th player in `ps` to `p`.
+update :: [Player] -> Int -> Player -> [Player]
+update ps i p =
+ let (left, right) = splitAt i ps
+ in left ++ [p] ++ (tail right)
+
-- | Same player after shedding card specified.
shed :: Player -> Card -> Player
shed (Player n p cs) c = Player n p $ L.delete c cs