module Data where import qualified Data.Text as T import Data.Maybe (fromJust) import Data.Yaml import qualified Data.ByteString as B import Data.Text.Encoding (encodeUtf8) packStr :: String -> B.ByteString packStr = encodeUtf8 . T.pack decodeLines :: [String] -> Value decodeLines = fromJust . decodeThrow . packStr . unlines packLine :: String -> Value packLine = String . T.pack packLines :: [String] -> Value packLines = String . T.pack . unlines geradeweg_1 :: Value geradeweg_1 = packLines $ [ "..... " , ".211." , "..2.. " , "3...4" , "....." ] geradeweg_1_sol :: Value geradeweg_1_sol = packLines $ [ "┌┐┌─┐" , "││└┐│ " , "│└─┘│" , "└──┐│" , " .└┘ " ] tightfit_1 :: Value tightfit_1 = packLines $ [ " --- " , "3/\\.-" , "-\\.\\4" , "-.\\/-" , " 35-" ] tightfit_broken_1 :: Value tightfit_broken_1 = packLines $ [ " --- " , "3/\\.-" , "-\\x\\4" , "-.\\/-" , " 35-" ] tightfit_broken_2 :: Value tightfit_broken_2 = packLines $ [ "3/\\.-" , "-\\x\\4" , "-.\\/-" , " 35-" ] tightfit_1_sol :: Value tightfit_1_sol = packLines $ [ "2/1 4\\5 3" , " 4\\5 3 2\\1 " , " 3 1\\2 5/4" ] tightfit_sol_broken :: Value tightfit_sol_broken = packLine "2/1 4 /5" tightfit_sol_broken_2 :: Value tightfit_sol_broken_2 = packLine "2/x 4 3/5" slalom_sol_broken :: Value slalom_sol_broken = packLine "//\\ /\\x5 " kpyramid_1 :: Value kpyramid_1 = packLines $ [ "G 3" , "G . ." , "G . . ." , "W .o. . ." , "G 1*.*.o.*6" ] kpyramid_1_sol :: Value kpyramid_1_sol = packLines $ [ " 3" , " 8 5" , " 1 9 4" , " 3 2 7 3" , "1 2 4 3 6" ] kpyramid_broken_1 :: Value kpyramid_broken_1 = packLines $ [ " G 3" , " G . 22" , " H . aa ." , " W .o. .|. " , " G 1*.*.o.*6" ] kpyramid_broken_2 :: Value kpyramid_broken_2 = packLines $ [ "G 3" , "G . 22" , "H . aa ." , "W .o. .|. " , "G 1*.*.o.*6" ] kpyramid_broken_3 :: Value kpyramid_broken_3 = packLines $ [ "G 3" , "G . ." , "G . . ." , "W .o. . ." , "G a*.*.o.*6" ] compass_1 :: Value compass_1 = decodeLines $ [ "grid: |" , " ..." , " a.b" , "clues:" , " a: 2 1 . 2" , " b: 21 . . 0" ] compass_broken_1 :: Value compass_broken_1 = decodeLines $ [ "grid: |" , " a.b" , "clues:" , " b: 21 . . 0" ] compass_broken_2 :: Value compass_broken_2 = decodeLines $ [ "grid: |" , " a.b" , "clues:" , " a: x . . 0" , " b: 21 . . 0" ] compass_broken_3 :: Value compass_broken_3 = decodeLines $ [ "grid: |" , " a.b" , "clues:" , " a: 1 . ." , " b: 21 . . 0" ] compass_broken_4 :: Value compass_broken_4 = decodeLines $ [ "grid: |" , " a.b" , "clues:" , " a: 1 . . 2 3" , " b: 21 . . 0" ] compass_broken_5 :: Value compass_broken_5 = decodeLines $ [ "grid: |" , " a3b" , "clues:" , " a: 1 . . 2 3" , " b: 21 . . 0" ] thermo_1 :: Value thermo_1 = packLines $ [ ".b..2." , "a.c5.1" , ".d..6." , ".4..c." , "5.3b.d" , ".2..a." ] thermo_2 :: Value thermo_2 = packLines $ [ "....2." , "..c5.1" , ".b..6." , "a..c.." , "a...b." , ".bc.a." ] thermo_broken_1 :: Value thermo_broken_1 = packLines $ [ ".." , "a." ] thermo_broken_2 :: Value thermo_broken_2 = packLines $ [ "bb" , "a." ] multioutside :: Value multioutside = decodeLines $ [ "left:" , " - [2, 1]" , " - [3]" , "right:" , " - []" , " - [1, 0]" , "bottom:" , " - [0, 0, 1]" , "top:" , " - [-1, 1]" ] boxof2or3_1 :: Value boxof2or3_1 = packLines $ [ "*-*-*-*-*" , "| | | | |" , "*-*-*-*-*" , "| | |" , "*-o-o-o-*" , " | | |" , "*-*-*-*-*" , "| | | | |" , "o-*-*-*-*" ] edgeGrid_1 :: Value edgeGrid_1 = packLines $ [ "o-*-*-o" , "|1|2 3" , "*-o" ]