diff options
author | Griffin Smith <root@gws.fyi> | 2019-09-13T19·24-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-09-13T19·24-0400 |
commit | c06edf3cc698f36e995719dc6e192c5663110f6d (patch) | |
tree | dd7872fbad6dc4b0e04f943ef63a64c3e002479b /src/Main.hs | |
parent | 9ebdc6fbb446fea5e505172a6b3dd459beaf3552 (diff) |
Place the chacracter in the level at startup time
Randomly select a position in the largest contiguous region of the generated level in which to place the character at startup time.
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/Main.hs b/src/Main.hs index d49e082b7c6c..2da277b64071 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -1,20 +1,23 @@ -module Main where - -import Xanthous.Prelude -import Brick +module Main ( main ) where +-------------------------------------------------------------------------------- +import Xanthous.Prelude +import Brick import qualified Options.Applicative as Opt -import System.Random - -import Xanthous.Game (getInitialState) -import Xanthous.App (makeApp) -import Xanthous.Generators +import System.Random +-------------------------------------------------------------------------------- +import Xanthous.Game (getInitialState) +import Xanthous.App (makeApp) +import Xanthous.Generators ( GeneratorInput(..) , parseGeneratorInput , generateFromInput , showCells ) -import Xanthous.Data (Dimensions, Dimensions'(Dimensions)) - +import Xanthous.Generators.Util (regions) +import Xanthous.Generators.LevelContents +import Xanthous.Data (Dimensions, Dimensions'(Dimensions)) +import Data.Array.IArray ( amap ) +-------------------------------------------------------------------------------- data Command = Run | Generate GeneratorInput Dimensions @@ -61,6 +64,13 @@ runGenerate :: GeneratorInput -> Dimensions -> IO () runGenerate input dims = do randGen <- getStdGen let res = generateFromInput input dims randGen + rs = regions $ amap not res + putStr "num regions: " + print $ length rs + putStr "region lengths: " + print $ length <$> rs + putStr "character position: " + print =<< chooseCharacterPosition res putStrLn $ showCells res runCommand :: Command -> IO () |