Skip to main content
3 of 6
added 388 characters in body
edc65
  • 32.2k
  • 3
  • 36
  • 90

#JavaScript (ES6) 340 372 446

Not counting indentation white space and newlines - could be golfed more. Using an '*' to mark new lines in input, as prompt accepts a single line.

F=s=>[0,13,26].map(r=>
  o+=[...s].map(c=> 
    '   \\1/ \\ /1\\ /  V  ^  1><1 --++-++-- 1||1||1 '.substr(
    (c=c.charCodeAt()-(c>'`'?97:65))<0
     ?0
     :c<18
       ?27+3*a[f=9,c%9+r+4]
       :c<26
         ?3*a[f=22,c%4+r]
         :0,3)
  .replace(1,13-r||c<f?' ':'.')
  ).join(' ')+'\n',o='',
  a='460234501201283173453453452054012012345'
)&&o;
console.log(prompt().split('*').map(s=>F(s)).join('\n'))

Test in FireFox/FireBug console

Input: ABCDEFGHIJKLMNOPQRSTUVWXYZHeLlO WoRlD!

  | | | |   --+ +-+ +-- --+ +-+ +--
  | | | |     | | | |     | | | |  
--+ +-+ +-- --+ +-+ +--   | | | |  

  | | | |   --+ +-+ +-- --+ +-+ +--
 .| |.| |.   .| |.| |.   .| |.| |. 
--+ +-+ +-- --+ +-+ +--   | | | |  

     \   /   ^ 
\ /   > <   / \
 V   /   \     

     \   /   ^ 
\./  .> <.  /.\
 V   /   \     

+-+ +-+ |   |   +--         +-- +-- |   --+    
| | | | |.  |.  |.      \./ |.  |.  |.    |    
| | +-+ +-- +-- +--      V  +-- |   +-- --+      
edc65
  • 32.2k
  • 3
  • 36
  • 90