diff --git a/src/Test.hs b/src/Test.hs index e3eab55..4adda77 100644 --- a/src/Test.hs +++ b/src/Test.hs @@ -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))