From cc9223245bf4d75df411bc2fe829b2e9b0f0d0e5 Mon Sep 17 00:00:00 2001 From: flavis Date: Sun, 29 Mar 2020 14:19:37 +0200 Subject: [PATCH] fix announcing wrong single player --- src/Skat/Matches.hs | 8 ++++---- src/Skat/Operations.hs | 7 ++++--- src/Skat/Player.hs | 6 ++++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Skat/Matches.hs b/src/Skat/Matches.hs index e51e36f..e01ae98 100644 --- a/src/Skat/Matches.hs +++ b/src/Skat/Matches.hs @@ -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." diff --git a/src/Skat/Operations.hs b/src/Skat/Operations.hs index 9126851..686b57e 100644 --- a/src/Skat/Operations.hs +++ b/src/Skat/Operations.hs @@ -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) diff --git a/src/Skat/Player.hs b/src/Skat/Player.hs index b24e472..df05621 100644 --- a/src/Skat/Player.hs +++ b/src/Skat/Player.hs @@ -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