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 ""
dummyPrompt :: WaterdeepPrompt a -> IO a
dummyPrompt prm@(NotifyState w) = return ()
dummyPrompt prm@(SolicitChoice w p t cs) = do
menuPrompt :: WaterdeepPrompt a -> IO a
menuPrompt prm@(NotifyState w) = printWaterdeep w
menuPrompt prm@(SolicitChoice w p t cs) = do
let menuSize = length cs
let menuLine n t = putStrLn (show n ++ ") " ++ t)
let blankLine = putStrLn ""
let redo why = putStrLn ("ERROR: " ++ why) >> blankLine >> dummyPrompt prm
printWaterdeep w
let redo why = putStrLn ("ERROR: " ++ why) >> blankLine >> menuPrompt prm
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 "> " >> hFlush stdout
@ -144,6 +142,6 @@ dummyPrompt prm@(SolicitChoice w p t cs) = do
main :: IO ()
main = do
w <- newGame [p1, p2] [q1, q2] [] [b1, b2, b3, b4, b5]
winners <- fst <$> runWaterdeepM dummyPrompt waterdeepGame w
let gamePlayerName n = w ^. gamePlayer n . playerName
(winners, w') <- runWaterdeepM menuPrompt waterdeepGame w
putStrLn ("Winner(s): " ++ intercalate ", " (winners ^.. traverse . to gamePlayerName))