fix announcing wrong single player

This commit is contained in:
2020-03-29 14:19:37 +02:00
parent 8f692d36ac
commit cc9223245b
3 changed files with 14 additions and 7 deletions
+4 -4
View File
@@ -39,7 +39,7 @@ singleVsBots comm = do
(PL $ Stupid Team Hand2)
(PL $ mkAIEnv Single Hand3 10)
env = SkatEnv (distribute cards) Nothing Spades ps Hand1
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) env
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) env
singleWithBidding :: Communicator c => c -> IO ()
singleWithBidding comm = do
@@ -54,7 +54,7 @@ singleWithBidding comm = do
maySkatEnv <- liftIO $ runReaderT runPreperation env
case maySkatEnv of
Just skatEnv ->
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) skatEnv
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) skatEnv
Nothing -> putStrLn "No one wanted to play."
pvp :: Communicator c => c -> c -> c -> IO ()
@@ -65,7 +65,7 @@ pvp comm1 comm2 comm3 = do
(PL $ OnlineEnv Team Hand2 comm2)
(PL $ OnlineEnv Team Hand3 comm3)
env = SkatEnv (distribute cards) Nothing Spades ps Hand1
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) env
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) env
pvpWithBidding :: Communicator c => c -> c -> c -> IO ()
pvpWithBidding comm1 comm2 comm3 = do
@@ -82,5 +82,5 @@ pvpWithBidding comm1 comm2 comm3 = do
maySkatEnv <- liftIO $ runReaderT runPreperation env
case maySkatEnv of
Just skatEnv ->
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) skatEnv
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) skatEnv
Nothing -> putStrLn "No one wanted to play."
+4 -3
View File
@@ -13,7 +13,7 @@ import Skat
import Skat.Card
import Skat.Pile
import Skat.Player (chooseCard, Players(..), Player(..), PL(..),
updatePlayer, playersToList, player, MonadPlayer)
updatePlayer, playersToList, player, MonadPlayer, getSinglePlayer)
import Skat.Utils (shuffle)
compareRender :: Card -> Card -> Ordering
@@ -113,7 +113,8 @@ publishGameResults res = do
pls <- gets players
mapM_ (\p -> onGameResults p res) (playersToList pls)
publishGameStart :: Hand -> Skat ()
publishGameStart sglPlayer = do
publishGameStart :: Skat ()
publishGameStart = do
pls <- gets players
let sglPlayer = getSinglePlayer pls
mapM_ (\p -> onGameStart p sglPlayer) (playersToList pls)
+6
View File
@@ -83,3 +83,9 @@ updatePlayer p (Players p1 p2 p3) = case hand p of
playersToList :: Players -> [PL]
playersToList (Players p1 p2 p3) = [p1, p2, p3]
getSinglePlayer :: Players -> Hand
getSinglePlayer (Players p1 p2 p3) = case (team p1, team p2, team p3) of
(Single, _, _) -> Hand1
(_, Single, _) -> Hand2
_ -> Hand3