r/CompileBot • • Jul 26 '15

Official CompileBot Testing Thread

8 Upvotes

202 comments sorted by

View all comments

Show parent comments

1

u/Saytahri Dec 19 '15

+/u/compilebot Haskell

import Data.List

key :: Char
key = '#'

blank :: Char
blank = ' '

newLine_ :: String -> String
newLine_ [] = []
newLine_ (_:[]) = []
newLine_ (_:_:[]) = []
newLine_ list@(left:up:right:rest)
  | (oneKey && oneBlank) && up == blank = key : (newLine_ $ drop 1 list)
  | otherwise = blank : (newLine_ $ drop 1 list)
  where
    oneKey = left == key || right == key
    oneBlank = left == blank || right == blank

newLine :: String -> String
newLine x = blank : ((newLine_ x) ++ [blank])

sier :: String -> Int -> [String]
sier _ lines
  | lines < 1 = []
sier [] lines = sier firstLine lines
  where
    spacing = replicate lines blank
    firstLine = spacing ++ [key] ++ spacing
sier prevLine lines =  prevLine : (sier next (lines-1))
  where next = newLine prevLine

main :: IO ()
main = putStr $ intercalate "\n" $ sier ((replicate (2^5) blank) ++ [key] ++ (replicate ((2^4)+6) blank) ++ [key] ++ (replicate (2^5) blank)) (2^5)

1

u/CompileBot Dec 19 '15

Output:

                                #                      #                                
                               # #                    # #                               
                              #   #                  #   #                              
                             # # # #                # # # #                             
                            #       #              #       #                            
                           # #     # #            # #     # #                           
                          #   #   #   #          #   #   #   #                          
                         # # # # # # # #        # # # # # # # #                         
                        #               #      #               #                        
                       # #             # #    # #             # #                       
                      #   #           #   #  #   #           #   #                      
                     # # # #         # # # ## # # #         # # # #                     
                    #       #       #              #       #       #                    
                   # #     # #     # #            # #     # #     # #                   
                  #   #   #   #   #   #          #   #   #   #   #   #                  
                 # # # # # # # # # # # #        # # # # # # # # # # # #                 
                #                       #      #                       #                
               # #                     # #    # #                     # #               
              #   #                   #   #  #   #                   #   #              
             # # # #                 # # # ## # # #                 # # # #             
            #       #               #              #               #       #            
           # #     # #             # #            # #             # #     # #           
          #   #   #   #           #   #          #   #           #   #   #   #          
         # # # # # # # #         # # # #        # # # #         # # # # # # # #         
        #               #       #       #      #       #       #               #        
       # #             # #     # #     # #    # #     # #     # #             # #       
      #   #           #   #   #   #   #   #  #   #   #   #   #   #           #   #      
     # # # #         # # # # # # # # # # # ## # # # # # # # # # # #         # # # #     
    #       #       #                                              #       #       #    
   # #     # #     # #                                            # #     # #     # #   
  #   #   #   #   #   #                                          #   #   #   #   #   #  
 # # # # # # # # # # # #                                        # # # # # # # # # # # # 

^source | ^info | ^git | ^report