34 lines
932 B
Haskell
34 lines
932 B
Haskell
module Skat.AI.Stupid where
|
|
|
|
import Skat.Player
|
|
import Skat.Pile
|
|
import Skat.Card
|
|
import Skat.Preperation
|
|
|
|
data Stupid = Stupid { getTeam :: Team
|
|
, getHand :: Hand }
|
|
deriving Show
|
|
|
|
instance Player Stupid where
|
|
team = getTeam
|
|
hand = getHand
|
|
chooseCard p _ _ hand = do
|
|
trumpCol <- trumpColour
|
|
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 _ _ _ = return Nothing
|
|
askResponse _ _ _ = return False
|
|
askGame _ _ = undefined -- never called
|
|
askHand _ _ = return False -- never called
|
|
askSkat _ _ _ = undefined -- never called
|
|
toPlayer (NoBidder h) team = PL $ Stupid team h
|
|
onStart _ = return ()
|