소스 검색

fix announcing wrong single player

master
flavis 6 년 전
부모
커밋
cc9223245b
3개의 변경된 파일14개의 추가작업 그리고 7개의 파일을 삭제
  1. +4
    -4
      src/Skat/Matches.hs
  2. +4
    -3
      src/Skat/Operations.hs
  3. +6
    -0
      src/Skat/Player.hs

+ 4
- 4
src/Skat/Matches.hs 파일 보기

@@ -39,7 +39,7 @@ singleVsBots comm = do
(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 Hand1 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 :: Communicator c => c -> IO ()
singleWithBidding comm = do singleWithBidding comm = do
@@ -54,7 +54,7 @@ singleWithBidding comm = do
maySkatEnv <- liftIO $ runReaderT runPreperation env maySkatEnv <- liftIO $ runReaderT runPreperation env
case maySkatEnv of case maySkatEnv of
Just skatEnv -> Just skatEnv ->
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) skatEnv
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) skatEnv
Nothing -> putStrLn "No one wanted to play." Nothing -> putStrLn "No one wanted to play."


pvp :: Communicator c => c -> c -> c -> IO () pvp :: Communicator c => c -> c -> c -> IO ()
@@ -65,7 +65,7 @@ pvp comm1 comm2 comm3 = do
(PL $ OnlineEnv Team Hand2 comm2) (PL $ OnlineEnv Team Hand2 comm2)
(PL $ OnlineEnv Team Hand3 comm3) (PL $ OnlineEnv Team Hand3 comm3)
env = SkatEnv (distribute cards) Nothing Spades ps Hand1 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 :: Communicator c => c -> c -> c -> IO ()
pvpWithBidding comm1 comm2 comm3 = do pvpWithBidding comm1 comm2 comm3 = do
@@ -82,5 +82,5 @@ pvpWithBidding comm1 comm2 comm3 = do
maySkatEnv <- liftIO $ runReaderT runPreperation env maySkatEnv <- liftIO $ runReaderT runPreperation env
case maySkatEnv of case maySkatEnv of
Just skatEnv -> Just skatEnv ->
liftIO $ evalStateT (publishGameStart Hand3 >> turn >>= publishGameResults) skatEnv
liftIO $ evalStateT (publishGameStart >> turn >>= publishGameResults) skatEnv
Nothing -> putStrLn "No one wanted to play." Nothing -> putStrLn "No one wanted to play."

+ 4
- 3
src/Skat/Operations.hs 파일 보기

@@ -13,7 +13,7 @@ import Skat
import Skat.Card import Skat.Card
import Skat.Pile import Skat.Pile
import Skat.Player (chooseCard, Players(..), Player(..), PL(..), import Skat.Player (chooseCard, Players(..), Player(..), PL(..),
updatePlayer, playersToList, player, MonadPlayer)
updatePlayer, playersToList, player, MonadPlayer, getSinglePlayer)
import Skat.Utils (shuffle) import Skat.Utils (shuffle)


compareRender :: Card -> Card -> Ordering compareRender :: Card -> Card -> Ordering
@@ -113,7 +113,8 @@ publishGameResults res = do
pls <- gets players pls <- gets players
mapM_ (\p -> onGameResults p res) (playersToList pls) mapM_ (\p -> onGameResults p res) (playersToList pls)


publishGameStart :: Hand -> Skat ()
publishGameStart sglPlayer = do
publishGameStart :: Skat ()
publishGameStart = do
pls <- gets players pls <- gets players
let sglPlayer = getSinglePlayer pls
mapM_ (\p -> onGameStart p sglPlayer) (playersToList pls) mapM_ (\p -> onGameStart p sglPlayer) (playersToList pls)

+ 6
- 0
src/Skat/Player.hs 파일 보기

@@ -83,3 +83,9 @@ updatePlayer p (Players p1 p2 p3) = case hand p of


playersToList :: Players -> [PL] playersToList :: Players -> [PL]
playersToList (Players p1 p2 p3) = [p1, p2, p3] 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

불러오는 중...
취소
저장