Skat Engine und AI auf Haskell Basis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
963B

  1. module Skat.AI.Stupid where
  2. import Skat.Player
  3. import Skat.Pile
  4. import Skat.Card
  5. import Skat.Preperation
  6. import Skat.Bidding
  7. data Stupid = Stupid { getTeam :: Team
  8. , getHand :: Hand }
  9. deriving Show
  10. instance Player Stupid where
  11. team = getTeam
  12. hand = getHand
  13. chooseCard p _ _ hand = do
  14. trumpCol <- trump
  15. turnCol <- turnColour
  16. let possible = filter (isAllowed trumpCol turnCol hand) hand
  17. return (toCard $ head possible, p)
  18. newtype NoBidder = NoBidder Hand
  19. deriving Show
  20. -- | no bidding from that player
  21. instance Bidder NoBidder where
  22. hand (NoBidder h) = h
  23. askBid _ _ bid = return $ Just 20
  24. askResponse _ _ bid = if bid < 24 then return True else return False
  25. askGame _ _ = return $ Grand Hand
  26. askHand _ _ = return True
  27. askSkat _ _ _ = undefined -- never called
  28. toPlayer (NoBidder h) team = PL $ Stupid team h
  29. onStart _ = return ()