Compare commits
2 Commits
monadifica
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| a1d049f470 | |||
| da73f0e242 |
@ -22,3 +22,36 @@ instance JoueurIA RandomIA where
|
|||||||
where joué = minimum [carte | carte<-cartes, peutJouer carte cartes pli]
|
where joué = minimum [carte | carte<-cartes, peutJouer carte cartes pli]
|
||||||
finTour self pli = self -- On s'en fiche de l'info.
|
finTour self pli = self -- On s'en fiche de l'info.
|
||||||
|
|
||||||
|
|
||||||
|
playerSort :: Carte -> Carte -> Ordering
|
||||||
|
playerSort (Valeur(col1,val1) Valeur(col2,val2))
|
||||||
|
| col1==col2 = compare val1 val2
|
||||||
|
| otherwise = compare col1 col2
|
||||||
|
playerSort Valeur(_,_) _ = LT
|
||||||
|
playerSort _ Valeur(_,_) = GT
|
||||||
|
playerSort Atout(k) Atout(l) = compare k l
|
||||||
|
playerSort Atout(_) Excuse = LT
|
||||||
|
playerSort Excuse Atout(_) = GT
|
||||||
|
playerSort Excuse Excuse = EQ
|
||||||
|
|
||||||
|
annoncePriseJoueur :: Int -> Maybe Typeprise -> IO ()
|
||||||
|
annoncePriseJoueur i t = putStrLn "Le joueur "++(show i)++" a "++(case t of {
|
||||||
|
Nothing -> "passé";
|
||||||
|
Just Prise -> "pris";
|
||||||
|
Just Garde -> "gardé";
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
data VraiJoueurIA = VraiJeu ([Carte])
|
||||||
|
instance JoueurIA VraiJoueurIA where
|
||||||
|
distrib self cartes pos = do
|
||||||
|
let jeu = sortBy playerSort cartes
|
||||||
|
putStrLn "Voici votre jeu : "
|
||||||
|
for_ jeu (putStrLn . show)
|
||||||
|
return VraiJeu(jeu)
|
||||||
|
prise (VraiJeu cartes) prises = do
|
||||||
|
let nprises = length prises
|
||||||
|
if nprises==0
|
||||||
|
then putStrLn "Vous êtes le premier à parler !"
|
||||||
|
else do
|
||||||
|
for_ [1..nprises] (i -> putStrLn "Le joueur "++(show i)++" a ")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user