Skat Engine und AI auf Haskell Basis
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

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 ()