|
|
@@ -3,6 +3,7 @@ module Skat.Matches ( |
|
|
) where |
|
|
) where |
|
|
|
|
|
|
|
|
import Control.Monad.State |
|
|
import Control.Monad.State |
|
|
|
|
|
import System.Random (mkStdGen) |
|
|
|
|
|
|
|
|
import Skat |
|
|
import Skat |
|
|
import Skat.Operations |
|
|
import Skat.Operations |
|
|
@@ -14,12 +15,30 @@ import Skat.AI.Rulebased |
|
|
import Skat.AI.Online |
|
|
import Skat.AI.Online |
|
|
import Skat.AI.Stupid |
|
|
import Skat.AI.Stupid |
|
|
|
|
|
|
|
|
|
|
|
-- | predefined card distribution for testing purposes |
|
|
|
|
|
cardDistr :: Piles |
|
|
|
|
|
cardDistr = Piles hands [] (map (putAt SkatP) skt) |
|
|
|
|
|
where hand3 = [Card Ace Spades, Card Jack Diamonds, Card Jack Clubs, Card King Spades, |
|
|
|
|
|
Card Nine Spades, Card Ace Diamonds, Card Queen Diamonds, Card Ten Clubs, |
|
|
|
|
|
Card Eight Clubs, Card King Clubs] |
|
|
|
|
|
hand1 = [Card Jack Spades, Card Jack Hearts, Card Ten Spades, Card Ace Hearts, Card Ten Hearts, |
|
|
|
|
|
Card Nine Hearts, Card Seven Clubs, Card Ace Clubs, Card King Diamonds, |
|
|
|
|
|
Card Ten Diamonds] |
|
|
|
|
|
hand2 = [Card Eight Spades, Card Queen Spades, Card Seven Spades, Card Seven Diamonds, |
|
|
|
|
|
Card Seven Hearts, Card Eight Hearts, Card Queen Hearts, Card King Hearts, |
|
|
|
|
|
Card Nine Diamonds, Card Eight Diamonds] |
|
|
|
|
|
hands = map (putAt Hand1) hand1 |
|
|
|
|
|
++ map (putAt Hand2) hand2 |
|
|
|
|
|
++ map (putAt Hand3) hand3 |
|
|
|
|
|
skt = [Card Nine Clubs, Card Queen Clubs] |
|
|
|
|
|
|
|
|
singleVsBots :: (Team -> Hand -> OnlineEnv) -> IO () |
|
|
singleVsBots :: (Team -> Hand -> OnlineEnv) -> IO () |
|
|
singleVsBots mkPlayer = do |
|
|
singleVsBots mkPlayer = do |
|
|
cards <- liftIO $ shuffleCards |
|
|
|
|
|
|
|
|
--let gen = mkStdGen 123 |
|
|
|
|
|
-- cards = shuffleCardsWithGen gen |
|
|
let ps = Players |
|
|
let ps = Players |
|
|
(PL $ mkPlayer Team Hand1) |
|
|
(PL $ mkPlayer Team Hand1) |
|
|
(PL $ Stupid Team Hand2) |
|
|
(PL $ Stupid Team Hand2) |
|
|
(PL $ mkAIEnv Single Hand3 10) |
|
|
(PL $ mkAIEnv Single Hand3 10) |
|
|
env = SkatEnv (distribute cards) Nothing Spades ps |
|
|
|
|
|
|
|
|
env = SkatEnv cardDistr Nothing Spades ps |
|
|
liftIO $ evalStateT (publishGameStart Hand3 >> turn Hand1 >>= publishGameResults) env |
|
|
liftIO $ evalStateT (publishGameStart Hand3 >> turn Hand1 >>= publishGameResults) env |