From da73f0e242127a478d05911f8680bd7775579011 Mon Sep 17 00:00:00 2001 From: Mysaa Date: Wed, 19 Jan 2022 21:25:30 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20des=20fonctions=20pour=20que=20le?= =?UTF-8?q?=20joueur=20joue.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tarotinator/src/TarotIAs.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tarotinator/src/TarotIAs.hs b/tarotinator/src/TarotIAs.hs index 133d6fd..da4d250 100644 --- a/tarotinator/src/TarotIAs.hs +++ b/tarotinator/src/TarotIAs.hs @@ -22,3 +22,36 @@ instance JoueurIA RandomIA where where joué = minimum [carte | carte<-cartes, peutJouer carte cartes pli] 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 ")