From f97154b96c8009bd5fa1d12d5677e87c08e3b190 Mon Sep 17 00:00:00 2001 From: Eric Mertens Date: Mon, 5 Dec 2022 17:00:19 -0800 Subject: [PATCH] external level files --- app/Main.hs | 1786 +----------------------------------- levels/center13.txt | 51 + levels/center8.txt | 51 + levels/clone11.txt | 22 + levels/cycle10.txt | 62 ++ levels/eat11.txt | 61 ++ levels/enter2.txt | 51 + levels/infiniteEnter17.txt | 43 + levels/infiniteEnter19.txt | 53 ++ levels/infiniteEnter20.txt | 93 ++ levels/infiniteExit15.txt | 55 ++ levels/infiniteExit5.txt | 22 + levels/multiInfinite5.txt | 24 + levels/multiInfinite8.txt | 64 ++ levels/open4.txt | 41 + levels/player10.txt | 43 + levels/player11.txt | 42 + levels/player18.txt | 51 + levels/swap3.txt | 41 + levels/swap4.txt | 41 + levels/swap5.txt | 51 + levels/transfer14.txt | 41 + levels/transfer20.txt | 55 ++ levels/transfer26.txt | 81 ++ levels/transfer27.txt | 63 ++ levels/transfer8.txt | 71 ++ parabox.cabal | 2 +- 27 files changed, 1295 insertions(+), 1766 deletions(-) create mode 100644 levels/center13.txt create mode 100644 levels/center8.txt create mode 100644 levels/clone11.txt create mode 100644 levels/cycle10.txt create mode 100644 levels/eat11.txt create mode 100644 levels/enter2.txt create mode 100644 levels/infiniteEnter17.txt create mode 100644 levels/infiniteEnter19.txt create mode 100644 levels/infiniteEnter20.txt create mode 100644 levels/infiniteExit15.txt create mode 100644 levels/infiniteExit5.txt create mode 100644 levels/multiInfinite5.txt create mode 100644 levels/multiInfinite8.txt create mode 100644 levels/open4.txt create mode 100644 levels/player10.txt create mode 100644 levels/player11.txt create mode 100644 levels/player18.txt create mode 100644 levels/swap3.txt create mode 100644 levels/swap4.txt create mode 100644 levels/swap5.txt create mode 100644 levels/transfer14.txt create mode 100644 levels/transfer20.txt create mode 100644 levels/transfer26.txt create mode 100644 levels/transfer27.txt create mode 100644 levels/transfer8.txt diff --git a/app/Main.hs b/app/Main.hs index 267ca50..122f99f 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -5,9 +5,10 @@ import Data.List.NonEmpty (NonEmpty(..)) import Data.List.NonEmpty qualified as NonEmpty import Data.Map (Map) import Data.Map qualified as Map -import Data.Set qualified as Set import Graphics.Vty import System.Environment ( getArgs ) +import System.Directory +import System.FilePath import Model import Rendering ( render ) @@ -23,18 +24,24 @@ data GameMode = MenuMode | PlayMode (NonEmpty World) +getWorldList :: IO (Map String FilePath) +getWorldList = + do paths <- listDirectory "levels" + pure (Map.fromList [(takeBaseName path, "levels" path) | path <- paths]) + main :: IO () main = do args <- getArgs + worldList <- getWorldList bracket (mkVty =<< userConfig) shutdown \vty -> case args of - x:_ | Just w <- Map.lookup x worldList -> - loop vty Game { - gameMode = PlayMode (pure w), - gameFlat = True, - gameSelect = Map.findIndex x worldList - - } + x:_ | Just path <- Map.lookup x worldList -> + do w <- parse <$> readFile path + loop vty Game { + gameMode = PlayMode (pure w), + gameFlat = True, + gameSelect = Map.findIndex x worldList + } _ -> loop vty Game { gameMode = MenuMode, @@ -46,7 +53,8 @@ loop :: Vty -> Game -> IO () loop vty game = case gameMode game of MenuMode -> - do let (a,b) = Map.splitAt (gameSelect game) worldList + do worldList <- getWorldList + let (a,b) = Map.splitAt (gameSelect game) worldList bnds <- displayBounds (outputIface vty) update vty (picForImage (renderMenu bnds a b)) ev <- nextEvent vty @@ -56,7 +64,9 @@ loop vty game = KEsc -> pure () KUp | gameSelect game > 0 -> loop vty game{ gameSelect = gameSelect game - 1 } KDown | gameSelect game + 1 < Map.size worldList -> loop vty game{ gameSelect = gameSelect game + 1 } - KEnter | Just (world,_) <- Map.minView b -> loop vty game{ gameMode = PlayMode (pure world) } + KEnter | Just (path,_) <- Map.minView b -> + do world <- parse <$> readFile path + loop vty game{ gameMode = PlayMode (pure world) } _ -> loop vty game _ -> loop vty game @@ -82,7 +92,7 @@ loop vty game = _ -> loop vty game -renderMenu :: DisplayRegion -> Map String World -> Map String World -> Image +renderMenu :: DisplayRegion -> Map String a -> Map String a -> Image renderMenu (w,h) before after = pad ((w - imageWidth menu) `div` 2) 0 0 0 menu where @@ -101,1757 +111,3 @@ renderMenu (w,h) before after = [ string defAttr x | x <- drop (Map.size after' - h`div`2) (Map.keys after') ] - - -worldList :: Map.Map String World -worldList = Map.fromList - [ ("world0", world0) - , ("small", smallWorld) - , ("enter2", enter2) - , ("eat11", eat11) - , ("center8", center8) - , ("center13", center13) - , ("clone11", clone11) - , ("transfer8", transfer8) - , ("transfer14", transfer14) - , ("transfer20", transfer20) - , ("transfer26", transfer26) - , ("transfer27", transfer27) - , ("open4", open4) - , ("swap3", swap3) - , ("swap4", swap4) - , ("swap5", swap5) - , ("cycle10", cycle10) - , ("player10", player10) - , ("player11", player11) - , ("player18", player18) - , ("infiniteExit5", infiniteExit5) - , ("infiniteExit15", infiniteExit15) - , ("infiniteEnter17", infiniteEnter17) - , ("infiniteEnter19", infiniteEnter19) - , ("infiniteEnter20", infiniteEnter20) - , ("multiInfinite5", multiInfinite5) - , ("multiInfinite8", multiInfinite8) - ] - -smallWorld :: World -smallWorld = - World - (Map.fromList - [('a', - Box (Location 'a' 0 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓ ▓ ▓", - "▓ ▓ ▓", - "▓▓▓▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr black) False), - ('1', - Box - (Location 'a' (-3) (-3)) - (Original (makeWalls (replicate 9 (replicate 9 ' ')))) - (withForeColor defAttr yellow) False), - ('2', - Box - (Location 'a' (-3) (-2)) - (Original (makeWalls (replicate 9 (replicate 9 ' ')))) - (withForeColor defAttr magenta) False), - ('3', - Box - (Location 'a' (-2) (-3)) - (Original (makeWalls (replicate 9 (replicate 9 ' ')))) - (withForeColor defAttr blue) False), - ('4', - Box - (Location 'a' (-2) (-2)) - (Original (makeWalls (replicate 9 (replicate 9 ' ')))) - (withForeColor defAttr green) False), - ('b', - Box - (Location '1' 0 0) - (Original (solid 9)) - (withForeColor defAttr red) True) - ]) 'b' - Set.empty - (Location 'b' 0 0) - - -enter2 :: World -enter2 = parse - "player p\n\ - \block t white boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a white interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓\n\ - \▓▓ cpb ▓▓\n\ - \▓▓ ▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓▓▓▓ =▓\n\ - \▓▓ -▓\n\ - \▓▓▓▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block c yellow interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓ ▓▓▓\n\ - \▓▓▓ \n\ - \▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block b blue boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -center8 :: World -center8 = parse - "player p\n\ - \block t white boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a white interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓\n\ - \▓▓ p ▓▓\n\ - \▓ g ▓▓\n\ - \▓ ▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓▓▓▓- =▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \ x ▓▓\n\ - \ ▓▓▓▓▓\n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -center13 :: World -center13 = parse - "player p\n\ - \block t cyan boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a cyan interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ p =▓\n\ - \▓ ▓\n\ - \▓ x g ▓\n\ - \▓ ▓\n\ - \▓ ▓▓▓ ▓▓\n\ - \▓ ▓-▓ ▓▓\n\ - \▓ ▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ ▓▓▓▓▓▓▓ \n\ - \ \n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - - -transfer8 :: World -transfer8 = parse - "player p\n\ - \block t cyan boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a cyan interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓\n\ - \▓▓ xb ▓▓▓\n\ - \▓▓ g▓▓\n\ - \▓▓ py ▓▓▓\n\ - \▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \ ▓▓▓ \n\ - \ ▓ \n\ - \ \n\ - \▓ ▓\n\ - \▓▓ = ▓▓\n\ - \▓ ▓\n\ - \ \n\ - \ ▓ \n\ - \ ▓▓▓ \n\ - \block b blue interesting\n\ - \ \n\ - \ \n\ - \ ▓▓▓ \n\ - \ ▓▓ ▓▓ \n\ - \ ▓ ▓ \n\ - \ ▓▓ ▓▓ \n\ - \ ▓▓▓ \n\ - \ \n\ - \ \n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block y yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -clone11 :: World -clone11 = parse - "player p\n\ - \block a green boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓= ▓ ▓\n\ - \▓- ▓ a ▓\n\ - \▓- ▓ ▓\n\ - \ p ▓ A \n\ - \▓ ▓ ▓\n\ - \▓ ▓ ▓\n\ - \▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \link A a green\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -transfer14 :: World -transfer14 = - World - (Map.fromList - [('a', - Box (Location 'a' 1 1) - (Original (makeWalls [ - " ", - " ", - " ", - " ", - " ▓ ", - " ", - " ", - " ", - " " - ])) - (withForeColor defAttr cyan) - False), - ('g', - Box - (Location 'a' (-1) (-1)) - (Original (makeWalls [ - " ▓▓▓ ", - " ▓ ▓ ", - " ", - " ▓ ", - "▓▓ ▓ ▓▓", - " ▓ ", - " ", - " ", - " ▓ " - ])) - (withForeColor defAttr green) - False), - ('x', - Box - (Location 'g' 3 (-3)) - (Original (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ])) - (withForeColor defAttr magenta) - False), - ('b', - Box - (Location 'a' 1 (-1)) - (Original (solid 9)) - (withForeColor defAttr red) - True) - ]) - 'b' - (Set.fromList [Location 'g' (-2) 0]) - (Location 'g' (-3) 0) - -open4 :: World -open4 = - World - (Map.fromList - [('a', - Box (Location 'a' 0 (-1)) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓▓▓", - "▓▓ ▓", - "▓ ▓", - "▓▓ ▓", - "▓▓ ▓", - "▓▓ ▓", - "▓▓ ▓", - "▓▓ ▓" - ])) - (withForeColor defAttr cyan) - False), - ('g', - Box - (Location 'a' 2 (-1)) - (Original (makeWalls [ - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓" - ])) - (withForeColor defAttr green) - False), - ('y', - Box - (Location 'a' 2 1) - (Original (makeWalls [ - "▓▓▓▓▓▓ ▓▓", - "▓▓▓▓▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr yellow) - False), - ('b', - Box - (Location 'a' 0 1) - (Original (solid 9)) - (withForeColor defAttr red) - True) - ]) - 'b' - Set.empty - (Location 'y' (-3) 2) - - -world0 :: World -world0 = World { - worldButtons = Set.empty, - worldHome = Location '2' 0 0, - worldMe = 'b', - worldBoxes = Map.fromList - [('1', Box { - boxColor = withForeColor defAttr green, - boxLocation = Location '1' (-1) 0, - boxType = Original $ makeWalls [ - "▓▓ ▓▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - " ▓", - "▓ ▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓▓▓▓▓ ▓" - ], - boxBoring = False - }), - ('2', Box { - boxColor = withForeColor defAttr cyan, - boxLocation = Location '1' 1 1, - boxType = Original $ makeWalls [ - "▓ ▓▓ ▓▓ ▓", - " ", - " ▓", - " ▓", - " ", - "▓ ▓", - "▓ ▓", - " ", - "▓ ▓▓ ▓▓ ▓" - ], - boxBoring = False - }), - ('₂', Box { - boxColor = withForeColor defAttr cyan, - boxLocation = Location '1' 2 (-1), - boxType = Link '2', - boxBoring = True - }), - ('3', Box { - boxColor = withForeColor defAttr blue, - boxLocation = Location '2' 1 1, - boxType = Original $ makeWalls [ - "▓▓▓▓▓▓▓▓▓", - " ", - "▓▓▓▓▓▓▓▓ ", - "▓▓ ▓▓▓ ", - "▓▓ ▓▓▓ ", - "▓▓▓▓ ▓▓▓ ", - "▓▓ ▓▓▓▓", - "▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓" - ], - boxBoring = False - }), - ('4', Box { - boxColor = withForeColor defAttr black, - boxLocation = Location 'b' (-3) 0, - boxType = Original $ makeWalls [ - "▓▓▓ ▓▓▓", - "▓ ▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓▓▓▓ ▓▓▓▓" - ], - boxBoring = False - }), - ('b', Box { - boxColor = withForeColor defAttr red, - boxLocation = Location '1' 0 1, - boxType = Original $ makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓ ▓", - "▓ ▓", - "▓ ▓ ▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ], - boxBoring = True - }), - ('x', Box { - boxColor = withForeColor defAttr yellow, - boxLocation = Location '1' 0 (-1), - boxType = Original $ - makeWalls [ - "▓▓ ▓ ", - " ", - " ▓ ▓▓▓ ", - " ▓ ", - "▓ ▓▓▓▓", - " ▓▓▓ ", - " ▓ ▓▓▓ ", - " ", - "▓ ▓ ▓"], - boxBoring = False - }), - ('y', Box { - boxColor = withForeColor defAttr magenta, - boxLocation = Location '1' 0 (-2), - boxType = Original $ makeWalls [ - "▓▓ ▓ ", - " ", - "▓▓ ▓▓▓ ", - "▓▓ ", - " ▓▓▓▓", - "▓▓▓▓ ", - "▓▓ ▓▓▓ ", - " ", - "▓ ▓ ▓"], - boxBoring = False - }), - ('i', Box { - boxColor = withForeColor defAttr black, - boxLocation = Location 'b' 0 (-2), - boxType = Original $ solid 9, - boxBoring = True - }), - ('j', Box { - boxColor = withForeColor defAttr black, - boxLocation = Location 'b' 0 (-1), - boxType = Original $ solid 9, - boxBoring = True - }), - ('k', Box { - boxColor = withForeColor defAttr black, - boxLocation = Location 'b' 0 0, - boxType = Original $ solid 9, - boxBoring = True - }), - ('l', Box { - boxColor = withForeColor defAttr black, - boxLocation = Location 'b' 0 1, - boxType = Original $ solid 9, - boxBoring = True - }), - ('₁', Box { - boxColor = withForeColor defAttr green, - boxLocation = Location '1' 2 1, - boxType = Link '1', - boxBoring = True - }) - ] - } - -swap3 :: World -swap3 = parse - "player p\n\ - \block b blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓\n\ - \▓ b y ▓▓\n\ - \▓ ▓\n\ - \▓ p g ▓\n\ - \▓ ▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \block g green interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \ -▓▓▓\n\ - \▓▓▓▓ -▓▓\n\ - \▓▓▓▓= -▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block y yellow interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -swap4 :: World -swap4 = parse - "player p\n\ - \block b blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓\n\ - \▓ b g ▓\n\ - \▓ - ▓\n\ - \▓ = ▓p \n\ - \▓ - ▓\n\ - \▓ y ▓\n\ - \▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓ ▓\n\ - \▓ ▓\n\ - \▓▓-▓ ▓\n\ - \▓▓▓▓ ▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block y yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - - -swap5 :: World -swap5 = parse - "player p\n\ - \block b blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ g y ▓\n\ - \▓ p \n\ - \▓ b r ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ - - ▓\n\ - \▓ = ▓\n\ - \▓ - - ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \block y yellow interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓▓▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block r red interesting\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -cycle10 :: World -cycle10 = parse - "player p\n\ - \block g green interesting\n\ - \▓▓▓▓c▓▓▓▓\n\ - \▓▓▓▓1▓▓▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓ ▓▓▓\n\ - \▓ G p ▓▓▓\n\ - \▓ ▓▓▓\n\ - \▓ 2 3 ▓▓▓\n\ - \▓ ▓g▓\n\ - \▓ ▓ ▓\n\ - \link G g green\n\ - \block c yellow interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓ \n\ - \▓▓▓ = \n\ - \▓▓▓ \n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 1 red boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 2 red boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 3 red boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -player10 :: World -player10 = - World - (Map.fromList - [('a', - Box (Location 'a' 3 3) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓▓▓▓▓", - "▓▓ ▓▓▓", - "▓▓ ▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr cyan) - False), - ('p', - Box - (Location 'a' (-2) 0) - (Link 'c') - (withForeColor defAttr magenta) - True), - ('C', - Box - (Location 'a' 0 2) - (Link 'c') - (withForeColor defAttr magenta) - True), - ('c', - Box - (Location 'a' (-1) 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓ ", - "▓▓▓▓▓ ", - "▓▓▓▓▓ ", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr magenta) - False), - ('1', - Box - (Location 'a' (-3) 2) - (Original (solid 9)) - (withForeColor defAttr blue) - True) - ]) - 'p' - (Set.singleton (Location 'a' 2 1)) - (Location 'a' 3 1) - -player11 :: World -player11 = - World - (Map.fromList - [('_', - Box (Location '_' 3 3) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr cyan) - True), - ('a', - Box - (Location '_' 0 0) - (Original (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ])) - (withForeColor defAttr magenta) - True), - ('A', - Box - (Location 'a' 0 0) - (Link 'a') - (withForeColor defAttr brightMagenta) - True), - ('b', - Box - (Location 'a' (-1) (-4)) - (Original (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " " - ])) - (withForeColor defAttr yellow) - False), - ('1', - Box - (Location 'a' 0 4) - (Original (solid 9)) - (withForeColor defAttr blue) - True) - ]) - 'A' - (Set.fromList [Location 'a' 1 4, Location 'a' (-1) 4]) - (Location 'a' 1 (-4)) - -player18 :: World -player18 = - World - (Map.fromList - [('c', - Box (Location 'c' (-1) (-1)) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr yellow) - False), - ('u', - Box - (Location 'c' 0 0) - (Original (makeWalls [ - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr magenta) - False), - ('1', - Box - (Location 'c' (-1) 1) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('2', - Box - (Location 'c' 1 (-1)) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('3', - Box - (Location 'c' 1 1) - (Original (solid 9)) - (withForeColor defAttr blue) - True) - ]) - 'u' - (Set.singleton (Location 'u' (-1) 2)) - (Location 'u' 1 (-2)) - - -infiniteExit5 :: World -infiniteExit5 = - World - (Map.fromList - [('a', - Box (Location 'a' 3 (-1)) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓ ", - "▓ ", - "▓ ", - "▓ ", - "▓ ", - "▓ ", - "▓ ", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr yellow) - False), - ('∞', - Box - (Location 'a' (-2) (-3)) - (Infinity 'a') - (withForeColor defAttr yellow) - True), - ('p', - Box - (Location 'a' 0 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr magenta) - True) - ]) - 'p' - (Set.singleton (Location 'a' 0 1)) - (Location 'a' (-1) 1) - - -infiniteExit15 :: World -infiniteExit15 = parse - "player m\n\ - \block t cyan boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a cyan interesting\n\ - \▓▓▓G▓▓▓▓▓\n\ - \ ▓▓▓▓\n\ - \ P ▓▓-=\n\ - \ ▓--▓\n\ - \ p g -▓▓\n\ - \ m ▓▓▓▓\n\ - \ Π Γ ▓▓▓▓\n\ - \ ▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block m magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \block p red interesting\n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \ \n\ - \link G g green\n\ - \link P p red\n\ - \infinity Γ g green\n\ - \infinity Π p red\n" - -infiniteEnter17 :: World -infiniteEnter17 = - World - (Map.fromList - [('g', - Box (Location 'g' 2 (-2)) - (Original (makeWalls [ - " ▓▓", - " ▓▓", - " ▓▓", - " ▓▓", - " ▓ ▓", - " ▓▓", - " ▓▓▓", - "▓▓▓▓ ▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr green) - False), - ('∞', - Box - (Location 'g' 0 3) - (Infinity 'g') - (withForeColor defAttr green) - False), - ('G', - Box - (Location 'g' 1 2) - (Link 'g') - (withForeColor defAttr green) - True), - ('ε', - Box - (Location 'g' 3 0) - (Epsilon 'g' (makeWalls [ - "▓▓▓▓▓▓ ▓▓", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " "])) - (withForeColor defAttr green) - False), - ('1', - Box - (Location 'ε' 0 0) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('p', - Box - (Location 'g' 0 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr magenta) - True) - ]) - 'p' - (Set.fromList [Location 'g' (-2) (-1), Location 'g' (-2) (-2)]) - (Location 'g' (-2) 0) - - -infiniteEnter19 :: World -infiniteEnter19 = - World - (Map.fromList - [('w', - Box (Location 'w' 3 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓▓ ▓▓", - "▓ ▓ ▓ ▓", - "▓ ▓", - "▓ ▓▓▓▓▓ ▓", - "▓ ▓▓ ▓▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr white) - False), - ('g', - Box (Location 'w' (-3) (-1)) - (Original (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ▓ ", - " " - ])) - (withForeColor defAttr green) - False), - ('∞', - Box - (Location 'w' 2 (-3)) - (Infinity 'g') - (withForeColor defAttr green) - False), - ('G', - Box - (Location 'w' (-3) 1) - (Link 'g') - (withForeColor defAttr green) - True), - ('ε', - Box - (Location 'w' 2 3) - (Epsilon 'g' (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " "])) - (withForeColor defAttr green) - False), - ('p', - Box - (Location 'w' (-1) 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓ ▓▓▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr magenta) - True) - ]) - 'p' - (Set.fromList [Location 'w' 0 (-3), Location 'w' 0 (3)]) - (Location 'w' 0 0) - -infiniteEnter20 :: World -infiniteEnter20 = - World - (Map.fromList - [('_', Box - (Location '_' 0 0) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓ ▓ ▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓", - "▓▓▓▓▓▓▓▓▓"])) - (withForeColor defAttr white) - True), - ('w', - Box (Location '_' 0 2) - (Original (makeWalls [ - "▓▓▓▓▓▓▓▓▓", - "▓ ▓▓ ▓", - "▓ ▓▓ ▓", - "▓ ▓▓▓▓", - "▓ ▓ ▓", - "▓▓ ▓▓ ▓", - "▓ ▓", - "▓ ▓▓ ▓", - "▓▓▓▓▓▓▓▓▓" - ])) - (withForeColor defAttr white) - False), - ('r', - Box (Location 'w' 2 0) - (Original (makeWalls [ - " ", - " ", - " ", - " ▓▓▓ ", - " ▓▓▓ ", - " ▓▓▓ ", - " ", - " ", - " " - ])) - (withForeColor defAttr red) - False), - ('a', - Box - (Location 'w' 1 3) - (Link 'r') - (withForeColor defAttr red) - True), - ('b', - Box - (Location 'w' 2 3) - (Link 'r') - (withForeColor defAttr red) - True), - ('ε', - Box - (Location 'w' (-2) 3) - (Epsilon 'r' (makeWalls [ - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " "])) - (withForeColor defAttr red) - False), - ('1', - Box - (Location 'w' (-3) (-3)) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('2', - Box - (Location 'w' (-3) (-1)) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('3', - Box - (Location 'w' (-1) (-3)) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('4', - Box - (Location 'w' (-1) 0) - (Original (solid 9)) - (withForeColor defAttr blue) - True), - ('5', - Box - (Location 'w' 2 (-3)) - (Original (solid 9)) - (withForeColor defAttr blue) - True) - ]) - 'r' - Set.empty - (Location 'w' (-3) 3) - -eat11 :: World -eat11 = parse - "player p\n\ - \block t red boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓r▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block r red interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓\n\ - \▓▓ p y ▓▓\n\ - \▓▓ ▓▓\n\ - \▓▓ b g ▓▓\n\ - \▓▓= -▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block b blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block g green interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓-▓▓▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓▓▓▓ ▓▓▓▓\n\ - \▓▓▓▓-▓▓▓▓\n\ - \block y yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -multiInfinite5 :: World -multiInfinite5 = parse - "player p\n\ - \block b blue interesting\n\ - \▓▓▓ ▓\n\ - \▓▓▓ ▓\n\ - \▓▓▓ b 1 ▓\n\ - \▓=▓ p ▓\n\ - \▓-▓ 3 2 ▓\n\ - \▓-▓ ▓\n\ - \▓-▓ ▓\n\ - \▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \infinity 1 b blue\n\ - \infinity 2 1 blue\n\ - \infinity 3 2 blue\n" - -multiInfinite8 :: World -multiInfinite8 = parse - "player p\n\ - \block b blue interesting\n\ - \▓ ▓\n\ - \▓ ▓ ▓\n\ - \▓▓ ▓\n\ - \▓1 p A ▓\n\ - \▓▓ ▓\n\ - \▓2 ▓\n\ - \▓▓ ▓\n\ - \▓3 b▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \link A b blue\n\ - \link B b blue\n\ - \link C b blue\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \epsilon 1 b blue\n\ - \ \n\ - \ ▓ \n\ - \ ▓ \n\ - \ ▓ ▓▓\n\ - \ ▓ B ▓ \n\ - \ ▓ ▓▓\n\ - \ ▓ \n\ - \ \n\ - \ \n\ - \epsilon 2 1 blue\n\ - \ \n\ - \ \n\ - \ ▓▓ ▓ \n\ - \ ▓ ▓▓\n\ - \ ▓ ▓ \n\ - \ ▓ ▓▓\n\ - \ ▓▓ \n\ - \ \n\ - \ C x \n\ - \epsilon 3 2 blue\n\ - \ \n\ - \ \n\ - \ ▓▓ \n\ - \ ▓ ▓▓\n\ - \ ▓▓ = ▓ \n\ - \ ▓ ▓▓\n\ - \ ▓▓ \n\ - \ \n\ - \ \n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - - -transfer20 :: World -transfer20 = parse - "player p\n\ - \block t blue boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓ ▓\n\ - \▓ ▓\n\ - \▓ ABC ▓\n\ - \▓ p ▓\n\ - \▓ XYZ ▓\n\ - \▓ ▓\n\ - \▓ ▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \link A C cyan\n\ - \link B C cyan\n\ - \block C cyan interesting\n\ - \▓▓▓▓▓ ▓ ▓\n\ - \▓▓▓▓▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \ ▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓▓▓=▓\n\ - \▓ ▓▓▓▓▓ ▓\n\ - \link X Z green\n\ - \link Y Z green\n\ - \block Z green interesting\n\ - \▓ ▓ ▓▓▓▓▓\n\ - \▓ ▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓ ▓▓▓\n\ - \▓▓▓ ▓ ▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -transfer26 :: World -transfer26 = parse - "player p\n\ - \block t blue boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓a▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block a blue interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓\n\ - \▓ ▓\n\ - \▓ T x 1 ▓\n\ - \▓ ▓\n\ - \▓ p 3 2 ▓\n\ - \▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 1 cyan interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓ ▓▓\n\ - \ ▓▓ ▓▓\n\ - \ ▓▓ ▓▓\n\ - \ ▓▓ ▓▓\n\ - \▓▓▓▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 2 cyan interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓ ▓\n\ - \ ▓▓▓ ▓\n\ - \ ▓▓▓ ▓\n\ - \ ▓▓ ▓▓\n\ - \▓▓▓▓▓▓ ▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block 3 cyan interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓ ▓▓▓▓▓▓\n\ - \▓▓ ▓▓ \n\ - \▓ ▓▓ \n\ - \▓▓ ▓▓ \n\ - \▓ ▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block T green interesting\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \ \n\ - \▓▓▓ = ▓▓▓\n\ - \▓▓▓ ▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" - -transfer27 :: World -transfer27 = parse - "player p\n\ - \block t white boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓t▓ab▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \link A a blue\n\ - \block a blue interesting\n\ - \▓▓ y \n\ - \▓▓ \n\ - \▓▓ \n\ - \▓ \n\ - \▓B p \n\ - \▓ \n\ - \▓▓ \n\ - \▓▓ \n\ - \▓▓ x \n\ - \link B b red\n\ - \block b red interesting\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓\n\ - \ =-- A▓\n\ - \ ▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \ ▓▓\n\ - \block x yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block y yellow boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \block p magenta boring\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓ ▓▓▓ ▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n\ - \▓▓▓▓▓▓▓▓▓\n" \ No newline at end of file diff --git a/levels/center13.txt b/levels/center13.txt new file mode 100644 index 0000000..ef6287d --- /dev/null +++ b/levels/center13.txt @@ -0,0 +1,51 @@ +player p +block t cyan boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a cyan interesting +▓▓▓▓▓▓▓▓▓ +▓ p =▓ +▓ ▓ +▓ x g ▓ +▓ ▓ +▓ ▓▓▓ ▓▓ +▓ ▓-▓ ▓▓ +▓ ▓ ▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ + +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/center8.txt b/levels/center8.txt new file mode 100644 index 0000000..d74caf9 --- /dev/null +++ b/levels/center8.txt @@ -0,0 +1,51 @@ +player p +block t white boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a white interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓ +▓▓ p ▓▓ +▓ g ▓▓ +▓ ▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓- =▓▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + x ▓▓ + ▓▓▓▓▓ + + + + + + + +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/clone11.txt b/levels/clone11.txt new file mode 100644 index 0000000..6f470f4 --- /dev/null +++ b/levels/clone11.txt @@ -0,0 +1,22 @@ +player p +block a green boring +▓▓▓▓▓▓▓▓▓ +▓= ▓ ▓ +▓- ▓ a ▓ +▓- ▓ ▓ + p ▓ A +▓ ▓ ▓ +▓ ▓ ▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +link A a green +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/cycle10.txt b/levels/cycle10.txt new file mode 100644 index 0000000..122d256 --- /dev/null +++ b/levels/cycle10.txt @@ -0,0 +1,62 @@ +player p +block g green interesting +▓▓▓▓c▓▓▓▓ +▓▓▓▓1▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓ ▓▓▓ +▓ G p ▓▓▓ +▓ ▓▓▓ +▓ 2 3 ▓▓▓ +▓ ▓g▓ +▓ ▓ ▓ +link G g green +block c yellow interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓ +▓▓▓ = +▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 1 red boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 2 red boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 3 red boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/eat11.txt b/levels/eat11.txt new file mode 100644 index 0000000..04aa8f9 --- /dev/null +++ b/levels/eat11.txt @@ -0,0 +1,61 @@ +player p +block t red boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓r▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block r red interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓ +▓▓ p y ▓▓ +▓▓ ▓▓ +▓▓ b g ▓▓ +▓▓= -▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block b blue interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ + ▓▓ + ▓▓ + ▓▓ + ▓▓ + ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓-▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓-▓▓▓▓ +block y yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/enter2.txt b/levels/enter2.txt new file mode 100644 index 0000000..a490edf --- /dev/null +++ b/levels/enter2.txt @@ -0,0 +1,51 @@ +player p +block t white boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a white interesting +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓ +▓▓ cpb ▓▓ +▓▓ ▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ =▓ +▓▓ -▓ +▓▓▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +block c yellow interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block b blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/infiniteEnter17.txt b/levels/infiniteEnter17.txt new file mode 100644 index 0000000..cec4c8a --- /dev/null +++ b/levels/infiniteEnter17.txt @@ -0,0 +1,43 @@ +player p +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + ▓▓ + ▓▓ + --= ▓▓ + ▓▓ + ▓ p ∞▓ + G▓▓ + g ▓▓▓ +▓▓▓▓ε▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +infinity ∞ g green +link G g green +epsilon ε g green +▓▓▓▓▓▓ ▓▓ + 1 + + ▓▓ + ▓ + ▓▓ + ▓ + ▓▓ + +block 1 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/infiniteEnter19.txt b/levels/infiniteEnter19.txt new file mode 100644 index 0000000..ee36569 --- /dev/null +++ b/levels/infiniteEnter19.txt @@ -0,0 +1,53 @@ +player p +block t white boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓w▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block w white interesting +▓▓▓▓▓▓▓▓▓ +▓▓ g G ▓▓ +▓▓ ▓▓ +▓▓ p ▓▓ +▓-▓ = ▓-▓ +▓ ▓ +▓∞▓▓▓▓▓ε▓ +▓ ▓▓▓▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + + + + + + + + ▓ + +infinity ∞ g green +link G g green +epsilon ε g green + + + + + + + + + +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/infiniteEnter20.txt b/levels/infiniteEnter20.txt new file mode 100644 index 0000000..26c1dda --- /dev/null +++ b/levels/infiniteEnter20.txt @@ -0,0 +1,93 @@ +player r +block t white boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓w▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block w white interesting +▓▓▓▓▓▓▓▓▓ +▓1 2▓▓=▓ +▓ ▓▓ε▓ +▓4 3▓▓▓▓ +▓ ▓ ▓ +▓▓ ▓▓ a▓ +▓5 r b▓ +▓ ▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +block r red interesting + + + + ▓▓▓ + ▓▓▓ + ▓▓▓ + + + +link a r red +link b r red +epsilon ε r red + + + + + + + + + +block 1 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 2 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 3 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 4 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 5 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/infiniteExit15.txt b/levels/infiniteExit15.txt new file mode 100644 index 0000000..c90928a --- /dev/null +++ b/levels/infiniteExit15.txt @@ -0,0 +1,55 @@ +player m +block t cyan boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a cyan interesting +▓▓▓G▓▓▓▓▓ + ▓▓▓▓ + P ▓▓-= + ▓--▓ + p g -▓▓ + m ▓▓▓▓ + Π Γ ▓▓▓▓ + ▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block m magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + + + + + + + + + +block p red interesting + + + + + + + + + +link G g green +link P p red +infinity Γ g green +infinity Π p red diff --git a/levels/infiniteExit5.txt b/levels/infiniteExit5.txt new file mode 100644 index 0000000..9a38e0b --- /dev/null +++ b/levels/infiniteExit5.txt @@ -0,0 +1,22 @@ +player p +block a yellow interesting +▓▓▓▓▓▓▓▓▓ +▓▓ +▓∞ +▓ = +▓ p- +▓ +▓ +▓ a +▓▓▓▓▓▓▓▓▓ +infinity ∞ a yellow +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/multiInfinite5.txt b/levels/multiInfinite5.txt new file mode 100644 index 0000000..2e987bb --- /dev/null +++ b/levels/multiInfinite5.txt @@ -0,0 +1,24 @@ +player p +block b blue interesting +▓▓▓ ▓ +▓▓▓ ▓ +▓▓▓ b 1 ▓ +▓=▓ p ▓ +▓-▓ 3 2 ▓ +▓-▓ ▓ +▓-▓ ▓ +▓ ▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +infinity 1 b blue +infinity 2 1 blue +infinity 3 2 blue diff --git a/levels/multiInfinite8.txt b/levels/multiInfinite8.txt new file mode 100644 index 0000000..b4140a3 --- /dev/null +++ b/levels/multiInfinite8.txt @@ -0,0 +1,64 @@ +player p +block b blue interesting +▓ ▓ +▓ ▓ ▓ +▓▓ ▓ +▓1 p A ▓ +▓▓ ▓ +▓2 ▓ +▓▓ ▓ +▓3 b▓▓▓ +▓▓▓▓▓▓▓▓▓ +link A b blue +link B b blue +link C b blue +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +epsilon 1 b blue + + ▓ + ▓ + ▓ ▓▓ + ▓ B ▓ + ▓ ▓▓ + ▓ + + +epsilon 2 1 blue + + + ▓▓ ▓ + ▓ ▓▓ + ▓ ▓ + ▓ ▓▓ + ▓▓ + + C x +epsilon 3 2 blue + + + ▓▓ + ▓ ▓▓ + ▓▓ = ▓ + ▓ ▓▓ + ▓▓ + + +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/open4.txt b/levels/open4.txt new file mode 100644 index 0000000..93d33a0 --- /dev/null +++ b/levels/open4.txt @@ -0,0 +1,41 @@ +player p +block a cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓▓ +▓▓ ▓ +▓ a p ▓ +▓▓ ▓ +▓▓ g y ▓ +▓▓ ▓ +▓▓ ▓ +▓▓ ▓ +block g green interesting +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +block y yellow boring +▓▓▓▓▓▓ ▓▓ +▓▓▓▓▓▓=▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/player10.txt b/levels/player10.txt new file mode 100644 index 0000000..31e857e --- /dev/null +++ b/levels/player10.txt @@ -0,0 +1,43 @@ +player p +block t cyan boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓t▓▓▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓ 1▓▓ +▓▓ p ▓▓ +▓▓ c ▓▓ +▓▓ C▓▓ +▓▓ ▓▓▓▓▓▓ +▓▓ -▓▓▓ +▓▓ =▓▓▓ +▓▓▓▓▓▓▓▓▓ +link p c magenta +link C c magenta +block 1 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block c magenta interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓ +▓▓▓▓▓ +▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/player11.txt b/levels/player11.txt new file mode 100644 index 0000000..4ac5834 --- /dev/null +++ b/levels/player11.txt @@ -0,0 +1,42 @@ +player A +block t cyan boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓a▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓t▓ +▓▓▓▓▓▓▓▓▓ +block a red interesting + + + +b - += 1 +A - + + + +link A a magenta +block b yellow interesting + + + + + + + + + +block 1 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/player18.txt b/levels/player18.txt new file mode 100644 index 0000000..5f09321 --- /dev/null +++ b/levels/player18.txt @@ -0,0 +1,51 @@ +player u +block c yellow interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓ +▓▓ c 1 ▓▓ +▓▓ u +▓▓ 2 3 ▓▓ +▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block u magenta interesting +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓ -▓▓ +▓▓ ▓▓ +▓▓= ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 1 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 2 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓ ▓▓▓▓ +▓▓▓▓▓ ▓▓▓ +▓▓▓▓ ▓▓▓▓ +▓▓▓ ▓▓▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 3 blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓ ▓▓▓ +▓▓▓▓ ▓▓▓ +▓▓▓▓▓ ▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/swap3.txt b/levels/swap3.txt new file mode 100644 index 0000000..4f7afcc --- /dev/null +++ b/levels/swap3.txt @@ -0,0 +1,41 @@ +player p +block b blue interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓ +▓ b y ▓▓ +▓ ▓ +▓ p g ▓ +▓ ▓ +▓▓▓▓ ▓▓▓▓ +block g green interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ + -▓▓▓ +▓▓▓▓ -▓▓ +▓▓▓▓= -▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block y yellow interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/swap4.txt b/levels/swap4.txt new file mode 100644 index 0000000..3071e5c --- /dev/null +++ b/levels/swap4.txt @@ -0,0 +1,41 @@ +player p +block b blue interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ +▓ b g ▓ +▓ - ▓ +▓ = ▓p +▓ - ▓ +▓ y ▓ +▓ ▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓ ▓ ▓ +▓ ▓ +▓▓-▓ ▓ +▓▓▓▓ ▓ +▓▓▓▓ ▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block y yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/swap5.txt b/levels/swap5.txt new file mode 100644 index 0000000..6b45a78 --- /dev/null +++ b/levels/swap5.txt @@ -0,0 +1,51 @@ +player p +block b blue interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ +▓ ▓ +▓ g y ▓ +▓ p +▓ b r ▓ +▓ ▓ +▓ ▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ +▓ ▓ +▓ - - ▓ +▓ = ▓ +▓ - - ▓ +▓ ▓ +▓ ▓ +▓▓▓▓ ▓▓▓▓ +block y yellow interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ +▓ ▓ +▓ ▓ + ▓ +▓ ▓ +▓ ▓ +▓▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +block r red interesting +▓▓▓▓ ▓▓▓▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓ ▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/transfer14.txt b/levels/transfer14.txt new file mode 100644 index 0000000..7df27aa --- /dev/null +++ b/levels/transfer14.txt @@ -0,0 +1,41 @@ +player p +block a cyan interesting +▓▓ ▓▓ +▓ ▓ + + g + ▓ + p a + +▓ ▓ +▓▓ ▓▓ +block g green interesting + ▓▓▓ + ▓=▓ + - +▓▓ ▓▓▓ ▓▓ +▓ ▓ ▓ ▓ +▓▓ ▓▓▓ ▓▓ + + y ▓ ▓ + ▓▓▓ +block y yellow interesting +▓▓ ▓▓ +▓ ▓ + + + + + +▓ ▓ +▓▓ ▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/transfer20.txt b/levels/transfer20.txt new file mode 100644 index 0000000..fdbf388 --- /dev/null +++ b/levels/transfer20.txt @@ -0,0 +1,55 @@ +player p +block t blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a blue interesting +▓▓▓▓▓▓▓▓▓ +▓ ▓ ▓ +▓ ▓ +▓ ABC ▓ +▓ p ▓ +▓ XYZ ▓ +▓ ▓ +▓ ▓ ▓ +▓▓▓▓▓▓▓▓▓ +link A C cyan +link B C cyan +block C cyan interesting +▓▓▓▓▓ ▓ ▓ +▓▓▓▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ + ▓▓▓▓▓▓▓ +▓ ▓▓▓▓▓▓▓ +▓ ▓▓▓▓▓▓▓ +▓ ▓▓▓▓▓=▓ +▓ ▓▓▓▓▓ ▓ +link X Z green +link Y Z green +block Z green interesting +▓ ▓ ▓▓▓▓▓ +▓ ▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓ ▓ ▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/transfer26.txt b/levels/transfer26.txt new file mode 100644 index 0000000..dc060e7 --- /dev/null +++ b/levels/transfer26.txt @@ -0,0 +1,81 @@ +player p +block t blue boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a blue interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓ +▓ ▓ +▓ T x 1 ▓ +▓ ▓ +▓ p 3 2 ▓ +▓ ▓ +▓▓▓▓▓▓▓▓▓ +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 1 cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓ ▓▓ + ▓▓ ▓▓ + ▓▓ ▓▓ + ▓▓ ▓▓ +▓▓▓▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 2 cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓ ▓ + ▓▓▓ ▓ + ▓▓▓ ▓ + ▓▓ ▓▓ +▓▓▓▓▓▓ ▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block 3 cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓▓▓▓ +▓▓ ▓▓ +▓ ▓▓ +▓▓ ▓▓ +▓ ▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block T green interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ + +▓▓▓ = ▓▓▓ +▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/transfer27.txt b/levels/transfer27.txt new file mode 100644 index 0000000..77278ef --- /dev/null +++ b/levels/transfer27.txt @@ -0,0 +1,63 @@ +player p +block t white boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓ab▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +link A a blue +block a blue interesting +▓▓ y +▓▓ +▓▓ +▓ +▓B p +▓ +▓▓ +▓▓ +▓▓ x +link B b red +block b red interesting + ▓▓ + ▓▓ + ▓▓ + ▓ + =-- A▓ + ▓ + ▓▓ + ▓▓ + ▓▓ +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block y yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ ▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/levels/transfer8.txt b/levels/transfer8.txt new file mode 100644 index 0000000..01827de --- /dev/null +++ b/levels/transfer8.txt @@ -0,0 +1,71 @@ +player p +block t cyan boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓t▓a▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block a cyan interesting +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓ ▓▓▓ +▓▓ xb ▓▓▓ +▓▓ g▓▓ +▓▓ py ▓▓▓ +▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block g green interesting + ▓▓▓ + ▓ + +▓ ▓ +▓▓ = ▓▓ +▓ ▓ + + ▓ + ▓▓▓ +block b blue interesting + + + ▓▓▓ + ▓▓ ▓▓ + ▓ ▓ + ▓▓ ▓▓ + ▓▓▓ + + +block x yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block y yellow boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +block p magenta boring +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓ ▓▓▓ ▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ +▓▓▓▓▓▓▓▓▓ diff --git a/parabox.cabal b/parabox.cabal index bacdfa0..01ceaa7 100644 --- a/parabox.cabal +++ b/parabox.cabal @@ -24,6 +24,6 @@ executable parabox default-extensions: ImportQualifiedPost, BlockArguments, LambdaCase ghc-options: -threaded - build-depends: base ^>=4.17.0.0, array, containers, vty + build-depends: base ^>=4.17.0.0, array, containers, vty, directory, filepath hs-source-dirs: app default-language: Haskell2010