H大综合楼,一跃解千愁

-- fuck**u.hs
import Data.List
import Data.List.Split
-- *大综合楼
-- 一跃解千愁
getFloor :: Int -> String -> String
getFloor count char =
"│" ++ fuck char ++ "│"
where
fuck = concat.replicate count
build :: Int -> Int -> Int -> String
build width height jump =
concat (top : fuck ++ [ground])
where
top = '┌' : replicate (width * 2) '─' ++ "┐\n"
ground = '┴' : replicate (width * 2) '─' ++ "┴" ++ replicate 10 '─'
fuck = zipWith `++` (concat (replicate height floors)) overflow
where
floors = map (getFloor width) ["┌┐", "└┘"]
body = [" ╰O╯\n", " /\n", " /)\n"]
repl' p c = replicate c p
overflow = replicate ((height - jump) * 2 - 1) "\n" ++ body ++ replicate (jump * 2 - 1) "\n"
main :: IO ()
main = do
putStrLn "综合楼高 综合楼宽 飞翔层数"
params <- getLine
let [width, height, jump] = splitOn " " params in
putStrLn $ build (read width :: Int) (read height :: Int) (read jump :: Int)
putStrLn "*大综合楼\n一跃解千愁"

hehe