Improve logging
This commit is contained in:
+12
-10
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user