Cleanup
This commit is contained in:
+17
-7
@@ -36,15 +36,10 @@ layoutLevelFromSeed i seed = do
|
|||||||
appendFile "log/attemptedSeeds" $ show seed ++ "\n"
|
appendFile "log/attemptedSeeds" $ show seed ++ "\n"
|
||||||
let g = mkStdGen seed
|
let g = mkStdGen seed
|
||||||
let treecluster = evalState initialRoomTree (g,0)
|
let treecluster = evalState initialRoomTree (g,0)
|
||||||
--tc <- composeAndLog [0] (\str -> putStrLn str >> appendFile "log/treeCluster" str) treecluster
|
|
||||||
-- let labts = decomposeTree $ numMetaTree treecluster
|
|
||||||
let labts = decomposeSelfTree $ numSelfTree $ combineTree _rmName treecluster
|
let labts = decomposeSelfTree $ numSelfTree $ combineTree _rmName treecluster
|
||||||
mapM_ (putStrLn . drawTree . fmap show) labts
|
mapM_ ((\str -> putStrLn str >> appendFile "log/treeCluster" str) . smallDrawTree . fmap showIntsString)
|
||||||
|
labts
|
||||||
let tc = composeTree treecluster
|
let tc = composeTree treecluster
|
||||||
---- (strs,tc) = composeTree' treecluster
|
|
||||||
----appendFile "log/TreeCluster" ("Seed: "++ show seed)
|
|
||||||
----mapM_ (appendFile "log/treeCluster" . ('\n':)) strs
|
|
||||||
----mapM_ putStrLn strs
|
|
||||||
let rmtree = inorderNumberTree tc
|
let rmtree = inorderNumberTree tc
|
||||||
putStrLn "Room layout (compact): "
|
putStrLn "Room layout (compact): "
|
||||||
putStrLn $ compactDrawTree $ fmap (show . snd) rmtree
|
putStrLn $ compactDrawTree $ fmap (show . snd) rmtree
|
||||||
@@ -52,6 +47,7 @@ layoutLevelFromSeed i seed = do
|
|||||||
appendFile "log/aGeneratedRoomLayout" ("Seed: "++ show seed)
|
appendFile "log/aGeneratedRoomLayout" ("Seed: "++ show seed)
|
||||||
appendFile "log/aGeneratedRoomLayout" $ drawTree $ fmap nameshow rmtree
|
appendFile "log/aGeneratedRoomLayout" $ drawTree $ fmap nameshow rmtree
|
||||||
putStrLn "Layout with room names (also written to log/aGeneratedRoomLayout):"
|
putStrLn "Layout with room names (also written to log/aGeneratedRoomLayout):"
|
||||||
|
putStrLn $ smallDrawTree $ fmap nameshow rmtree
|
||||||
mrs <- positionRoomsFromTree rmtree
|
mrs <- positionRoomsFromTree rmtree
|
||||||
case mrs of
|
case mrs of
|
||||||
Just (PosRooms bounds rs) -> do
|
Just (PosRooms bounds rs) -> do
|
||||||
@@ -72,6 +68,9 @@ reversePair (a,b) = (b,a)
|
|||||||
compactDrawTree :: Tree String -> String
|
compactDrawTree :: Tree String -> String
|
||||||
compactDrawTree = unlines . compactDraw
|
compactDrawTree = unlines . compactDraw
|
||||||
|
|
||||||
|
smallDrawTree :: Tree String -> String
|
||||||
|
smallDrawTree = unlines . compactDraw'
|
||||||
|
|
||||||
compactDraw :: Tree String -> [String]
|
compactDraw :: Tree String -> [String]
|
||||||
compactDraw (Node x [Node y ts]) = compactDraw (Node (x++","++y) ts)
|
compactDraw (Node x [Node y ts]) = compactDraw (Node (x++","++y) ts)
|
||||||
compactDraw (Node x ts0) = lines x ++ drawSubTrees ts0
|
compactDraw (Node x ts0) = lines x ++ drawSubTrees ts0
|
||||||
@@ -82,3 +81,14 @@ compactDraw (Node x ts0) = lines x ++ drawSubTrees ts0
|
|||||||
drawSubTrees (t:ts) =
|
drawSubTrees (t:ts) =
|
||||||
"|" : shift "+- " "| " (compactDraw t) ++ drawSubTrees ts
|
"|" : shift "+- " "| " (compactDraw t) ++ drawSubTrees ts
|
||||||
shift first other = zipWith (++) (first : repeat other)
|
shift first other = zipWith (++) (first : repeat other)
|
||||||
|
|
||||||
|
compactDraw' :: Tree String -> [String]
|
||||||
|
compactDraw' (Node x [Node y ts]) = lines x ++ ["|"] ++ compactDraw' (Node y ts)
|
||||||
|
compactDraw' (Node x ts0) = lines x ++ drawSubTrees ts0
|
||||||
|
where
|
||||||
|
drawSubTrees [] = []
|
||||||
|
drawSubTrees [t] =
|
||||||
|
"|" : compactDraw' t
|
||||||
|
drawSubTrees (t:ts) =
|
||||||
|
"|" : shift "+- " "| " (compactDraw' t) ++ drawSubTrees ts
|
||||||
|
shift first other = zipWith (++) (first : repeat other)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ module Dodge.Tree.Compose
|
|||||||
-- , composeAndLog
|
-- , composeAndLog
|
||||||
, toOnward
|
, toOnward
|
||||||
, attachOnward
|
, attachOnward
|
||||||
|
, showIntsString
|
||||||
-- , cmpToMT
|
-- , cmpToMT
|
||||||
-- , compTree
|
-- , compTree
|
||||||
, module Dodge.Tree.Compose.Data
|
, module Dodge.Tree.Compose.Data
|
||||||
@@ -27,6 +28,7 @@ import TreeHelp
|
|||||||
--import Dodge.Base
|
--import Dodge.Base
|
||||||
import LensHelp
|
import LensHelp
|
||||||
|
|
||||||
|
import Data.List (intersperse)
|
||||||
import Data.Tuple
|
import Data.Tuple
|
||||||
--import Data.Bifunctor
|
--import Data.Bifunctor
|
||||||
--import Control.Monad.State
|
--import Control.Monad.State
|
||||||
@@ -201,7 +203,7 @@ decomposeSelfTree st = fmap fst (_unST st) : concatMap (f . snd) (_unST st)
|
|||||||
|
|
||||||
combineTree :: (a -> b) -> MetaTree a b -> SelfTree b
|
combineTree :: (a -> b) -> MetaTree a b -> SelfTree b
|
||||||
combineTree f mt = case _mtTree mt of
|
combineTree f mt = case _mtTree mt of
|
||||||
NodeTree t -> ST (Node (_mtLabel mt,Left $ fmap f t) (fmap (_unST . combineTree f . _mbTree) $ _mtBranches mt))
|
NodeTree t -> ST (Node (_mtLabel mt,Left $ fmap f t) (_unST . combineTree f . _mbTree <$> _mtBranches mt))
|
||||||
--NodeTree t -> ST (Node (Left $ fmap f t) _)
|
--NodeTree t -> ST (Node (Left $ fmap f t) _)
|
||||||
NodeMTree mt' -> ST (Node (_mtLabel mt,Right $ combineTree f mt')
|
NodeMTree mt' -> ST (Node (_mtLabel mt,Right $ combineTree f mt')
|
||||||
$ map (_unST . combineTree f . _mbTree) $ _mtBranches mt)
|
$ map (_unST . combineTree f . _mbTree) $ _mtBranches mt)
|
||||||
@@ -233,6 +235,7 @@ toOnward rm
|
|||||||
= Just (rm & rmClusterStatus . csLinks . at OnwardCluster .~ Nothing)
|
= Just (rm & rmClusterStatus . csLinks . at OnwardCluster .~ Nothing)
|
||||||
| otherwise = Nothing
|
| otherwise = Nothing
|
||||||
|
|
||||||
|
numSelfTree :: SelfTree a -> SelfTree ([Int],a)
|
||||||
numSelfTree st = evalState (numSelfTree' st) [0]
|
numSelfTree st = evalState (numSelfTree' st) [0]
|
||||||
|
|
||||||
numSelfTree' :: SelfTree a -> State [Int] (SelfTree ([Int],a))
|
numSelfTree' :: SelfTree a -> State [Int] (SelfTree ([Int],a))
|
||||||
@@ -241,9 +244,8 @@ numSelfTree' (ST (Node lrt bs)) = do
|
|||||||
modify (ix 0 +~ 1)
|
modify (ix 0 +~ 1)
|
||||||
bs' <- mapM (fmap _unST . numSelfTree' . ST) bs
|
bs' <- mapM (fmap _unST . numSelfTree' . ST) bs
|
||||||
case lrt of
|
case lrt of
|
||||||
(y,Left t) -> return $ ST (Node ((is,y),Left $ fmap ((_1 %~ (\x -> x:is)) . swap) $ numTraversable t) bs')
|
(y,Left t) -> return $ ST (Node ((is,y),Left $ (_1 %~ (:is)) . swap <$> numTraversable t) bs')
|
||||||
(y,Right mt') -> return $ ST (Node ((is,y),Right (evalState (numSelfTree' mt') (0:is))) bs')
|
(y,Right mt') -> return $ ST (Node ((is,y),Right (evalState (numSelfTree' mt') (0:is))) bs')
|
||||||
-- return $ MTree (is,lab) (mn & nodeMetaTree %~ (\nmt -> evalState (numMetaTree' nmt) (0:is))) bs'
|
|
||||||
|
|
||||||
numMetaTree :: MetaTree a String -> MetaTree a ([Int],String)
|
numMetaTree :: MetaTree a String -> MetaTree a ([Int],String)
|
||||||
numMetaTree mt = evalState (numMetaTree' mt) [0]
|
numMetaTree mt = evalState (numMetaTree' mt) [0]
|
||||||
@@ -254,3 +256,6 @@ numMetaTree' (MTree lab mn bs) = do
|
|||||||
modify (ix 0 +~ 1)
|
modify (ix 0 +~ 1)
|
||||||
bs' <- mapM (mbTree %%~ numMetaTree') bs
|
bs' <- mapM (mbTree %%~ numMetaTree') bs
|
||||||
return $ MTree (is,lab) (mn & nodeMetaTree %~ (\nmt -> evalState (numMetaTree' nmt) (0:is))) bs'
|
return $ MTree (is,lab) (mn & nodeMetaTree %~ (\nmt -> evalState (numMetaTree' nmt) (0:is))) bs'
|
||||||
|
|
||||||
|
showIntsString :: ([Int],String) -> String
|
||||||
|
showIntsString (is,s) = foldr1 (++) (intersperse ":" (map show is)) ++ ':':s
|
||||||
|
|||||||
Reference in New Issue
Block a user