Fold in new composing room datatype

This commit is contained in:
2021-11-22 12:46:32 +00:00
parent e185caf157
commit 09e774d009
9 changed files with 166 additions and 144 deletions
+6 -6
View File
@@ -49,7 +49,7 @@ critRoom = corridorWallN
{ _rmRandPSs = [psRandRanges (15,25) (30,45) (pi,2*pi)]
}
runPastRoom :: RandomGen g => Int -> State g (Tree (Either Room Room))
runPastRoom :: RandomGen g => Int -> State g (SubCompTree Room)
runPastRoom i = do
h <- state $ randomR (200,400::Float)
theedgetest <- takeOne [horEdgeTest (<1), horEdgeTest (>39)]
@@ -71,8 +71,8 @@ runPastRoom i = do
}
switchdoor = switchDoorRoom & rmTakeFrom ?~ i
n = length $ filter theedgetest $ _rmLinks cenroom
controom = treeFromPost [Left switchdoor,Left linkcor] (Right door)
critrooms :: [Tree (Either Room Room)]
critrooms = treeFromPost [Left switchdoor] (Left critroom) :
replicate (n-2) (treeFromPost [Left switchdoor] (Left linkcor))
return $ Node (Left cenroom) (controom : critrooms ++ [return $ Left aswitchroom])
controom = treeFromPost [PassDown switchdoor,PassDown linkcor] (UseAll door)
critrooms :: [SubCompTree Room]
critrooms = treeFromPost [PassDown switchdoor] (PassDown critroom) :
replicate (n-2) (treeFromPost [PassDown switchdoor] (PassDown linkcor))
return $ Node (PassDown cenroom) (controom : critrooms ++ [return $ PassDown aswitchroom])