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


$include "seed7_05.s7i";
 
const array string: name is [] (
    " ***                  * ***** ",
    "*                     *     * ",
    "*      ***   ***   ****     * ",
    "*     *   * *   * *   *    *  ",
    " ***  *   * *   * *   *    *  ",
    "    * ***** ***** *   *   *   ",
    "    * *     *     *   *   *   ",
    "    * *     *     *   *  *    ",
    " ***   ***   ***   ****  *    ");
 
const proc: main is func
  local
    var integer: index is 0;
    var string: help is "";
    var string: line is "";
    var string: previousLine is "";
    var integer: pos is 0;
  begin
    for index range 1 to length(name) do
      help := replace(name[index], " ", "   ");
      line := "" lpad length(name) - index <&
              replace(replace(help, "*", "///"), "/ ", "/\\");
      if previousLine = "" then
        writeln(line);
      else
        for pos range 1 to length(line) do
          if line[pos] <> ' ' then
            write(line[pos]);
          else
            write(previousLine[pos]);
          end if;
        end for;
        writeln;
      end if;
      previousLine := "" lpad length(name) - index <&
                      replace(replace(help, "*", "\\\\\\"), "\\ ", "\\/");
    end for;
    writeln(previousLine);
  end func;