Task

Write/display a language's name in 3D ASCII.



(We can leave the definition of "3D ASCII" fuzzy,
so long as the result is interesting or amusing,
not a cheap hack to satisfy the task.)



Related tasks

 draw a sphere
 draw a cuboid
 draw a rotating cube
 draw a Deathstar


/* NetRexx */
options replace format comments java crossref symbols nobinary
 
txt = '';
x = 0
x = x + 1; txt[0] = x; txt[x] = '   *    *            *****'
x = x + 1; txt[0] = x; txt[x] = '   **   *        *   *    *'
x = x + 1; txt[0] = x; txt[x] = '   * *  *  ***  ***  *    *  ***  *   * *   *'
x = x + 1; txt[0] = x; txt[x] = '   *  * * *   *  *   *****  *   *  * *   * *'
x = x + 1; txt[0] = x; txt[x] = '   *   ** *****  *   *  *   *****   *     *'
x = x + 1; txt[0] = x; txt[x] = '   *    * *      *   *   *  *      * *   * *'
x = x + 1; txt[0] = x; txt[x] = '   *    *  ***    ** *    *  ***  *   * *   *'
x = x + 1; txt[0] = x; txt[x] = ''
 
_top = '_TOP'
_bot = '_BOT'
txt = Banner3D(txt, isTrue())
loop ll = 1 to txt[0]
  say txt[ll, _top]
  say txt[ll, _bot]
  end ll
 
return
 
method Banner3D(txt, slope = '') public static
 
  select
    when slope = isTrue() then nop
    when slope = isFalse() then nop
    otherwise do
      if slope = '' then slope = isFalse()
                    else slope = isTrue()
      end
    end
 
  _top = '_TOP'
  _bot = '_BOT'
  loop ll = 1 to txt[0]
    txt[ll, _top] = txt[ll]
    txt[ll, _bot] = txt[ll]
    txt[ll, _top] = txt[ll, _top].changestr(' ', '   ')
    txt[ll, _bot] = txt[ll, _bot].changestr(' ', '   ')
    txt[ll, _top] = txt[ll, _top].changestr('*', '///')
    txt[ll, _bot] = txt[ll, _bot].changestr('*', '\\\\\\')
    txt[ll, _top] = txt[ll, _top] || ' '
    txt[ll, _bot] = txt[ll, _bot] || ' '
    txt[ll, _top] = txt[ll, _top].changestr('/ ', '/\\')
    txt[ll, _bot] = txt[ll, _bot].changestr('\\ ', '\\/')
    end ll
 
  if slope then do
    loop li = txt[0] to 1 by -1
      ll = txt[0] - li + 1
      txt[ll, _top] = txt[ll, _top].insert('', 1, li - 1, ' ')
      txt[ll, _bot] = txt[ll, _bot].insert('', 1, li - 1, ' ')
      end li
    end
 
  return txt
 
method isTrue public constant binary returns boolean
  return 1 == 1
 
method isFalse public constant binary returns boolean
  return \isTrue()
 