From 59beaa5cc932d3a40f8a4a414f140ffb60ac86d8 Mon Sep 17 00:00:00 2001 From: Sasha Date: Tue, 30 Jan 2018 18:17:52 +0100 Subject: [PATCH] Add cards packs --- CCard.hs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/CCard.hs b/CCard.hs index ec94333..4aff7ff 100644 --- a/CCard.hs +++ b/CCard.hs @@ -1,7 +1,7 @@ module CCard where import Data.Word (Word64) -import Data.Bits (setBit, (.|.)) +import Data.Bits (setBit, (.|.), (.&.), shift, xor) newtype Card = Card Int type Pack = Word64 @@ -44,8 +44,17 @@ ribbons = set [14, 18, 26, 41] .|. blue .|. poetry lights :: Pack lights = set [3, 11, 31, 43, 47] +lastIndex :: Int +lastIndex = 47 + +plain :: Pack +plain = pack `xor` (lights .|. ribbons .|. animals) .&. pack + +pack :: Pack +pack = 1 `shift` (lastIndex + 1) - 1 + pair :: Card -> Card -> Bool pair card1 card2 = flower card1 == flower card2 cards :: [Card] -cards = map Card [0..47] +cards = map Card [0..lastIndex]