From b03e97bb816917b8c2f764845aab6dac566ee360 Mon Sep 17 00:00:00 2001 From: Sasha Date: Sat, 3 Feb 2018 18:25:11 +0100 Subject: [PATCH] =?UTF-8?q?Implement=20card=20capture=20(=E3=81=95?= =?UTF-8?q?=E3=81=8F=E3=82=89=EF=BC=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- KoiKoi.hs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/KoiKoi.hs b/KoiKoi.hs index c261b7f..3618ead 100644 --- a/KoiKoi.hs +++ b/KoiKoi.hs @@ -92,3 +92,9 @@ yakus = foldl (\map -> unionWith (++) map . index) empty [ , ([SakeCup, FullMoon], fixed (TsukimiZake, 5)) , ([SakeCup, CampCurtain], fixed (HanamiZake, 5)) ] + +capture :: State -> Card -> Pack -> (Pack, Score) +capture (State {month}) card pack = + let newPack = add pack card in + let yakuFinders = (unionWith (++) yakus . index $ tsukiFuda month) ! card in + (newPack, foldl (\score -> foldr (uncurry insert) score . ($newPack)) empty yakuFinders)