fork download
  1. ;;;; Based on //ideone.com/VLzcnO
  2.  
  3. (defun show (pattern)
  4. (let* ((characters " ��└�│┌├�┘─┴┐┤┬┼")
  5. (w (length (car pattern)))
  6. (h (length pattern))
  7. (m (make-array (list (+ (* h 2) 1)
  8. (+ (* w 2) 1))
  9. :element-type 'integer
  10. :initial-element 0)))
  11.  
  12. (macrolet ((setf-logior (place integer)
  13. `(setf ,place (logior ,place ,integer))))
  14. (loop for y from 0 below h
  15. do (loop for x from 0 below w
  16. when (eql (elt (elt pattern y) x) #\#)
  17. do (let ((x (* x 2))
  18. (y (* y 2)))
  19. (setf-logior (aref m (+ y 0) (+ x 0)) 6)
  20. (setf-logior (aref m (+ y 0) (+ x 1)) 14)
  21. (setf-logior (aref m (+ y 0) (+ x 2)) 12)
  22. (setf-logior (aref m (+ y 1) (+ x 0)) 7)
  23. (setf-logior (aref m (+ y 1) (+ x 1)) 15)
  24. (setf-logior (aref m (+ y 1) (+ x 2)) 13)
  25. (setf-logior (aref m (+ y 2) (+ x 0)) 3)
  26. (setf-logior (aref m (+ y 2) (+ x 1)) 11)
  27. (setf-logior (aref m (+ y 2) (+ x 2)) 9)))))
  28.  
  29. (loop for y from 0 below (array-dimension m 0)
  30. do (loop for x from 0 below (array-dimension m 1)
  31. do (princ (char characters (aref m y x))))
  32. (terpri))))
  33.  
  34. (loop for pattern = (loop for line = (read-line t nil nil)
  35. until (or (equal line "")
  36. (null line))
  37. collect line)
  38. while pattern
  39. do (show pattern)
  40. when (listen t)
  41. do (write-line "--------------------------------------------------"))
  42.  
Success #stdin #stdout 0s 203840KB
stdin
#

.#

#..###.####.
..#.....##.#
#.#....#.#.#
....#.#...#.

....#.......
.#...#......
####...#.#.#
.#.#......#.
.#.#.....#..
stdout
┌┬┐
├┼┤
└┴┘
--------------------------------------------------
  ┌┬┐
  ├┼┤
  └┴┘
--------------------------------------------------
┌┬┐   ┌┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┐  
├┼┤   ├┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┤  
└┴┘ ┌┬┼┴┴┴┴┴┘ └┴┼┼┼┼┼┴┼┬┐
    ├┼┤         ├┼┼┼┤ ├┼┤
┌┬┐ ├┼┤       ┌┬┼┴┼┼┤ ├┼┤
├┼┤ ├┼┤       ├┼┤ ├┼┤ ├┼┤
└┴┘ └┴┘ ┌┬┐ ┌┬┼┴┘ └┴┼┬┼┴┘
        ├┼┤ ├┼┤     ├┼┤  
        └┴┘ └┴┘     └┴┘  
--------------------------------------------------
        ┌┬┐              
        ├┼┤              
  ┌┬┐   └┴┼┬┐            
  ├┼┤     ├┼┤            
┌┬┼┼┼┬┬┬┐ └┴┘ ┌┬┐ ┌┬┐ ┌┬┐
├┼┼┼┼┼┼┼┤     ├┼┤ ├┼┤ ├┼┤
└┴┼┼┼┴┼┼┤     └┴┘ └┴┼┬┼┴┘
  ├┼┤ ├┼┤           ├┼┤  
  ├┼┤ ├┼┤         ┌┬┼┴┘  
  ├┼┤ ├┼┤         ├┼┤    
  └┴┘ └┴┘         └┴┘