Improve logging

This commit is contained in:
2022-06-13 19:44:47 +01:00
parent d4127ffed4
commit d17f83928a
2 changed files with 12 additions and 141 deletions
+12 -10
View File
@@ -32,36 +32,38 @@ generateWorldFromSeed i = do
layoutLevelFromSeed :: Int -> Int -> IO (IM.IntMap Room,[ConvexPoly])
layoutLevelFromSeed i seed = do
let i' = i + 1
putStrLn $ "Generating level with seed " ++ show seed
appendFile "log/attemptedSeeds" $ show seed ++ "\n"
putStrLnAppend "log/attemptedSeeds" $ "Generating level with seed " ++ show seed
appendFile "log/attemptedSeeds" "\n"
let g = mkStdGen seed
let treecluster = evalState initialRoomTree (g,0)
let labts = decomposeSelfTree $ numSelfTree $ combineTree _rmName treecluster
mapM_ ((\str -> putStrLn str >> appendFile "log/treeCluster" str) . smallDrawTree . fmap showIntsString)
labts
appendFile "log/treeCluster" ("Seed: "++ show seed ++ "\n")
mapM_ (putStrLnAppend "log/treeCluster" . smallDrawTree . fmap showIntsString) labts
let tc = composeTree treecluster
let rmtree = inorderNumberTree tc
putStrLn "Room layout (compact): "
putStrLn $ compactDrawTree $ fmap (show . snd) rmtree
let nameshow (r,rid) = _rmName r ++ "-" ++ show rid
appendFile "log/aGeneratedRoomLayout" ("Seed: "++ show seed)
appendFile "log/aGeneratedRoomLayout" $ drawTree $ fmap nameshow rmtree
putStrLn "Layout with room names (also written to log/aGeneratedRoomLayout):"
putStrLn $ smallDrawTree $ fmap nameshow rmtree
putStrLnAppend "log/aGeneratedRoomLayout" "Layout with room names:"
putStrLnAppend "log/aGeneratedRoomLayout" $ smallDrawTree $ fmap nameshow rmtree
mrs <- positionRoomsFromTree rmtree
case mrs of
Just (PosRooms bounds rs) -> do
putStrLn $ "After " ++ show i'
putStrLnAppend "log/attemptedSeeds" $ "After " ++ show i'
++ " attempt(s), Successful generation of level with seed "
++ show seed
--return (fmap setLastLinkToUsed rs)
putStrLn $ show (Prelude.length rs) ++ " rooms in total"
putStrLnAppend "log/attemptedSeeds" $ show (Prelude.length rs) ++ " rooms in total"
return (IM.fromList $ map reversePair rs , bounds)
Nothing -> do
putStr $ "Level generation with seed " ++ show seed ++ " failed: "
putStrLnAppend "log/attemptedSeeds" $ "Level generation with seed " ++ show seed ++ " failed: "
let (seed',_) = random g
layoutLevelFromSeed i' seed'
putStrLnAppend :: FilePath -> String -> IO ()
putStrLnAppend fp str = appendFile fp (str ++ "\n") >> putStrLn str
reversePair :: (a,b) -> (b,a)
reversePair (a,b) = (b,a)