From 46071152a4eeb6b23525cecfc60f4087ab8276cb Mon Sep 17 00:00:00 2001 From: Sasha Date: Sat, 28 Jul 2018 19:23:16 +0200 Subject: [PATCH] Reset all of player's properties when dealing cards --- src/Hanafuda/Player.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Hanafuda/Player.hs b/src/Hanafuda/Player.hs index 728ea60..f907917 100644 --- a/src/Hanafuda/Player.hs +++ b/src/Hanafuda/Player.hs @@ -45,11 +45,11 @@ get key (Players playersByKey) = playersByKey ! key set :: Ord key => key -> Player key yakus -> Players key yakus -> Players key yakus set key player (Players playersByKey) = Players $ insert key player playersByKey -deal :: Ord key => Players key yakus -> [[Card]] -> Players key yakus +deal :: (Ord key, Monoid yakus) => Players key yakus -> [[Card]] -> Players key yakus deal (Players playersByKey) hands = Players $ snd $ foldl dealTo (fst $ findMin playersByKey, playersByKey) hands where - setHand cards player = player {hand = packOfCards cards} + setHand cards (Player {nextPlayer}) = (new nextPlayer) {hand = packOfCards cards} dealTo (key, m) hand = (nextPlayer $ m ! key, adjust (setHand hand) key m) plays :: Player key yakus -> Card -> Either String (Player key yakus)