|
- module Skat.AI.Stupid where
-
- import Skat.Player
- import Skat.Pile
- import Skat.Card
- import Skat.Preperation
- import Skat.Bidding
-
- data Stupid = Stupid { getTeam :: Team
- , getHand :: Hand }
- deriving Show
-
- instance Player Stupid where
- team = getTeam
- hand = getHand
- chooseCard p _ _ hand = do
- trumpCol <- trump
- turnCol <- turnColour
- let possible = filter (isAllowed trumpCol turnCol hand) hand
- return (toCard $ head possible, p)
-
- newtype NoBidder = NoBidder Hand
- deriving Show
-
- -- | no bidding from that player
- instance Bidder NoBidder where
- hand (NoBidder h) = h
- askBid _ _ bid = return $ Just 20
- askResponse _ _ bid = if bid < 24 then return True else return False
- askGame _ _ = return $ Grand Hand
- askHand _ _ = return True
- askSkat _ _ _ = undefined -- never called
- toPlayer (NoBidder h) team = PL $ Stupid team h
- onStart _ = return ()
|