19 lines
756 B
Haskell
19 lines
756 B
Haskell
module Cartes where
|
|
import Data.Set as Set
|
|
|
|
data Figure = Valet | Cavalier | Dame | Roi deriving (Eq, Ord, Show)
|
|
data Couleur = Pique | Coeur | Carreau | Trefle deriving (Eq, Show, Ord)
|
|
data Carte = Valeur (Int, Couleur) | Tete (Figure, Couleur) | Atout Int | Excuse deriving (Eq, Ord)
|
|
instance Show Carte where
|
|
show (Excuse) = "Excuse"
|
|
show (Atout n) = (show n) ++ " d'atout"
|
|
show (Tete (f,c)) = (show f) ++ " de " ++ (show c)
|
|
show (Valeur (n,c)) = (show n) ++ " de " ++ (show c)
|
|
|
|
allFigures = [Valet, Cavalier, Dame, Roi]
|
|
allCouleurs = [Pique, Coeur, Carreau, Trefle]
|
|
|
|
deck :: Set Carte
|
|
deck = fromList ([Valeur (n,c) | n<-[1..10], c<-allCouleurs] ++ [Tete (f,c) | f<- allFigures, c<- allCouleurs] ++ [Atout n | n<-[1..21]] ++ [Excuse])
|
|
|