rename dummyPrompt to menuPrompt & print state when notified

This commit is contained in:
Jesse D. McDonald 2014-04-02 19:38:56 -05:00
parent 09a34c119b
commit b0d20dff3d
1 changed files with 6 additions and 8 deletions

View File

@ -118,18 +118,16 @@ printWaterdeep w = do
putStrLn (" Agent Pool: " ++ show (p ^. playerAgentsInPool)) putStrLn (" Agent Pool: " ++ show (p ^. playerAgentsInPool))
putStrLn "" putStrLn ""
dummyPrompt :: WaterdeepPrompt a -> IO a menuPrompt :: WaterdeepPrompt a -> IO a
dummyPrompt prm@(NotifyState w) = return () menuPrompt prm@(NotifyState w) = printWaterdeep w
dummyPrompt prm@(SolicitChoice w p t cs) = do menuPrompt prm@(SolicitChoice w p t cs) = do
let menuSize = length cs let menuSize = length cs
let menuLine n t = putStrLn (show n ++ ") " ++ t) let menuLine n t = putStrLn (show n ++ ") " ++ t)
let blankLine = putStrLn "" let blankLine = putStrLn ""
let redo why = putStrLn ("ERROR: " ++ why) >> blankLine >> dummyPrompt prm let redo why = putStrLn ("ERROR: " ++ why) >> blankLine >> menuPrompt prm
printWaterdeep w
putStrLn t putStrLn t
forM_ (zip [1::Int ..] cs) $ \(i, (c, _)) -> menuLine i c forM_ (zip [1..] cs) $ \(i, (c, _)) -> menuLine i c
putStr (w ^. gamePlayer p . playerName) putStr (w ^. gamePlayer p . playerName)
putStr "> " >> hFlush stdout putStr "> " >> hFlush stdout
@ -144,6 +142,6 @@ dummyPrompt prm@(SolicitChoice w p t cs) = do
main :: IO () main :: IO ()
main = do main = do
w <- newGame [p1, p2] [q1, q2] [] [b1, b2, b3, b4, b5] w <- newGame [p1, p2] [q1, q2] [] [b1, b2, b3, b4, b5]
winners <- fst <$> runWaterdeepM dummyPrompt waterdeepGame w
let gamePlayerName n = w ^. gamePlayer n . playerName let gamePlayerName n = w ^. gamePlayer n . playerName
(winners, w') <- runWaterdeepM menuPrompt waterdeepGame w
putStrLn ("Winner(s): " ++ intercalate ", " (winners ^.. traverse . to gamePlayerName)) putStrLn ("Winner(s): " ++ intercalate ", " (winners ^.. traverse . to gamePlayerName))