rename dummyPrompt to menuPrompt & print state when notified
This commit is contained in:
parent
09a34c119b
commit
b0d20dff3d
14
src/Test.hs
14
src/Test.hs
|
|
@ -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))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue