Write language name in 3D ASCII: Difference between revisions

m
m (added whitespace before the TOC (table of contents), added a ;Task: (bold) header.)
 
(71 intermediate revisions by 40 users not shown)
Line 4:
 
;Task:
TheWrite/display task is to write thea 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 sphere]]
* [[Draw_a_cuboid|draw a cuboid]]
* [[Draw_a_rotating_cube|draw a rotating cube]]
* [[Death_Star|draw a Deathstar]]
<br><br>
 
=={{header|11l}}==
<syntaxhighlight lang="11l">V s =
|‘ XX
X
X
X
X
X
XXXXX’
 
V lines = s.split("\n")
V width = max(lines.map(l -> l.len))
 
L(line) lines
print((‘ ’ * (lines.len - L.index - 1))‘’(line.ljust(width).replace(‘ ’, ‘ ’).replace(‘X’, ‘__/’) * 3))</syntaxhighlight>
 
{{out}}
<pre>
__/__/ __/__/ __/__/
__/ __/ __/
__/ __/ __/
__/ __/ __/
__/ __/ __/
__/ __/ __/
__/__/__/__/__/ __/__/__/__/__/ __/__/__/__/__/
</pre>
 
=={{header|360 Assembly}}==
3D EBCDIC. This program does nothing clever in any way: it just prints out strings.
<langsyntaxhighlight lang="360asm">THREED CSECT
STM 14,12,12(13)
BALR 12,0
Line 25 ⟶ 60:
BR 14
LTORG
END</langsyntaxhighlight>
{{out}}
<pre>
Line 36 ⟶ 71:
 
</pre>
 
=={{header|Action!}}==
Atari 8-bit computers use [https://en.wikipedia.org/wiki/ATASCII ATASCII] character set which is a variation of ASCII.
<syntaxhighlight lang="action!">BYTE ARRAY data = [
$00 $00 $00 $00 $4E $4E $4E $00 $00 $00 $00 $00 $00 $00 $00 $00 $4E $00 $00 $00 $00 $4E $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $4E $00 $00 $00
$00 $00 $00 $46 $47 $00 $00 $47 $00 $00 $00 $00 $00 $00 $00 $42 $47 $47 $00 $00 $42 $47 $47 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $42 $47 $47 $00 $00
$00 $00 $42 $47 $48 $80 $80 $80 $4A $00 $00 $4E $4E $4E $00 $42 $00 $80 $4E $00 $00 $47 $80 $00 $00 $4E $4E $00 $00 $00 $4E $4E $4E $00 $00 $42 $00 $80 $00 $00
$00 $00 $42 $00 $80 $00 $42 $00 $80 $00 $46 $47 $00 $00 $47 $42 $00 $80 $00 $47 $00 $4E $00 $00 $46 $47 $00 $47 $00 $42 $47 $00 $00 $47 $00 $42 $00 $80 $00 $00
$00 $00 $42 $00 $80 $00 $42 $00 $80 $42 $47 $48 $80 $80 $80 $42 $00 $80 $80 $80 $42 $47 $47 $42 $47 $48 $80 $80 $4A $42 $00 $80 $80 $80 $4A $42 $00 $80 $00 $00
$00 $00 $42 $00 $80 $4D $4D $47 $80 $42 $00 $80 $00 $00 $00 $42 $00 $80 $00 $00 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $00 $00
$00 $00 $42 $00 $80 $80 $80 $80 $80 $42 $00 $80 $00 $00 $00 $42 $00 $80 $00 $00 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $00 $47 $80 $00 $00
$00 $00 $42 $00 $80 $00 $42 $00 $80 $42 $00 $80 $4E $4E $00 $42 $00 $80 $4E $00 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $42 $00 $80 $00 $4E $00 $00 $00
$00 $00 $42 $00 $80 $00 $42 $00 $80 $00 $47 $80 $00 $00 $47 $00 $47 $80 $00 $47 $42 $00 $80 $00 $47 $80 $4D $47 $80 $42 $00 $80 $42 $00 $80 $42 $47 $47 $00 $00
$00 $00 $00 $47 $80 $00 $00 $47 $80 $00 $00 $CA $80 $80 $80 $00 $00 $CA $80 $80 $00 $47 $80 $00 $00 $CA $80 $80 $C8 $00 $47 $80 $00 $47 $80 $00 $47 $80 $00 $00]
 
PROC Main()
BYTE POINTER ptr
 
Graphics(0)
SetColor(2,0,2)
ptr=PeekC(88)+280
MoveBlock(ptr,data,400)
RETURN</syntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Write_language_name_in_3D_ASCII.png Screenshot from Atari 8-bit computer]
 
=={{header|Ada}}==
Quotes are not escaped by \ in ada (nor does \ have any meaning in strings),
so this turns out highlighting funny.
<langsyntaxhighlight Adalang="ada">with Ada.Text_IO; use Ada.Text_IO;
with Ada.Strings.Fixed; use Ada.Strings.Fixed;
procedure AsciiArt is
Line 56 ⟶ 116:
if i mod 3 = 0 then New_Line; Put(i/3*' '); end if;
end loop;
end AsciiArt;</langsyntaxhighlight>
{{out}}
<pre>
Line 68 ⟶ 128:
\/\\\ \/\\\ \/\\\\\\\\\\\\ \/\\\\\\\\\\\\
\/// \/// \//////////// \////////////</pre>
 
=={{header|Arturo}}==
 
<syntaxhighlight lang="rebol">print {:
______ __
/\ _ \ /\ \__
\ \ \L\ \ _ __\ \ ,_\ __ __ _ __ ___
\ \ __ \/\`'__\ \ \/ /\ \/\ \/\`'__\/ __`\
\ \ \/\ \ \ \/ \ \ \_\ \ \_\ \ \ \//\ \L\ \
\ \_\ \_\ \_\ \ \__\\ \____/\ \_\\ \____/
\/_/\/_/\/_/ \/__/ \/___/ \/_/ \/___/
:}</syntaxhighlight>
 
{{out}}
 
<pre> ______ __
/\ _ \ /\ \__
\ \ \L\ \ _ __\ \ ,_\ __ __ _ __ ___
\ \ __ \/\`'__\ \ \/ /\ \/\ \/\`'__\/ __`\
\ \ \/\ \ \ \/ \ \ \_\ \ \_\ \ \ \//\ \L\ \
\ \_\ \_\ \_\ \ \__\\ \____/\ \_\\ \____/
\/_/\/_/\/_/ \/__/ \/___/ \/_/ \/___/</pre>
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight lang="autohotkey">AutoTrim, Off
draw =
(
Line 87 ⟶ 169:
 
GuiClose:
ExitApp</langsyntaxhighlight>
{{out}}
<pre> ______ __ __ __ __
Line 97 ⟶ 179:
 
=={{header|AWK}}==
<syntaxhighlight lang="awk">
<lang AWK>
# syntax: GAWK -f WRITE_LANGUAGE_NAME_IN_3D_ASCII.AWK
BEGIN {
Line 116 ⟶ 198:
exit(0)
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 128 ⟶ 210:
_/ _/ _/ _/ _/ _/
</pre>
=={{header|Batch File}}==
<lang batch>@echo off
echo ****** ** **
echo /*////** /** /**
echo /* /** ****** ****** ***** /**
echo /****** //////** ///**/ **///**/******
echo /*//// ** ******* /** /** // /**///**
echo /* /** **////** /** /** **/** /**
echo /******* //******** //** //***** /** /**
echo /////// //////// // ///// // // </lang>
 
=={{header|BASIC}}==
 
==={{header|Applesoft BASIC}}===
Ported from [[Write language name in 3D ASCII#ZX Spectrum Basic|ZX Spectrum Basic]].<langsyntaxhighlight ApplesoftBasiclang="applesoftbasic">10 S$ = "BASIC" : REM OUR LANGUAGE NAME
20 DIM B(5,5) : REM OUR BIGMAP CHARACTERS
30 FOR L = 1 TO 5 : REM 5 CHARACTERS
Line 190 ⟶ 262:
9030 DATA 31,4,4,4,31: REM I
9040 DATA 14,17,16,17,14: REM C
</syntaxhighlight>
</lang>
 
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
Uses the built-in '''BBC Micro'''-compatible character generator, so any text can be specified.
<langsyntaxhighlight lang="bbcbasic"> PROC3dname("BBC BASIC")
END
Line 216 ⟶ 288:
PRINT
NEXT row%
ENDPROC</langsyntaxhighlight>
{{out}}
<pre>
Line 231 ⟶ 303:
==={{header|FreeBASIC}}===
freebasic is quite a long name, so I have done a combi.
<langsyntaxhighlight FreeBASIClang="freebasic">dim as integer yres=hiword(width)
dim as integer xres=loword(width)
 
Line 258 ⟶ 330:
print "BASIC"
Sleep
</syntaxhighlight>
</lang>
{{out}}
<pre> \ \ \ \ \ \ \ \ \ \ \ \
Line 279 ⟶ 351:
 
==={{header|Liberty BASIC}}===
<syntaxhighlight lang="lb">
<lang lb>
r=21:s=9:c=s
For i=1 To 11
Line 298 ⟶ 370:
Next
Data 479667712,311470336,485697536,311699712,476292608,0,1976518785,1160267905,1171157123,1160267909,1171223529
</syntaxhighlight>
</lang>
 
{{out}}
Line 329 ⟶ 401:
 
==={{header|Locomotive Basic}}===
<langsyntaxhighlight lang="locobasic">10 mode 2:defint a-z
20 locate 1,25
30 print "Basic";
Line 353 ⟶ 425:
230 locate xp,yp+1
240 print "\\/";
250 return</langsyntaxhighlight>
 
{{Out}}
Line 368 ⟶ 440:
 
==={{header|TI-83 BASIC}}===
<langsyntaxhighlight lang="ti83b">Disp “ .....+ .....+
Disp “ +o+ooo +o+ooo
Disp “ .o .o
Line 374 ⟶ 446:
Disp “ +o +ooooo
Disp “
Disp “ BASIC</langsyntaxhighlight>
 
Replace . + o with 0x81,0x80,and 0x7F http://tibasicdev.wikidot.com/one-byte-tokens
Line 385 ⟶ 457:
to cause a colour switch using a traditional space (ascii 32),
but the output would still look the same.
Fixed the error and removed the need for 2^z.
 
<langsyntaxhighlight lang="zxbasic"> 10 LETDIM s$="BASIC"b(5,5): REM our languagebigmap namecharacters
20 DIMFOR l=1 TO b(5,5): REM our bigmap5 characters
30 FOR l m= 1 TO 5: REM 5 charactersrows
40 READ b(m,l)
40 FOR m = 1 TO 5: REM 5 rows
50 READNEXT b(l,m)
60 NEXT ml
70 PAPER 0: BORDER 0: REM black background and border
70 NEXT l
80 INK 2: REM our shadow will be red
 
90 CLS
100 PAPER 0: REM black background
110 100 INKLET 2r=8: REM our shadow will bestart on row red8
110 LET c=1: REM shadow will start at column 1
120 CLS
130 120 LETGO r=9SUB 2000: REM draw shadow will start on row 5
140 130 LETINK c=26: REM shadowour foreground will start at columnbe 2yellow
140 LET r=9: REM foreground will start on row 9
150 GO SUB 2000: REM draw shadow
160 150 INKLET 6c=2: REM our forgroundforeground will bestart on column yellow2
160 GO SUB 2000: REM display the language name
170 LET r=10: REM foreground will start on row 6
999 STOP
180 LET c=3: REM foreground will start on column 3
190 GO SUB 2000: REM display the language name
 
999 STOP
 
1000 REM convert to binary bigmap
1010 LET tz=n: REM temporary variable16
1020 IF t>=z THEN PRINT AT r+l-1,c+c1;CHR$ (143);: LET t=t-z: REM 143 is a block
1020 LET g$="": REM this will contain our 5 character binary bigmap
1040 FORLET zc1=5c1+1: TOLET 0 STEP -1z=z/2
1050 IF z>=1 THEN GO TO 1020
1050 LET d$=" ": REM assume next digit is zero (draw a space)
1060 RETURN
1060 IF t>=(2^z) THEN LET d$=CHR$(143): LET t=t-(2^z): LET sf=1: REM 143 is a block
1070 LET g$=g$+d$
1080 NEXT z
1090 RETURN
 
2000 REM display the big letters
2010 FOR l=1 TO 5: LET c1=0: REM our 5 rows
2020 PRINT AT r+l-1,c;
2030 FOR m=1 TO 5: REM bigmap for each character
2040 LET nt=b(l,m)
2050 GO SUB 1000
2060 LET c1=c1+1: REM PRINT g$" ";: REM 5space between charactereach bigmapletter
2070 NEXT m
2070 PRINT " ";: REM space between each letter
2080 NEXT ml
2090 NEXT lRETURN
2100 RETURN
 
9000 DATA 30,17,30,17,30: REM B
9010 DATA 14,17,31,17,17: REM A
9020 DATA 15,16,14,1,30: REM S
9030 DATA 31,4,4,4,31: REM I
9040 DATA 14,17,16,17,14: REM C</langsyntaxhighlight>
 
To me it does not work. So I bring my particular solution:
 
<langsyntaxhighlight lang="zxbasic">5 PAPER 0: CLS
10 LET d=0: INK 1: GO SUB 40
20 LET d=1: INK 6: GO SUB 40
Line 454 ⟶ 515:
150 DATA "XXX XXXX XXX X X "
160 DATA "X X X X X X X "
170 DATA "XXX X X XXX X XXX"</langsyntaxhighlight>
 
[[File:Basic.jpg]]
 
=={{header|Batch File}}==
<syntaxhighlight lang="dos">@echo off
for %%b in (
""
" /####### ###### /######## ###### /## /##"
"| ##__ ## /##__ ##|__ ##__/ /##__ ##| ## | ##"
"| ## | ##| ## | ## | ## | ## \__/| ## | ##"
"| ####### | ######## | ## | ## | ########"
"| ##__ ##| ##__ ## | ## | ## | ##__ ##"
"| ## | ##| ## | ## | ## | ## /##| ## | ##"
"| #######/| ## | ## | ## | ######/| ## | ##"
"|_______/ |__/ |__/ |__/ \______/ |__/ |__/"
""
) do echo(%%~b
pause</syntaxhighlight>
 
=={{header|Befunge}}==
 
===Befunge-93===
<langsyntaxhighlight Befungelang="befunge">0" &7&%h&'&%| &7&%7%&%&'&%&'&%&7&%"v
v"'%$%'%$%3$%$%7% 0%&7&%&7&(%$%'%$"<
>"%$%7%$%&%$%&'&%7%$%7%$%, '&+(%$%"v
Line 469 ⟶ 546:
? ";(;(+(+$%+(%&(;(3%$%&$ 7`+( ":v >
^v!:-1<\,:g7+*63%4 \/_#4:_v#:-*84_$@
$_\:,\^ >55+,$:^:$</langsyntaxhighlight>
{{out}}
<pre>
Line 485 ⟶ 562:
(It adds line offset to those strings,and the strings are encoded with numbers just because.)
{{works with|CCBI|2.1}}
<syntaxhighlight lang="befunge">
<lang Befunge>
v THE DATA IMAGE.(totally useless after loading into stack)
>89 v Made by gamemanj
Line 521 ⟶ 598:
" "
^ $,< < < (code path reuse here,all 3 end in ,$ so I merged them)
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 533 ⟶ 610:
</pre>
 
=={{header|Binary Lambda Calculus}}==
 
Using the fact that an asterisk at the start of a program copies the rest to stdout:
 
<pre>* ____
/\ _`\ __
\ \ \L\ \ /\_\ ___ __ _ __ __ __
\ \ _ <'\/\ \ /' _ `\ /'__`\ /\`'__\/\ \/\ \
\ \ \L\ \\ \ \/\ \/\ \/\ \L\.\_\ \ \/ \ \ \_\ \
\ \____/ \ \_\ \_\ \_\ \__/.\_\\ \_\ \/`____ \
\/___/ \/_/\/_/\/_/\/__/\/_/ \/_/ `/___/> \
__ __ __ /\___/
/\ \ /\ \ /\ \ \/__/
\ \ \ __ ___ ___\ \ \____ \_\ \ __
\ \ \ __ /'__`\ /' __` __`\ \ '__`\ /'_` \ /'__`\
\ \ \L\ \/\ \L\.\_/\ \/\ \/\ \ \ \L\ \/\ \L\ \/\ \L\.\_
\ \____/\ \__/.\_\ \_\ \_\ \_\ \_,__/\ \___,_\ \__/.\_\
\/___/ \/__/\/_/\/_/\/_/\/_/\/___/ \/__,_ /\/__/\/_/
____ ___ ___
/\ _`\ /\_ \ /\_ \
\ \ \/\_\ __ \//\ \ ___ __ __\//\ \ __ __ ____
\ \ \/_/_ /'__`\ \ \ \ /'___\/\ \/\ \ \ \ \ /\ \/\ \ /',__\
\ \ \L\ \/\ \L\.\_ \_\ \_/\ \__/\ \ \_\ \ \_\ \_\ \ \_\ \/\__, `\
\ \____/\ \__/.\_\/\____\ \____\\ \____/ /\____\\ \____/\/\____/
\/___/ \/__/\/_/\/____/\/____/ \/___/ \/____/ \/___/ \/___/</pre>
 
=={{header|Brainf***}}==
Coming up with decent 3D font was honestly the hardest part.
<langsyntaxhighlight lang="bf">++++[>++++>++<[>>++>+++>++++++> ++++++<<<<<-]<-]>>++>..>->---->
-...[<]<+++[>++++[>>...<<-]<-]> >>..>>>.....<<<..>>>...[<]++[>>
.....>>>...<<<<<-]>.>.>.>.<<..> >.[<]<+++++[>++++[>>.<<-]<-]>>>
Line 551 ⟶ 653:
..>>.<<.>>.>......<..>..<.<<..> >.<<.>>.>...<<.>.>..<..>..<..>.
.<..<<.>>.>..<..>..<.<<<.>..... .>>.<.>>......<<..>>..<<.<...>>
.<.>>..<<.>.<.>>..<<..>>..<<..> >..<<.<.>>.<.>>..<<..>>..<<.<<.</langsyntaxhighlight>
{{out}}
<pre>
Line 565 ⟶ 667:
 
=={{header|C}}==
3D enough?<langsyntaxhighlight lang="c">#include <stdio.h>
const char*s = " _____\n /____/\\\n/ ___\\/\n\\ \\/__/\n \\____/";
int main(){ puts(s); return 0; }</langsyntaxhighlight>
{{out}}
<pre>
Line 577 ⟶ 679:
</pre>
 
=={{header|C sharp|C#}}==
<syntaxhighlight lang="csharp">using System;
using System.Text;
 
namespace Language_name_in_3D_ascii
{
public class F5
{
char[] z = { ' ', ' ', '_', '/', };
long[,] f ={
{87381,87381,87381,87381,87381,87381,87381,},
{349525,375733,742837,742837,375733,349525,349525,},
{742741,768853,742837,742837,768853,349525,349525,},
{349525,375733,742741,742741,375733,349525,349525,},
{349621,375733,742837,742837,375733,349525,349525,},
{349525,375637,768949,742741,375733,349525,349525,},
{351157,374101,768949,374101,374101,349525,349525,},
{349525,375733,742837,742837,375733,349621,351157,},
{742741,768853,742837,742837,742837,349525,349525,},
{181,85,181,181,181,85,85,},
{1461,1365,1461,1461,1461,1461,2901,},
{742741,744277,767317,744277,742837,349525,349525,},
{181,181,181,181,181,85,85,},
{1431655765,3149249365L,3042661813L,3042661813L,3042661813L,1431655765,1431655765,},
{349525,768853,742837,742837,742837,349525,349525,},
{349525,375637,742837,742837,375637,349525,349525,},
{349525,768853,742837,742837,768853,742741,742741,},
{349525,375733,742837,742837,375733,349621,349621,},
{349525,744373,767317,742741,742741,349525,349525,},
{349525,375733,767317,351157,768853,349525,349525,},
{374101,768949,374101,374101,351157,349525,349525,},
{349525,742837,742837,742837,375733,349525,349525,},
{5592405,11883957,11883957,5987157,5616981,5592405,5592405,},
{366503875925L,778827027893L,778827027893L,392374737749L,368114513237L,366503875925L,366503875925L,},
{349525,742837,375637,742837,742837,349525,349525,},
{349525,742837,742837,742837,375733,349621,375637,},
{349525,768949,351061,374101,768949,349525,349525,},
{375637,742837,768949,742837,742837,349525,349525,},
{768853,742837,768853,742837,768853,349525,349525,},
{375733,742741,742741,742741,375733,349525,349525,},
{192213,185709,185709,185709,192213,87381,87381,},
{1817525,1791317,1817429,1791317,1817525,1398101,1398101,},
{768949,742741,768853,742741,742741,349525,349525,},
{375733,742741,744373,742837,375733,349525,349525,},
{742837,742837,768949,742837,742837,349525,349525,},
{48053,23381,23381,23381,48053,21845,21845,},
{349621,349621,349621,742837,375637,349525,349525,},
{742837,744277,767317,744277,742837,349525,349525,},
{742741,742741,742741,742741,768949,349525,349525,},
{11883957,12278709,11908533,11883957,11883957,5592405,5592405,},
{11883957,12277173,11908533,11885493,11883957,5592405,5592405,},
{375637,742837,742837,742837,375637,349525,349525,},
{768853,742837,768853,742741,742741,349525,349525,},
{6010197,11885397,11909973,11885397,6010293,5592405,5592405,},
{768853,742837,768853,742837,742837,349525,349525,},
{375733,742741,375637,349621,768853,349525,349525,},
{12303285,5616981,5616981,5616981,5616981,5592405,5592405,},
{742837,742837,742837,742837,375637,349525,349525,},
{11883957,11883957,11883957,5987157,5616981,5592405,5592405,},
{3042268597L,3042268597L,3042661813L,1532713813,1437971797,1431655765,1431655765,},
{11883957,5987157,5616981,5987157,11883957,5592405,5592405,},
{11883957,5987157,5616981,5616981,5616981,5592405,5592405,},
{12303285,5593941,5616981,5985621,12303285,5592405,5592405,}
};
 
private F5(string s)
{
StringBuilder[] o = new StringBuilder[7];
for (int i = 0; i < 7; i++) o[i] = new StringBuilder();
for (int i = 0, l = s.Length; i < l; i++)
{
int c = s[i];
if (65 <= c && c <= 90) c -= 39;
else if (97 <= c && c <= 122) c -= 97;
else c = -1;
long[] d = new long[7];
Buffer.BlockCopy(f, (++c * sizeof(long) * 7), d, 0, 7 * sizeof(long));
for (int j = 0; j < 7; j++)
{
StringBuilder b = new StringBuilder();
long v = d[j];
while (v > 0)
{
b.Append(z[(int)(v & 3)]);
v >>= 2;
}
char[] charArray = b.ToString().ToCharArray();
Array.Reverse(charArray);
o[j].Append(new string(charArray));
}
}
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 7 - i; j++)
System.Console.Write(' ');
System.Console.WriteLine(o[i]);
}
}
 
public static void Main(string[] args)
{
new F5(args.Length > 0 ? args[0] : "C sharp");
}
}
}</syntaxhighlight>
 
Output:
<pre> _/_/_/ _/
_/ _/_/_/ _/_/_/ _/_/_/ _/ _/_/ _/_/_/
_/ _/_/ _/ _/ _/ _/ _/_/ _/ _/
_/ _/_/ _/ _/ _/ _/ _/ _/ _/
_/_/_/ _/_/_/ _/ _/ _/_/_/ _/ _/_/_/
_/
_/</pre>
 
=={{header|C++}}==
<langsyntaxhighlight lang="cpp">
#include <windows.h>
#include <iostream>
Line 609 ⟶ 825:
}
//--------------------------------------------------------------------------------------------------
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 627 ⟶ 843:
</pre>
Another solution:
<langsyntaxhighlight lang="cpp">
// @author Martin Ettl (http://www.martinettl.de)
// @date 2013-07-26
Line 651 ⟶ 867:
return 0;
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 667 ⟶ 883:
=={{header|Clojure}}==
{{libheader|clj-figlet}}
<langsyntaxhighlight lang="clojure">(use 'clj-figlet.core)
(println
(render-to-string
(load-flf "ftp://ftp.figlet.org/pub/figlet/fonts/contributed/larry3d.flf")
"Clojure"))</langsyntaxhighlight>
 
{{out}}
Line 685 ⟶ 901:
\/___/
</pre>
 
 
=={{header|COBOL}}==
This displays 'COBOL' in 3D with a shadow effect. The font is 'Slant Relief' from [http://http://patorjk.com/software/taag/ here].
{{works with|OpenCOBOL}}
<langsyntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. cobol-3d.
 
Line 767 ⟶ 982:
 
GOBACK
.</langsyntaxhighlight>
 
{{out}} (note: the shadow effect is quite faint on this site):
Line 784 ⟶ 999:
=={{header|Common Lisp}}==
{{libheader|cl-ppcre}}
<langsyntaxhighlight lang="lisp">
(ql:quickload :cl-ppcre)
(defvar txt
Line 797 ⟶ 1,012:
)
(princ (cl-ppcre:regex-replace-all " " (cl-ppcre:regex-replace-all "x" txt "_/") " " ))
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 808 ⟶ 1,023:
 
</pre>
 
=={{header|ContextFree}}==
<syntaxhighlight lang="contextfree">
startshape START
 
shape START {
loop i = 6 [y -1 x -1 z 10] NAME [b 1-((i+1)*0.11)]
}
 
shape NAME {
C [ x 34 z 1]
O [ x 46 z 2]
N [ x 64 z 3]
T [ x 85 z 4]
E [ x 95 z 5]
X [ x 106 z 6]
T [ x 125 z 7]
HYPHEN[x 135]
 
F [ x 145 z 8]
R [ x 158 z 9]
E [ x 175 z 10]
E [ x 188 z 11]
 
}
 
shape C {
ARCL [ y 12 flip 90 ]
ARCL [ y 12 r 180 ]
}
 
 
shape E {
LINE [ s 0.9 ]
LINE [ s 0.9 -1 y 24 ]
LINE [ s 0.4 r -90 y 0 ]
LINE [ s 0.4 r -90 y 12 ]
LINE [ s 0.4 r -90 y 24 ]
}
 
shape F {
LINE [ s 0.9 -1 y 24 ]
LINE [ s 0.4 r -90 y 12 ]
LINE [ s 0.4 r -90 y 24 ]
}
 
 
shape M {
LINE [ y 24 r 180 ]
LINE [ y 24 r -160 s 0.75 ]
LINE [ y 24 x 12 r 160 s 0.75 ]
LINE [ y 24 x 12 r 180 ]
}
 
shape N {
LINE [ y 24 r 180 ]
LINE [ y 24 r -160 ]
LINE [ y 24 x 9 r 180 ]
}
 
shape O {
ARCL [ y 12 flip 90]
ARCL [ y 12 r 180 ]
ARCL [ y 12 x 14 r 180 flip 90]
ARCL [ y 12 x 14 ]
}
 
shape R {
LINE [ s 0.9 -1 y 24 ]
LINE [ s 0.4 r -90 y 12 ]
LINE [ s 0.4 r -90 y 24 ]
LINE [ y 12 r -140 s 0.65 ]
 
ARCL [ y 18 x 12 r 180 flip 90 s 0.8 0.5]
ARCL [ y 18 x 12 s 0.8 0.5 ]
 
}
 
shape T {
LINE [ s 0.9 -1 y 24 ]
LINE [ s 0.4 r -90 y 24 ]
LINE [ s 0.4 r 90 y 24 ]
}
 
shape X {
LINE [ x 8 y 24 r 160 ]
LINE [ y 24 r -160 ]
}
 
shape HYPHEN{
SQUARE[y 11.5 s 4 0.5]
}
 
shape LINE {
TRIANGLE [[ s 1 30 y 0.26 ]]
 
}
 
shape ARCL {
SQUARE [ ]
ARCL [ size 0.97 y 0.55 r 1.5 ]
}
</syntaxhighlight>
{{out}}
[https://www.contextfreeart.org/gallery/view.php?id=4205 Output Image]
 
=={{header|D}}==
This generates a single image ASCII stereogram.
<langsyntaxhighlight lang="d">// Derived from AA3D - ASCII art stereogram generator
// by Jan Hubicka and Thomas Marsh
// (GNU General Public License)
Line 869 ⟶ 1,191:
writeln();
}
}</langsyntaxhighlight>
{{out}}
<pre>nguageDLangunguageDLangunguageDLangunguageDLangung
Line 883 ⟶ 1,205:
geDLanguageDgeDLanuageDgeDLanuageeDgeDLanuageeDgeD
guageDLanguaguageDLanguaguageDLanguaguageDLanguagu</pre>
 
=={{header|Dart}}==
<syntaxhighlight lang="dart">
void main(){
print("""
 
XXX XX XXX XXXX
X X X X X X X
X X XXXX XXX X
XXX X X X X X
""".replaceAll('X','_/'));
}
</syntaxhighlight>
{{out}}
<pre>
 
_/_/_/ _/_/ _/_/_/ _/_/_/_/
_/ _/ _/ _/ _/ _/ _/
_/ _/ _/_/_/_/ _/_/_/ _/
_/_/_/ _/ _/ _/ _/ _/
 
</pre>
=={{header|Delphi}}==
{{libheader| System.SysUtils}}
{{Trans|Java}}
<syntaxhighlight lang="delphi">
program Write_language_name_in_3D_ASCII;
 
{$APPTYPE CONSOLE}
 
uses
System.SysUtils;
 
const
z: TArray<char> = [' ', ' ', '_', '/'];
f: TArray<TArray<Cardinal>> = [[87381, 87381, 87381, 87381, 87381, 87381,
87381], [349525, 375733, 742837, 742837, 375733, 349525, 349525], [742741,
768853, 742837, 742837, 768853, 349525, 349525], [349525, 375733, 742741,
742741, 375733, 349525, 349525], [349621, 375733, 742837, 742837, 375733,
349525, 349525], [349525, 375637, 768949, 742741, 375733, 349525, 349525], [351157,
374101, 768949, 374101, 374101, 349525, 349525], [349525, 375733, 742837,
742837, 375733, 349621, 351157], [742741, 768853, 742837, 742837, 742837,
349525, 349525], [181, 85, 181, 181, 181, 85, 85], [1461, 1365, 1461, 1461,
1461, 1461, 2901], [742741, 744277, 767317, 744277, 742837, 349525, 349525],
[181, 181, 181, 181, 181, 85, 85], [1431655765, 3149249365, 3042661813,
3042661813, 3042661813, 1431655765, 1431655765], [349525, 768853, 742837,
742837, 742837, 349525, 349525], [349525, 375637, 742837, 742837, 375637,
349525, 349525], [349525, 768853, 742837, 742837, 768853, 742741, 742741], [349525,
375733, 742837, 742837, 375733, 349621, 349621], [349525, 744373, 767317,
742741, 742741, 349525, 349525], [349525, 375733, 767317, 351157, 768853,
349525, 349525], [374101, 768949, 374101, 374101, 351157, 349525, 349525], [349525,
742837, 742837, 742837, 375733, 349525, 349525], [5592405, 11883957,
11883957, 5987157, 5616981, 5592405, 5592405], [366503875925, 778827027893,
778827027893, 392374737749, 368114513237, 366503875925, 366503875925], [349525,
742837, 375637, 742837, 742837, 349525, 349525], [349525, 742837, 742837,
742837, 375733, 349621, 375637], [349525, 768949, 351061, 374101, 768949,
349525, 349525], [375637, 742837, 768949, 742837, 742837, 349525, 349525], [768853,
742837, 768853, 742837, 768853, 349525, 349525], [375733, 742741, 742741,
742741, 375733, 349525, 349525], [192213, 185709, 185709, 185709, 192213,
87381, 87381], [1817525, 1791317, 1817429, 1791317, 1817525, 1398101,
1398101], [768949, 742741, 768853, 742741, 742741, 349525, 349525], [375733,
742741, 744373, 742837, 375733, 349525, 349525], [742837, 742837, 768949,
742837, 742837, 349525, 349525], [48053, 23381, 23381, 23381, 48053, 21845,
21845], [349621, 349621, 349621, 742837, 375637, 349525, 349525], [742837,
744277, 767317, 744277, 742837, 349525, 349525], [742741, 742741, 742741,
742741, 768949, 349525, 349525], [11883957, 12278709, 11908533, 11883957,
11883957, 5592405, 5592405], [11883957, 12277173, 11908533, 11885493,
11883957, 5592405, 5592405], [375637, 742837, 742837, 742837, 375637, 349525,
349525], [768853, 742837, 768853, 742741, 742741, 349525, 349525], [6010197,
11885397, 11909973, 11885397, 6010293, 5592405, 5592405], [768853, 742837,
768853, 742837, 742837, 349525, 349525], [375733, 742741, 375637, 349621,
768853, 349525, 349525], [12303285, 5616981, 5616981, 5616981, 5616981,
5592405, 5592405], [742837, 742837, 742837, 742837, 375637, 349525, 349525],
[11883957, 11883957, 11883957, 5987157, 5616981, 5592405, 5592405], [3042268597,
3042268597, 3042661813, 1532713813, 1437971797, 1431655765, 1431655765], [11883957,
5987157, 5616981, 5987157, 11883957, 5592405, 5592405], [11883957, 5987157,
5616981, 5616981, 5616981, 5592405, 5592405], [12303285, 5593941, 5616981,
5985621, 12303285, 5592405, 5592405]];
 
function ReverseString(s: string): string;
var
i, len: integer;
begin
len := s.Length;
SetLength(Result, len);
for i := 1 to len do
Result[len - i + 1] := s[i];
end;
 
procedure F5(s: ansistring);
begin
var o: TArray<TStringBuilder>;
SetLength(o, 7);
for var i := 0 to High(o) do
o[i] := TStringBuilder.Create;
 
var l := length(s);
for var i := 1 to l do
begin
var c: Integer := ord(s[i]);
if c in [65..90] then
c := c - 39
else if c in [97..122] then
c := c - 97
else
c := -1;
 
inc(c);
var d: TArray<Cardinal> := f[c];
for var j := 0 to 6 do
begin
var b := TStringBuilder.Create;
var v := d[j];
 
while v > 0 do
begin
b.Append(z[Trunc(v and 3)]);
v := v shr 2;
end;
o[j].Append(ReverseString(b.ToString));
b.Free;
end;
end;
for var i := 0 to 6 do
begin
for var j := 0 to 6 - i do
write(' ');
writeln(o[i].ToString);
end;
 
for var i := 0 to High(o) do
o[i].Free;
end;
 
begin
F5('Delphi');
F5('Thanks Java');
F5('guy');
readln;
end.</syntaxhighlight>
{{out}}
<pre> _/_/_/ _/ _/ _/
_/ _/ _/_/ _/ _/_/_/ _/_/_/
_/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/
_/_/_/ _/_/_/ _/ _/_/_/ _/ _/ _/
_/
_/
_/_/_/_/_/ _/ _/ _/
_/ _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/ _/ _/_/_/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/ _/_/ _/_/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/_/_/ _/ _/ _/ _/ _/_/_/ _/_/ _/_/_/ _/ _/_/_/
 
 
 
_/_/_/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/
_/_/_/ _/_/_/ _/_/_/
_/ _/
_/_/ _/_/</pre>
 
=={{header|Elixir}}==
<langsyntaxhighlight lang="elixir">defmodule ASCII3D do
def decode(str) do
Regex.scan(~r/(\d+)(\D+)/, str)
Line 897 ⟶ 1,381:
2 3 B5_1/4 6 B3 1B/_/2 /1_2 6 B1\n3 3 B10_6 B3 3 /2B_1_6 B1
4 2 B11_2B 1B_B2 B1_B 3 /1B/_/B_B2 B B_B1\n6 1B/11_1/3 B/_/2 3 B/_/"
IO.puts ASCII3D.decode(data)</langsyntaxhighlight>
 
{{out}}
Line 913 ⟶ 1,397:
 
=={{header|Erlang}}==
<langsyntaxhighlight lang="erlang">%% Implemented by Arjun Sunel
-module(three_d).
-export([main/0]).
Line 919 ⟶ 1,403:
main() ->
io:format(" _____ _ \n| ___| | | \n| |__ _ __| | __ _ _ __ __ _ \n| __| '__| |/ _` | '_ \\ / _` |\n| |__| | | | (_| | | | | (_| |\n|____/_| |_|\\__,_|_| |_|\\__, |\n __/ |\n |___/\n").
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 930 ⟶ 1,414:
__/ |
|___/
</pre>
 
 
'''3D ASCII:'''
{{trans|Elixir}}
<syntaxhighlight lang="erlang">-module(ascii3d).
-export([decode/1]).
 
decode(Str) ->
Splited = re:split(Str, "(\\d+)(\\D+)", [{return,list},group,trim]),
Fun = fun([_,N,S]) -> {Num,_} = string:to_integer(N), lists:duplicate(Num, S) end,
Joined = string:join(lists:flatmap(Fun, Splited), ""),
Lines = binary:replace(binary:list_to_bin(Joined), <<"B">>, <<"\\">>, [global]),
io:format("~s~n", [Lines]).</syntaxhighlight>
{{out}}
<pre>
1> c("ascii3d.erl").
{ok,ascii3d}
2> Str = "1 11_10 2_1\n1/B2 8_1B8 1/B B\n2B 1B7_1/7 3 B1\n3 B7_6 3_3B 3 6_2 2_2 4_4 6_1\n2 2B 1 6_1B4 1/ 3_3B 1 / 4_1 B/B B/ 2_1 B2 1/ 4_1 B\n2 3 B5_1/3 1/B B2_1/B2 B1/B B2_1/3B 1 /_2/B B2_1/B B\n3 3 B8_3B 1 5 B1_B/ 8 B1_B/ B\n4 2 B10_1B B_B3 2B B_3_1/2B_B 2B B_3_1/B B\n6 1B/10_1/B/_/4 1B/_/B/3_2/B/_1/2 1B/_/B/3_1/2B 1B\n55 3_1B/2 1)\n54 1/B5_1/\n54 1B/4_1/\n".
"1 11_10 2_1\n1/B2 8_1B8 1/B B\n2B 1B7_1/7 3 B1\n3 B7_6 3_3B 3 6_2 2_2 4_4 6_1\n2 2B 1 6_1B4 1/ 3_3B 1 / 4_1 B/B B/ 2_1 B2 1/ 4_1 B\n2 3 B5_1/3 1/B B2_1/B2 B1/B B2_1/3B 1 /_2/B B2_1/B B\n3 3 B8_3B 1 5 B1_B/ 8 B1_B/ B\n4 2 B10_1B B_B3 2B B_3_1/2B_B 2B B_3_1/B B\n6 1B/10_1/B/_/4 1B/_/B/3_2/B/_1/2 1B/_/B/3_1/2B 1B\n55 3_1B/2 1)\n54 1/B5_1/\n54 1B/4_1/\n"
3> ascii3d:decode(Str).
___________ __
/\ ________\ /\ \
\ \ \_______/ \ \ \
\ \ \_______ ___\ \ \ ______ __ ____ ______
\ \ ______\ / ___\ \ \ / ____ \/\ \/ __ \ / ____ \
\ \ \_____/ /\ \__/\ \ \/\ \__/\ \ \ /_/\ \/\ \__/\ \
\ \ \________\ \ \ \ \ \ \ \_\/ \ \ \ \ \ \ \ \_\/ \
\ \__________\ \_\ \ \_\ \____/\_\ \_\ \ \_\ \____/\ \
\/__________/\/_/ \/_/\/___/\/_/\/_/ \/_/\/___/\ \ \
___\/ )
/\_____/
\/____/
 
ok
</pre>
 
=={{header|ERRE}}==
<langsyntaxhighlight ERRElang="erre">PROGRAM 3D_NAME
 
DIM TBL$[17,1]
Line 969 ⟶ 1,488:
 
END PROGRAM
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 993 ⟶ 1,512:
 
=={{header|F_Sharp|F#}}==
<langsyntaxhighlight lang="fsharp">let make2Darray (picture : string list) =
let maxY = picture.Length
let maxX = picture |> List.maxBy String.length |> String.length
Line 1,036 ⟶ 1,555:
if x = 0 then printfn ""
printf "%c" c) a2
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,053 ⟶ 1,572:
=={{header|Forth}}==
=== Text strings ===
<langsyntaxhighlight FORTHlang="forth">\ Rossetta Code Write language name in 3D ASCII
\ Simple Method
 
Line 1,070 ⟶ 1,589:
( test at the console )
page "forth"
</syntaxhighlight>
</lang>
 
{{out}}
Line 1,090 ⟶ 1,609:
 
=== Bit Matrix Method ===
<langsyntaxhighlight FORTHlang="forth">\ Original code: "Short phrases with BIG Characters by Wil Baden 2003-02-23
\ Modified BFox for simple 3D presentation 2015-07-14
 
Line 1,192 ⟶ 1,711:
\ test the solution in the Forth console
 
</syntaxhighlight>
</LANG>
 
{{out}}
Line 1,217 ⟶ 1,736:
 
</pre>
 
 
=={{header|FutureBasic}}==
<syntaxhighlight lang="futurebasic">
_window = 1
begin enum 1
_asciiField
end enum
 
void local fn BuildWindow
CGRect r = fn CGRectMake( 0, 0, 610, 140 )
window _window, @"Rosetta Code — FutureBasic in 3D ASCII", r, NSWindowStyleMaskTitled + NSWindowStyleMaskClosable
WindowSetBackgroundColor( _window, fn ColorBlack )
CFStringRef asciiFB = @" ¬
/$$$$$$$$ / $$ /$$$$$$$ /$$ \n¬
| $$_____/ | $$ | $$__ $$ |__/ \n¬
| $$ /$$ /$$ /$$$$$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$ \\ $$ /$$$$$$ /$$$$$$$ /$$ /$$$$$$$\n¬
| $$$$$ | $$ | $$|_ $$_/ | $$ | $$ /$$__ $$ /$$__ $$| $$$$$$$ |____ $$ /$$_____/| $$ /$$_____/\n¬
| $$__/ | $$ | $$ | $$ | $$ | $$| $$ \\__/| $$$$$$$$| $$__ $$ /$$$$$$$| $$$$$$ | $$| $$ \n¬
| $$ | $$ | $$ | $$ /$$| $$ | $$| $$ | $$_____/| $$ \\ $$ /$$__ $$ \\____ $$| $$| $$ \n¬
| $$ | $$$$$$/ | $$$$/| $$$$$$/| $$ | $$$$$$$| $$$$$$$/| $$$$$$$ /$$$$$$$/| $$| $$$$$$$\n¬
|__/ \\______/ \\___/ \\______/ |__/ \\_______/|_______/ \\_______/|_______/ |__/ \\_______/\n"
r = fn CGRectMake( 22, 20, 582, 100 )
textfield _asciiField, YES, asciiFB, r, _window
TextFieldSetTextColor( _asciiField, fn ColorYellow )
TextFieldSetBordered( _asciiField, NO )
TextFieldSetBackgroundColor( _asciiField, fn ColorBlack )
ControlSetFontWithName( _asciiField, @"Menlo", 9.0 )
end fn
 
void local fn DoDialog( ev as long, tag as long, wnd as long )
select ( ev )
case _windowWillClose : end
end select
end fn
 
on dialog fn DoDialog
 
fn BuildWindow
 
HandleEvents
</syntaxhighlight>
{{output}}
[[File:FutureBasic in ASCII Art.png]]
 
 
 
=={{header|Go}}==
Line 1,222 ⟶ 1,789:
 
For the interest component of the task, I thought about rendering the result from an input string and realized that it wasn't completely trivial as the glyphs of the Lean font overlap with the standard letter spacing. Rendering different fonts would add interest because now there would be a point in developing a common font representation and rendering function. Block and Lean would have sufficed, but I looked further and found the Keyboard and Small Keyboard fonts. These I found somewhat amusing, for the final component of the task.
<langsyntaxhighlight lang="go">package main
 
import (
Line 1,314 ⟶ 1,881:
fmt.Println(render("Go", lean))
fmt.Println(render("Go", smallKeyboard))
}</langsyntaxhighlight>
{{out}}
<pre>
Line 1,330 ⟶ 1,897:
=={{header|Groovy}}==
A simple way to display ASCII art
<langsyntaxhighlight Groovylang="groovy">println """\
_|_|_|
_| _| _|_| _|_| _|_| _| _| _| _|
Line 1,337 ⟶ 1,904:
_|_|_| _| _|_| _|_| _| _|_|_|
_|
_|_|"""</langsyntaxhighlight>
A more complicated example:
<langsyntaxhighlight Groovylang="groovy">String.metaClass.getAsAsciiArt = {
def request = "http://www.network-science.de/ascii/ascii.php?TEXT=${delegate}&x=23&y=10&FONT=block&RICH=no&FORM=left&STRE=no&WIDT=80"
def html = new URL(request).text
Line 1,345 ⟶ 1,912:
}
 
println "Groovy".asAsciiArt</langsyntaxhighlight>
{{out}}
<pre> _|_|_|
Line 1,357 ⟶ 1,924:
=={{header|Haskell}}==
A simple printing of the ASCII art
<langsyntaxhighlight Haskelllang="haskell">module Main where
{-
__ __ __ ___ ___
Line 1,378 ⟶ 1,945:
 
main = putStrLn ascii3d
</syntaxhighlight>
</lang>
 
{{out}}
Line 1,392 ⟶ 1,959:
=={{header|Icon}} and {{header|Unicon}}==
The following fits under the fuzzy definition of 3D ASCII and pays homage to one of the Icon Newsletter logos.
<langsyntaxhighlight Iconlang="icon">procedure main(arglist)
write(ExpandText(
if !arglist == "icon" then
Line 1,425 ⟶ 1,992:
s ? until pos(0) do
writes(repl(" ",tab(many(&digits)))|tab(upto(&digits)|0))
end</langsyntaxhighlight>
 
{{out}} with "icon" as the argument:
Line 1,461 ⟶ 2,028:
=={{header|J}}==
 
<langsyntaxhighlight lang="j"> require 'vrml.ijs' NB. Due to Andrew Nikitin
view 5#.^:_1]21-~a.i.'j*ez`C3\toy.G)' NB. Due to Oleg Kobchenko
________________________
Line 1,483 ⟶ 2,050:
\| | | |
\_____|_____|_____|
</syntaxhighlight>
</lang>
 
For the VRML script, see [http://nsg.upor.net/jpage/jpage.htm Andrew Nikitin's J page] (search for VRML) and for the origin of the 3D J banner, see [http://www.jsoftware.com/pipermail/programming/2007-May/006539.html Oleg Kobchenko's post to the J Forums].
Line 1,489 ⟶ 2,056:
Here's a slimmer version:
 
<langsyntaxhighlight Jlang="j"> view 8 8 8#:'"#$%&,4<DHLPTYZ[\'-&(a.&i.)' '
Line 1,525 ⟶ 2,092:
\| |
\_____|
</syntaxhighlight>
</lang>
 
Explanation: the argument says where to place the solid "blocks". Each block is described by three integers, describing position along the x, y and z axis. In other words, 1 0 0 is one position to the right of 0 0 0, while 0 1 0 is one place down and 0 0 1 is one place towards the observer. (Thus the space at the top of the "slimmer" version could have been eliminated by subtracting 2 from the middle column of integers being passed to 'view'.)
Line 1,535 ⟶ 2,102:
=={{header|Java}}==
This was written ages ago as an exercise in obfuscation, and improved here with upper case letters. The font is "lean" from [http://en.wikipedia.org/wiki/Figlet figlet].
 
<lang java>public class F5{
It's not really that obfuscated. The characters in <var>z</var> are used to draw the letters. The array <var>f</var> contains one element per letter of the alphabet. Each array element is another array of 7 longs because each output letter is made of 7 lines of text. Each long value represents a sequence of 2-bit integers that are extracted by bit-twiddling and used to find the right character in <var>z</var>.
<syntaxhighlight lang="java">public class F5{
char[]z={' ',' ','_','/',};
long[][]f={
Line 1,613 ⟶ 2,182:
System.out.print(' ');
System.out.println(o[i]);}}}
</syntaxhighlight>
</lang>
 
{{out}} With no parameters:
Line 1,637 ⟶ 2,206:
</pre>
 
=={{header|jq}}==
{{works with|jq}}
'''Works with gojq, the Go implementation of jq'''
 
One small point of interest here is the use of string interpolation to simulate a "heredoc" string.
<syntaxhighlight lang="jq">def jq:
"\("
#
#
# # ###
# # # #
# # # #
# # # # ####
# ### #
#
")";
 
def banner3D:
jq | split("\n") | map( gsub("#"; "╔╗") | gsub(" "; " ") )
| [[range(length;0;-1) | " " * .], . ] | transpose[] | join("") ;
 
banner3D</syntaxhighlight>
{{out}}
<pre>
╔╗
╔╗
╔╗ ╔╗ ╔╗╔╗╔╗
╔╗ ╔╗ ╔╗ ╔╗
╔╗ ╔╗ ╔╗ ╔╗
╔╗ ╔╗ ╔╗ ╔╗ ╔╗╔╗╔╗╔╗
╔╗ ╔╗╔╗╔╗ ╔╗
╔╗
 
</pre>
 
=={{header|Julia}}==
{{trans|Awk}}
<syntaxhighlight lang="julia">println(replace(raw"""
xxxxx
x x
x x x
x x x x
x x x x x xxx
x x x x x x x
x x x x x x x xx
xx xx x x x x xx
""", "x" => "_/"))
</syntaxhighlight>{{output}}<pre>
_/_/_/_/_/
_/ _/
_/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/_/
_/_/ _/_/ _/ _/ _/ _/ _/_/
</pre>
 
=={{header|Kotlin}}==
{{trans|Java}}
<syntaxhighlight lang="scala">// version 1.1
 
class Ascii3D(s: String) {
val z = charArrayOf(' ', ' ', '_', '/')
 
val f = arrayOf(
longArrayOf(87381, 87381, 87381, 87381, 87381, 87381, 87381),
longArrayOf(349525, 375733, 742837, 742837, 375733, 349525, 349525),
longArrayOf(742741, 768853, 742837, 742837, 768853, 349525, 349525),
longArrayOf(349525, 375733, 742741, 742741, 375733, 349525, 349525),
longArrayOf(349621, 375733, 742837, 742837, 375733, 349525, 349525),
longArrayOf(349525, 375637, 768949, 742741, 375733, 349525, 349525),
longArrayOf(351157, 374101, 768949, 374101, 374101, 349525, 349525),
longArrayOf(349525, 375733, 742837, 742837, 375733, 349621, 351157),
longArrayOf(742741, 768853, 742837, 742837, 742837, 349525, 349525),
longArrayOf(181, 85, 181, 181, 181, 85, 85),
longArrayOf(1461, 1365, 1461, 1461, 1461, 1461, 2901),
longArrayOf(742741, 744277, 767317, 744277, 742837, 349525, 349525),
longArrayOf(181, 181, 181, 181, 181, 85, 85),
longArrayOf(1431655765, 3149249365L, 3042661813L, 3042661813L, 3042661813L, 1431655765, 1431655765),
longArrayOf(349525, 768853, 742837, 742837, 742837, 349525, 349525),
longArrayOf(349525, 375637, 742837, 742837, 375637, 349525, 349525),
longArrayOf(349525, 768853, 742837, 742837, 768853, 742741, 742741),
longArrayOf(349525, 375733, 742837, 742837, 375733, 349621, 349621),
longArrayOf(349525, 744373, 767317, 742741, 742741, 349525, 349525),
longArrayOf(349525, 375733, 767317, 351157, 768853, 349525, 349525),
longArrayOf(374101, 768949, 374101, 374101, 351157, 349525, 349525),
longArrayOf(349525, 742837, 742837, 742837, 375733, 349525, 349525),
longArrayOf(5592405, 11883957, 11883957, 5987157, 5616981, 5592405, 5592405),
longArrayOf(366503875925L, 778827027893L, 778827027893L, 392374737749L, 368114513237L, 366503875925L, 366503875925L),
longArrayOf(349525, 742837, 375637, 742837, 742837, 349525, 349525),
longArrayOf(349525, 742837, 742837, 742837, 375733, 349621, 375637),
longArrayOf(349525, 768949, 351061, 374101, 768949, 349525, 349525),
longArrayOf(375637, 742837, 768949, 742837, 742837, 349525, 349525),
longArrayOf(768853, 742837, 768853, 742837, 768853, 349525, 349525),
longArrayOf(375733, 742741, 742741, 742741, 375733, 349525, 349525),
longArrayOf(192213, 185709, 185709, 185709, 192213, 87381, 87381),
longArrayOf(1817525, 1791317, 1817429, 1791317, 1817525, 1398101, 1398101),
longArrayOf(768949, 742741, 768853, 742741, 742741, 349525, 349525),
longArrayOf(375733, 742741, 744373, 742837, 375733, 349525, 349525),
longArrayOf(742837, 742837, 768949, 742837, 742837, 349525, 349525),
longArrayOf(48053, 23381, 23381, 23381, 48053, 21845, 21845),
longArrayOf(349621, 349621, 349621, 742837, 375637, 349525, 349525),
longArrayOf(742837, 744277, 767317, 744277, 742837, 349525, 349525),
longArrayOf(742741, 742741, 742741, 742741, 768949, 349525, 349525),
longArrayOf(11883957, 12278709, 11908533, 11883957, 11883957, 5592405, 5592405),
longArrayOf(11883957, 12277173, 11908533, 11885493, 11883957, 5592405, 5592405),
longArrayOf(375637, 742837, 742837, 742837, 375637, 349525, 349525),
longArrayOf(768853, 742837, 768853, 742741, 742741, 349525, 349525),
longArrayOf(6010197, 11885397, 11909973, 11885397, 6010293, 5592405, 5592405),
longArrayOf(768853, 742837, 768853, 742837, 742837, 349525, 349525),
longArrayOf(375733, 742741, 375637, 349621, 768853, 349525, 349525),
longArrayOf(12303285, 5616981, 5616981, 5616981, 5616981, 5592405, 5592405),
longArrayOf(742837, 742837, 742837, 742837, 375637, 349525, 349525),
longArrayOf(11883957, 11883957, 11883957, 5987157, 5616981, 5592405, 5592405),
longArrayOf(3042268597L, 3042268597L, 3042661813L, 1532713813, 1437971797, 1431655765, 1431655765),
longArrayOf(11883957, 5987157, 5616981, 5987157, 11883957, 5592405, 5592405),
longArrayOf(11883957, 5987157, 5616981, 5616981, 5616981, 5592405, 5592405),
longArrayOf(12303285, 5593941, 5616981, 5985621, 12303285, 5592405, 5592405)
)
 
init {
val o = Array(7) { StringBuilder() }
for (i in 0 until s.length) {
var c = s[i].toInt()
if (c in 65..90) {
c -= 39
} else if (c in 97..122) {
c -= 97
} else {
c = -1
}
val d = f[++c]
for (j in 0 until 7) {
val b = StringBuilder()
var v = d[j]
while (v > 0) {
b.append(z[(v and 3).toInt()])
v = v shr 2
}
o[j].append(b.reverse().toString())
}
}
for (i in 0 until 7) {
for (j in 0 until 7 - i) print(' ')
println(o[i])
}
}
}
 
fun main(args: Array<String>) {
Ascii3D("KOTLIN")
Ascii3D("with thanks")
Ascii3D("to the author")
Ascii3D("of the")
Ascii3D("Java entry")
}</syntaxhighlight>
 
{{out}}
<pre>
_/ _/ _/_/ _/_/_/_/_/ _/ _/_/_/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/_/ _/
_/_/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/_/
_/ _/ _/_/ _/ _/_/_/_/ _/_/_/ _/ _/
 
 
_/ _/ _/ _/ _/ _/
_/ _/ _/ _/_/_/_/ _/_/_/ _/_/_/_/ _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/ _/_/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/
_/ _/ _/ _/_/ _/ _/ _/_/ _/ _/ _/_/_/ _/ _/ _/ _/ _/_/_/
 
 
_/ _/ _/ _/ _/
_/_/_/_/ _/_/ _/_/_/_/ _/_/_/ _/_/ _/_/_/ _/ _/ _/_/_/_/ _/_/_/ _/_/ _/ _/_/
_/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/_/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
_/_/ _/_/ _/_/ _/ _/ _/_/_/ _/_/_/ _/_/_/ _/_/ _/ _/ _/_/ _/
 
 
_/_/ _/ _/
_/_/ _/ _/_/_/_/ _/_/_/ _/_/
_/ _/ _/_/_/_/ _/ _/ _/ _/_/_/_/
_/ _/ _/ _/ _/ _/ _/
_/_/ _/ _/_/ _/ _/ _/_/_/
 
 
_/ _/
_/ _/_/_/ _/ _/ _/_/_/ _/_/ _/_/_/ _/_/_/_/ _/ _/_/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/_/_/_/ _/ _/ _/ _/_/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
_/_/ _/_/_/ _/ _/_/_/ _/_/_/ _/ _/ _/_/ _/ _/_/_/
_/
_/_/
</pre>
 
=={{header|Lasso}}==
<langsyntaxhighlight Lassolang="lasso">local(lasso = "
---------------------------------------------------------------
| ,--, |
Line 1,658 ⟶ 2,423:
")
 
stdoutnl(#lasso)</langsyntaxhighlight>
<pre>---------------------------------------------------------------
| ,--, |
Line 1,677 ⟶ 2,442:
</pre>
 
=={{header|MathematicaLua}}==
<syntaxhighlight lang="lua">io.write(" /$$\n")
io.write("| $$\n")
io.write("| $$ /$$ /$$ /$$$$$$\n")
io.write("| $$ | $$ | $$ |____ $$\n")
io.write("| $$ | $$ | $$ /$$$$$$$\n")
io.write("| $$ | $$ | $$ /$$__ $$\n")
io.write("| $$$$$$$$| $$$$$$/| $$$$$$$\n")
io.write("|________/ \______/ \_______/\n")</syntaxhighlight>
{{out}}
<pre> /$$
| $$
| $$ /$$ /$$ /$$$$$$
| $$ | $$ | $$ |____ $$
| $$ | $$ | $$ /$$$$$$$
| $$ | $$ | $$ /$$__ $$
| $$$$$$$$| $$$$$$/| $$$$$$$
|________/ ______/ _______/</pre>
Alternate:
<syntaxhighlight lang="lua">print[[
__
/\ \
\ \ \ __ __ ____
\ \ \ /\ \/\ \ / __ \
\ \ \___\ \ \_\ \/\ \_\ \_
\ \____\\ \____/\ \___/\_\
\/____/ \/___/ \/__/\/_/]]</syntaxhighlight>
{{out}}
<pre> __
/\ \
\ \ \ __ __ ____
\ \ \ /\ \/\ \ / __ \
\ \ \___\ \ \_\ \/\ \_\ \_
\ \____\\ \____/\ \___/\_\
\/____/ \/___/ \/__/\/_/</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
No hardcoding at all!
<langsyntaxhighlight Mathematicalang="mathematica">locs = Position[
ImageData[Binarize[Rasterize["Mathematica", ImageSize -> 150]]], 0];
Print[StringRiffle[
Line 1,687 ⟶ 2,488:
ConstantArray[
" ", {Max[locs[[All, 1]]] + 1, Max[locs[[All, 2]]] + 1}],
locs -> "\\"], Map[# + 1 &, locs, {2}] -> "#"], "\n"]];</langsyntaxhighlight>
{{output}}
<pre>
Line 1,709 ⟶ 2,510:
\\#\\ \\\##\ #\\\####\ ##\\\\## \\## \\\#\ ##\\\\\###\\## \# \#\ #\\\\####\ ##\\\## \\\\\\#\\\ ##\\\### #\\\####\
##### ###### #### #### ###### #### ##### ####### #### ## ### ##### #### ##### ########## ##### #### ####</pre>
 
=={{header|MiniScript}}==
Nothing fancy here, but in keeping with MiniScript's "clear and simple" ethos:
<syntaxhighlight lang="miniscript">data = [
" ______ _____ _________",
"|\ \/ \ ___ ________ ___|\ _____\ ________ ________ ___ ________ _________ ",
"\ \ _ \ _ \|\ \|\ ___ \|\ \ \ \____||\ ____\|\ ____\|\ \|\ __ \|\___ ___\ ",
" \ \ \\\__\ \ \ \ \ \ \\ \ \ \ \ \_____ \ \ \___|\ \ \___|\ \ \ \ \|\ \|___ \ \_| ",
" \ \ \\|__| \ \ \ \ \ \\ \ \ \ \|____|\ \ \ \ \ \ \ \ \ \ \ ____\ \ \ \ ",
" \ \ \ \ \ \ \ \ \ \\ \ \ \ \____\_\ \ \ \____\ \ \ \ \ \ \ \___| \ \ \ ",
" \ \__\ \ \__\ \__\ \__\\ \__\ \__\_________\ \_______\ \__\ \ \__\ \__\ \ \__\",
" \|__| \|__|\|__|\|__| \|__|\|__||________|\|_______|\|__| \|__|\|__| \|__|"]
 
for line in data
print line
end for</syntaxhighlight>
{{out}}
<pre> ______ _____ _________
|\ \/ \ ___ ________ ___|\ _____\ ________ ________ ___ ________ _________
\ \ _ \ _ \|\ \|\ ___ \|\ \ \ \____||\ ____\|\ ____\|\ \|\ __ \|\___ ___\
\ \ \\\__\ \ \ \ \ \ \\ \ \ \ \ \_____ \ \ \___|\ \ \___|\ \ \ \ \|\ \|___ \ \_|
\ \ \\|__| \ \ \ \ \ \\ \ \ \ \|____|\ \ \ \ \ \ \ \ \ \ \ ____\ \ \ \
\ \ \ \ \ \ \ \ \ \\ \ \ \ \____\_\ \ \ \____\ \ \ \ \ \ \ \___| \ \ \
\ \__\ \ \__\ \__\ \__\\ \__\ \__\_________\ \_______\ \__\ \ \__\ \__\ \ \__\
\|__| \|__|\|__|\|__| \|__|\|__||________|\|_______|\|__| \|__|\|__| \|__|</pre>
 
=={{header|Modula-2}}==
<syntaxhighlight lang="modula2">MODULE Art;
FROM Terminal IMPORT WriteString,WriteLn,ReadChar;
 
BEGIN
(* 3D, but does not fit in the terminal window *)
(*
WriteString("_____ ______ ________ ________ ___ ___ ___ ________ _______");
WriteLn;
WriteString("|\ _ \ _ \|\ __ \|\ ___ \|\ \|\ \|\ \ |\ __ \ / ___ \");
WriteLn;
WriteString("\ \ \\\__\ \ \ \ \|\ \ \ \_|\ \ \ \\\ \ \ \ \ \ \|\ \ ____________ /__/|_/ /|");
WriteLn;
WriteString(" \ \ \\|__| \ \ \ \\\ \ \ \ \\ \ \ \\\ \ \ \ \ \ __ \|\____________\__|// / /");
WriteLn;
WriteString(" \ \ \ \ \ \ \ \\\ \ \ \_\\ \ \ \\\ \ \ \____\ \ \ \ \|____________| / /_/__");
WriteLn;
WriteString(" \ \__\ \ \__\ \_______\ \_______\ \_______\ \_______\ \__\ \__\ |\________\");
WriteLn;
WriteString(" \|__| \|__|\|_______|\|_______|\|_______|\|_______|\|__|\|__| \|_______|");
WriteLn;
*)
 
(* Not 3D, but fits in the terminal window *)
WriteString(" __ __ _ _ ___");
WriteLn;
WriteString(" | \/ | | | | | |__ \");
WriteLn;
WriteString(" | \ / | ___ __| |_ _| | __ _ ______ ) |");
WriteLn;
WriteString(" | |\/| |/ _ \ / _` | | | | |/ _` |______/ /");
WriteLn;
WriteString(" | | | | (_) | (_| | |_| | | (_| | / /_");
WriteLn;
WriteString(" |_| |_|\___/ \__,_|\__,_|_|\__,_| |____|");
WriteLn;
 
ReadChar
END Art.
</syntaxhighlight>
 
=={{header|Nanoquery}}==
<syntaxhighlight lang="nanoquery">println " ________ ________ ________ ________ ________ ___ ___ _______ ________ ___ ___ "
println "|\\ ___ \\|\\ __ \\|\\ ___ \\|\\ __ \\|\\ __ \\|\\ \\|\\ \\|\\ ___ \\ |\\ __ \\ |\\ \\ / /| "
println "\\ \\ \\\\ \\ \\ \\ \\|\\ \\ \\ \\\\ \\ \\ \\ \\|\\ \\ \\ \\|\\ \\ \\ \\\\\\ \\ \\ __/|\\ \\ \\|\\ \\ \\ \\ \\/ / / "
println " \\ \\ \\\\ \\ \\ \\ __ \\ \\ \\\\ \\ \\ \\ \\\\\\ \\ \\ \\\\\\ \\ \\ \\\\\\ \\ \\ \\_|/_\\ \\ _ _\\ \\ \\ / / "
println " \\ \\ \\\\ \\ \\ \\ \\ \\ \\ \\ \\\\ \\ \\ \\ \\\\\\ \\ \\ \\\\\\ \\ \\ \\\\\\ \\ \\ \\_|\\ \\ \\ \\\\ \\| \\/ / / "
println " \\ \\__\\\\ \\__\\ \\__\\ \\__\\ \\__\\\\ \\__\\ \\_______\\ \\_____ \\ \\_______\\ \\_______\\ \\__\\\\ _\\ __/ / / "
println " \\|__| \\|__|\\|__|\\|__|\\|__| \\|__|\\|_______|\\|___| \\__\\|_______|\\|_______|\\|__|\\|__|\\___/ / "
println " \\|__| \\|___|/ "</syntaxhighlight>
{{out}}
<pre> ________ ________ ________ ________ ________ ___ ___ _______ ________ ___ ___
|\ ___ \|\ __ \|\ ___ \|\ __ \|\ __ \|\ \|\ \|\ ___ \ |\ __ \ |\ \ / /|
\ \ \\ \ \ \ \|\ \ \ \\ \ \ \ \|\ \ \ \|\ \ \ \\\ \ \ __/|\ \ \|\ \ \ \ \/ / /
\ \ \\ \ \ \ __ \ \ \\ \ \ \ \\\ \ \ \\\ \ \ \\\ \ \ \_|/_\ \ _ _\ \ \ / /
\ \ \\ \ \ \ \ \ \ \ \\ \ \ \ \\\ \ \ \\\ \ \ \\\ \ \ \_|\ \ \ \\ \| \/ / /
\ \__\\ \__\ \__\ \__\ \__\\ \__\ \_______\ \_____ \ \_______\ \_______\ \__\\ _\ __/ / /
\|__| \|__|\|__|\|__|\|__| \|__|\|_______|\|___| \__\|_______|\|_______|\|__|\|__|\___/ /
\|__| \|___|/</pre>
 
=={{header|NetRexx}}==
Based on an idea found in the [[#Scala|Scala]] version.
<langsyntaxhighlight NetRexxlang="netrexx">/* NetRexx */
options replace format comments java crossref symbols nobinary
 
Line 1,777 ⟶ 2,663:
method isFalse public constant binary returns boolean
return \isTrue()
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,798 ⟶ 2,684:
=={{header|Nim}}==
{{trans|Python}}
<langsyntaxhighlight lang="nim">import strutils
 
const nim = """
# # ##### # # #### # #### ### #
## # # ## # # # # # ## # #
# # # # # ## # # # # # # # #
# # # # # # # #### # # # #
# ## # # ## # # # # # #
# # ##### # # # # ##### # ###"""
"""
let lines = nim.dedent.multiReplace(("#", "<<<"), (" ", " "), ("< ", "<>"), ("<\n", "<>\n")).splitLines
for i, line in lines:
echo spaces(lines.len - i), line</syntaxhighlight>
{{out}}
<pre> <<< <<< <<<<<<<<<<<<<<< <<< <<<
<<<<<< <<< <<< <<<<<< <<<<<<
<<< <<< <<< <<< <<< <<<<<< <<<
<<< <<< <<< <<< <<< <<<
<<< <<<<<< <<< <<< <<<
<<< <<< <<<<<<<<<<<<<<< <<< <<<</pre>
 
=={{header|OCaml}}==
let lines = nim.replace("#", "<<<").replace(" ", "X").replace("X", " ").replace("\n", " Y").replace("< ", "<>").split('Y')
<syntaxhighlight lang="ocaml">
for i, l in lines:
print_string "
echo repeatChar((lines.len - i) * 3), l</lang>
_|_|_| _|_|_| _|_| _|_| _|_| _|
_| _| _| _| _| _| _| _| _| _|
_| _| _| _|_|_| _| _| _| _| _|
_| _| _| _| _| _| _| _|
_|_|_| _|_|_| _| _| _| _| _|_|_|_|_|
"
</syntaxhighlight>
{{out}}
<pre>
<pre> <<<> <<<> <<<<<<<<<<<<<<<> <<<> <<<> <<<<<<<<<<<<> <<<<<<<<<<<<> <<<<<<<<<<<<>
 
<<<<<<> <<<> <<<> <<<<<<> <<<<<<> <<<> <<<> <<<> <<<> <<<> <<<>
<<<> <<<> _|_|_| <<<> _|_|_| _|_| <<<> _|_| _|_| <<<> <<<<<<> <<<> <<<> <<<> <<<> <<<> <<<> <<<>_|
<<<> <<<> <<<>_| _| _| <<<> _| _| _| _| _| <<<>_| <<<> <<<<<<<<<<<<> <<<> <<<> <<<> <<<>_|
<<<> <<<<<<> _| _| _| <<<> _|_|_| _| _| _| <<<>_| <<<> <<<> <<<> <<<> <<<> <<<> <<<>_|
<<<> <<<> _| _| <<<<<<<<<<<<<<<>_| <<<> _| _| <<<>_| _| <<<> <<<> <<<<<<<<<<<<> <<<<<<<<<<<<</pre>_|
_|_|_| _|_|_| _| _| _| _| _|_|_|_|_|
</pre>
 
=={{header|Pascal}}==
<langsyntaxhighlight lang="pascal">
program WritePascal;
 
Line 1,846 ⟶ 2,752:
end;
end.
</syntaxhighlight>
</lang>
Need 64-Bit Integer for this solution.
My goal was to do a straight-forward solution, (Just two nested loops, no conditional code).
Line 1,862 ⟶ 2,768:
 
</pre>
 
=={{header|Perl}}==
<langsyntaxhighlight lang="perl">#!/usr/bin/perl
use strict;
use warnings;
Line 1,873 ⟶ 2,780:
) {
print $tuple->[0] x $tuple->[1];
}</langsyntaxhighlight>
{{out}}
<pre> _ \ |
Line 1,880 ⟶ 2,787:
_| \___|_| _|</pre>
Font taken from http://www.network-science.de/ascii/.
 
=={{header|Perl 6}}==
Produces a good old-fashioned stereogram, meant to be looked at by focusing beyond the screen, not by crossing your eyes. If you can't get it to converge, try shrinking the font size till the images are closer together than your eyes. Also helps to be old enough to have progressive lenses, so you can look through the reading part of your glasses. Or borrow glasses from someone who's farsighted. <tt>:-)</tt>
<lang>my $text = q:to/END/;
 
@@@@@ @@
@ @ @ @@@
@ @ @ @@
@ @ @@@ @ @@ @ @@
@@@@@ @ @ @@ @ @ @@@@@
@ @@@@@ @ @ @@ @@
@ @ @ @ @@ @@
@ @@@ @ @@ @@@@
 
END
 
say '' for ^5;
for $text.lines -> $_ is copy {
my $/;
my @chars = 「-+ ., ;: '"」.comb.pick(*) xx *;
s:g [' '] = @chars.shift;
print " $_ ";
s:g [('@'+)(.)] = @chars.shift ~ $0;
.say;
}
say '' for ^5;</lang>
{{out}}
<small><pre>
 
 
 
 
";,' :-+ . ,. ; -:+"',';-. : " + ";,' :-+ . ,. ; -:+"',';-. : " +
:@@@@@ ,'+".-; ;-+,@@"' :. ;. " :'@@@@@ ,'+".-; ;-+,,@@' :. ;. "
"@-. @ ';,+:- +: ,;@'". +@@@, "- " @. .@';,+:- +: ,;:@". +;@@@ "-
'@,- ;@ "+: .+ -',:" @; . @@; -" , ':@- ;'@"+: .+ -',:" .@ . +@@ -" ,
;@ +, @"-@@@' :@.@@ @-,:.@@+ ;'": ; @+, .@-'@@@ : @;@@ @,:.+@@ ;'":
@@@@@+-@':.@, @@" @;@ +":@@@@@', ;@@@@@--@:. @ .@@ :@ @+": @@@@@,
@;-+, .@@@@@ :@"'+' @"-,:@@; @@. +@-+, .,@@@@@::@'+' @-,: @@ "@@
:@ . "- @,;+'; @" .-'@ +:,@@ ;@@'+ :-@. "- ,@;+'; "@ .-' @+:, @@;:@@+
+@'"., ; @@@ -:@;' "@@-+.:@@@@, +:@"., ; "@@@-:;@' ".@@+.: @@@@
;.:+"-,' +:'; -," .+:" ;-.,' . ;.:+"-,' +:'; -," .+:" ;-.,' .
 
 
 
 
 
</pre></small>
 
=={{header|Phix}}==
<!--<syntaxhighlight lang="phix">(phixonline)-->
<lang Phix>constant s =
<span style="color: #008080;">constant</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
"------*** * \n"&
" ------* * * \n"&*
" -----* * * * \n"&
" ----*** * * \n"&*
" ---* *** * * * \n"&
" --* *** * * * \n"&
" -* * * * * * \n"
* * * * * *
puts(1,substitute(substitute(s,"*","_/")," "," "))
"""</langspan>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"* "</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"_/"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">}))</span>
<!--</syntaxhighlight>-->
{{out}}
<pre>
Line 1,950 ⟶ 2,811:
_/ _/ _/ _/ _/ _/
</pre>
===obfuscated===
 
For those of you who like this sort of thing, same output
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">constant</span> <span style="color: #000000;">q</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0(30)10C</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(31)176</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(32)2A4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(33)6N3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(34)7GP</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(35)DWF</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0(36)QC4</span><span style="color: #0000FF;">}</span>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%16b"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">7</span><span style="color: #0000FF;">),</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">),</span><span style="color: #000000;">q</span><span style="color: #0000FF;">),</span><span style="color: #008000;">" 10"</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">"-"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"_/"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" "</span><span style="color: #0000FF;">})&</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)</span>
<!--</syntaxhighlight>-->
===another version===
Inspired by Ruby
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"""
__ ________
/_/\ / ______ \
\ \ \/ /\____/ /\ __
\ \ \/ / / / //_/\
\ \ \/___/ / / \_\/_ __
/\ \______/ / /_/\/ /\
/ /\ ____ \ \ \ \ \/ /
/ / /\ \ \ \ \ \ \_\ /
/ / / \ \ \ \ \ \ / / \
/_/ / \ \ \ \ \ \ /_/ /\ \
\_\/ \_\/ \_\/ \_\/\_\/
"""</span><span style="color: #0000FF;">)</span>
<span style="color: #000080;font-style:italic;">-- or if you prefer something a little more cryptic (same output):</span>
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">" __ ________\n /_/\\ / ______ \\\n \\ \\ \\/ /\\____/ /\\ __\n "</span><span style="color: #0000FF;">&</span>
<span style="color: #008000;">"\\ \\ \\/ / / / //_/\\\n \\ \\ \\/___/ / / \\_\\/_ __\n /\\ \\__"</span><span style="color: #0000FF;">&</span>
<span style="color: #008000;">"____/ / /_/\\/ /\\\n / /\\ ____ \\ \\ \\ \\ \\/ /\n / / /\\ \\ "</span><span style="color: #0000FF;">&</span>
<span style="color: #008000;">"\\ \\ \\ \\ \\_\\ /\n / / / \\ \\ \\ \\ \\ \\ / / \\\n/_/ / \\"</span><span style="color: #0000FF;">&</span>
<span style="color: #008000;">" \\ \\ \\ \\ \\ /_/ /\\ \\\n\\_\\/ \\_\\/ \\_\\/ \\_\\/\\_\\/\n"</span><span style="color: #0000FF;">)</span>
<!--</syntaxhighlight>-->
 
=={{header|PicoLisp}}==
{{Trans|Tcl}}
<langsyntaxhighlight PicoLisplang="picolisp">(de Lst
"***** * "
"* * * * * "
Line 1,988 ⟶ 2,877:
(maplist '((X) (transform X "/" "\\")) (cdr Lst)) )
 
(bye)</langsyntaxhighlight>
 
{{out}}
Line 2,001 ⟶ 2,890:
///\/ ///\/ ////////////\ ////////////\/ ////////////\ ///\/ ////////////\/ ///\/
\\\/ \\\/ \\\\\\\\\\\\/ \\\\\\\\\\\\/ \\\\\\\\\\\\/ \\\/ \\\\\\\\\\\\/ \\\/
</pre>
 
=={{header|Plain English}}==
<syntaxhighlight lang="text">
To run:
Start up.
Print the language name in 3D ASCII.
Wait for the escape key.
Shut down.
 
To print the language name in 3D ASCII:
Write "Osmosian Order of" to the console.
Write " ____ _ _" to the console.
Write "/___ \ /_/| /_/|" to the console.
Write "| \ \| || ____ |_|/ _____" to the console.
Write "| |\ \|| || /___/| _ /____/\" to the console.
Write "| | | || || / ||/_/|| \ \" to the console.
Write "| |/ / | ||/ /| ||| ||| |\ \/" to the console.
Write "| __/ | ||| | | ||| ||| | | ||" to the console.
Write "| || | ||\ \| ||| ||| | | ||" to the console.
Write "|_|/ |_|/ \____|/|_|/|_| |_|/" to the console.
Write " ______ _ _ _" to the console.
Write "/_____/| /_/|/_/| /_/|" to the console.
Write "| ___|/ _____ ____ | |||_|/ _______| ||__" to the console.
Write "| ||___ /____/\ /___/|| || _ /______/| /__/\" to the console.
Write "| |/__/|| \ \ / ||| ||/_/|/ ___|/| \ \" to the console.
Write "| ___|/| |\ \// /| ||| ||| ||| |___/\| |\ \/" to the console.
Write "| ||___ | | | ||| | | ||| ||| ||\____ \|| | | ||" to the console.
Write "| |/__/|| | | ||\ \| ||| ||| ||____| || | | ||" to the console.
Write "|_____|/|_| |_|/ \__ |||_|/|_|/|_____/ |_| |_|/" to the console.
Write " ___| ||" to the console.
Write " /___/ //" to the console.
Write " |____//" to the console.
Write "Programmers" to the console.
</syntaxhighlight>
{{out}}
<pre>
Osmosian Order of
____ _ _
/___ \ /_/| /_/|
| \ \| || ____ |_|/ _____
| |\ \|| || /___/| _ /____/\
| | | || || / ||/_/|| \ \
| |/ / | ||/ /| ||| ||| |\ \/
| __/ | ||| | | ||| ||| | | ||
| || | ||\ \| ||| ||| | | ||
|_|/ |_|/ \____|/|_|/|_| |_|/
______ _ _ _
/_____/| /_/|/_/| /_/|
| ___|/ _____ ____ | |||_|/ _______| ||__
| ||___ /____/\ /___/|| || _ /______/| /__/\
| |/__/|| \ \ / ||| ||/_/|/ ___|/| \ \
| ___|/| |\ \// /| ||| ||| ||| |___/\| |\ \/
| ||___ | | | ||| | | ||| ||| ||\____ \|| | | ||
| |/__/|| | | ||\ \| ||| ||| ||____| || | | ||
|_____|/|_| |_|/ \__ |||_|/|_|/|_____/ |_| |_|/
___| ||
/___/ //
|____//
Programmers
</pre>
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang="purebasic">If OpenConsole()
PrintN(" ////\ ////\ ////| ")
PrintN(" //// \ __ //// \ __ |XX|_/ ")
Line 2,021 ⟶ 2,970:
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
CloseConsole()
EndIf</langsyntaxhighlight>
Sample output:
<pre> ////\ ////\ ////|
Line 2,039 ⟶ 2,988:
 
=={{header|Python}}==
Again<b>Implementation 1:</b> based on the Scala type idea of 'fleshing out' a 2D banner version.
<langsyntaxhighlight lang="python">py = '''\
##### # # ##### # # #### # #
# # # # # # # # # ## #
# ### # # ###### # # # # #
##### # # # # # # # # #
# # # # # ### # # ##'''
 
# # # # # #### # #
lines = py.replace('#', '<<<').replace(' ','X') \
'''
.replace('X', ' ').replace('\n', ' Y') \
.replace('< ', '<>').split('Y')
 
lines = py.replace('#', '<<<').replace(' ','X').replace('X', ' ').replace('\n', ' Y').replace('< ', '<>').split('Y')
for i, l in enumerate(lines):
print( ' ' * (len(lines) - i) + l)</langsyntaxhighlight>
 
{{out}}
<pre style="overflow-x: auto; white-space: pre;"> <<<<<<<<<<<<> <<<> <<<> <<<<<<<<<<<<<<<> <<<> <<<> <<<<<<<<<> <<<> <<<>
<pre>
<<<> <<<<<<<<<<<<<<<> <<<> <<<> <<<<<<<<<<<<<<<> <<<> <<<> <<<<<<<<<> <<<> <<<> <<<<<<> <<<>
<<<> <<<<<<<<<> <<<> <<<> <<<> <<<> <<<<<<<<<<<<> <<<> <<<> <<<> <<<> <<<>
<<<> <<<> <<<> <<<> <<<> <<<<<<<<<<<<<<<<<<> <<<> <<<> <<<> <<<> <<<>
<<<> <<<<<<<<<<<<<<<> <<<> <<<> <<<> <<<> <<<<<<<<<> <<<> <<<> <<<> <<</pre>
<<<> <<<> <<<> <<<> <<<> <<<> <<<> <<<> <<<<<<>
<<<> <<<> <<<> <<<> <<<> <<<<<<<<<<<<> <<<> <<<>
</pre>
 
<b>Implementation 2:</b>
An other implementation:
<syntaxhighlight lang="python">charWidth = 10
{{lines too long|Python|name 'table' should be split at least.}}
charHeight = 8
<lang python>
l = 20
h = 11
 
# char table is split into sets to prevent very long lines...
table = [
charSet1 = [
""" .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. """,
" ###### /####### ###### /###### /######## /######## ###### /## /##",
"""| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |""",
" /##__ ##| ##__ ## /##__ ##| ##__ ## | ##_____/| ##_____/ /##__ ##| ## | ##",
"""| | __ | || | ______ | || | ______ | || | ________ | || | _________ | || | _________ | || | ______ | || | ____ ____ | || | _____ | || | _____ | || | ___ ____ | || | _____ | || | ____ ____ | || | ____ _____ | || | ____ | || | ______ | || | ___ | || | _______ | || | _______ | || | _________ | || | _____ _____ | || | ____ ____ | || | _____ _____ | || | ____ ____ | || | ____ ____ | || | ________ | || | ______ | || | | |""",
"| ## | ##| ## | ##| ## \__/| ## \ ##| ## | ## | ## \__/| ## | ##",
"""| | / \ | || | |_ _ \ | || | .' ___ | | || | |_ ___ `. | || | |_ ___ | | || | |_ ___ | | || | .' ___ | | || | |_ || _| | || | |_ _| | || | |_ _| | || | |_ ||_ _| | || | |_ _| | || ||_ \ / _|| || ||_ \|_ _| | || | .' `. | || | |_ __ \ | || | .' '. | || | |_ __ \ | || | / ___ | | || | | _ _ | | || ||_ _||_ _|| || ||_ _| |_ _| | || ||_ _||_ _|| || | |_ _||_ _| | || | |_ _||_ _| | || | | __ _| | || | / _ __ `. | || | | |""",
"| ########| ####### | ## | ## | ##| ########| ########| ## #####| ########",
"""| | / /\ \ | || | | |_) | | || | / .' \_| | || | | | `. \ | || | | |_ \_| | || | | |_ \_| | || | / .' \_| | || | | |__| | | || | | | | || | | | | || | | |_/ / | || | | | | || | | \/ | | || | | \ | | | || | / .--. \ | || | | |__) | | || | / .-. \ | || | | |__) | | || | | (__ \_| | || | |_/ | | \_| | || | | | | | | || | \ \ / / | || | | | /\ | | | || | \ \ / / | || | \ \ / / | || | |_/ / / | || | |_/____) | | || | | |""",
"| ##__ ##| ##__ ##| ## | ## | ##| ##_____/| ##_____/| ##|_ ##| ##__ ##",
"""| | / ____ \ | || | | __'. | || | | | | || | | | | | | || | | _| _ | || | | _| | || | | | ____ | || | | __ | | || | | | | || | _ | | | || | | __'. | || | | | _ | || | | |\ /| | | || | | |\ \| | | || | | | | | | || | | ___/ | || | | | | | | || | | __ / | || | '.___`-. | || | | | | || | | ' ' | | || | \ \ / / | || | | |/ \| | | || | > `' < | || | \ \/ / | || | .'.' _ | || | / ___.' | || | | |""",
"| ## | ##| ## | ##| ## /##| ## /##/| ## | ## | ## | ##| ## | ##",
"""| | _/ / \ \_ | || | _| |__) | | || | \ `.___.'\ | || | _| |___.' / | || | _| |___/ | | || | _| |_ | || | \ `.___] _| | || | _| | | |_ | || | _| |_ | || | | |_' | | || | _| | \ \_ | || | _| |__/ | | || | _| |_\/_| |_ | || | _| |_\ |_ | || | \ `--' / | || | _| |_ | || | \ `-' \_ | || | _| | \ \_ | || | |`\____) | | || | _| |_ | || | \ `--' / | || | \ ' / | || | | /\ | | || | _/ /'`\ \_ | || | _| |_ | || | _/ /__/ | | || | |_| | || | | |""",
"| ## | ##| #######/| ######/| ######/ | ########| ## | ######/| ## | ##",
"""| ||____| |____|| || | |_______/ | || | `._____.' | || | |________.' | || | |_________| | || | |_____| | || | `._____.' | || | |____||____| | || | |_____| | || | `.___.' | || | |____||____| | || | |________| | || ||_____||_____|| || ||_____|\____| | || | `.____.' | || | |_____| | || | `.___.\__| | || | |____| |___| | || | |_______.' | || | |_____| | || | `.__.' | || | \_/ | || | |__/ \__| | || | |____||____| | || | |______| | || | |________| | || | (_) | || | | |""",
"|__/ |__/|_______/ \______/ |______/ |________/|__/ \______/ |__/ |__/",
"""| | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | |""",
]
"""| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |""",
 
""" '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' """
charSet2 = [
]
" /######## /## /## /## /## /### ### /## /## ###### /####### ",
"|__ ##__/ | ##| ## /##/| ## | ########| ### | ## /##__ ##| ##__ ##",
" | ## | ##| ## /##/ | ## | ## ## ##| ####| ##| ## | ##| ## | ##",
" | ## | ##| #####/ | ## | ## ## ##| ## ## ##| ## | ##| #######/",
" | ## | ##| ## ## | ## | ## ## ##| ## ####| ## | ##| ##____/ ",
" | ## /## | ##| ##\ ## | ## | ##__/ ##| ##\ ###| ## | ##| ## ",
" /########\ ######/| ## \ ##| ########| ## | ##| ## \ ##| ######/| ## ",
"|________/ \______/ |__/ \__/|________/|__/ |__/|__/ \__/ \______/ |__/ ",
]
 
charSet3 = [
" ###### /####### ###### /######## /## /## /## /## /## /## /## /##",
" /##__ ##| ##__ ## /##__ ##|__ ##__/| ## | ##| ## | ##| ## | ##\ ## /##/",
"| ## | ##| ## | ##| ## \__/ | ## | ## | ##| ## | ##| ## ## ## \ ####/ ",
"| ## | ##| #######/ \ ###### | ## | ## | ##| ## | ##| ## ## ## \ ##/ ",
"| ## ## ##| ## ## \___ ## | ## | ## | ##| ## ##/| ## ## ## / #### ",
"| ##\ ###/| ##\ ## /## \ ## | ## | ## | ## \ ####/ | ######## / ## ## ",
"| #### ##| ## \ ##\ ######/ | ## | ######/ \ ##/ | ###| ###/ ## \ ##",
" \____\__/|__/ \__/ \______/ |__/ \______/ \__/ |___/|___/\__/ \__/",
]
 
charSet4 = [
" /## /## /######## ###### ",
"\ ## /##/|____ ##/ /##__ ## ",
" \ ####/ / ##/ | ## | ## ",
" \ ##/ / ##/ |__//####/ ",
" | ## / ##/ | ##_/ ",
" | ## / ##/ |__/ ",
" | ## / ######## /## ",
" |__/ \________/ |__/ ",
]
 
# ...then the sets are combined back by barbequing them together!
charTable = [(charSet1[i] +
charSet2[i] +
charSet3[i] +
charSet4[i]) for i in range(charHeight)]
 
if __name__ == '__main__':
ttext = raw_inputinput("Enter the text to convert :\n")
if not t text:
ttext = "PYTHON"
 
for i in range(hcharHeight):
txtlineOut = ""
for charchr in ttext:
# get dec value of Tcharacter 'chr' in alphabet
if charchr.isalpha():
val = ord(charchr.upper()) - 65
elif charchr == " ":
val= 27
else:
val = 26
beginbeginStr = val *l charWidth # begin string position of 3D letter
endendStr = (val*l + l1) * charWidth # end string position of 3D letter
txtlineOut += tablecharTable[i][beginbeginStr:endendStr]
print txt(lineOut)</syntaxhighlight>
</lang>
 
{{out}}
<pre> /####### /## /## /######## /## /## ###### /## /##
<pre>
| ##__ ##\ ## /##/|__ ##__/| ## | ## /##__ ##| ### | ##
.----------------. .----------------. .----------------. .----------------. .----------------. .-----------------.
| ## | ## \ ####/ | ## | ## | ##| ## | ##| ####| ##
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |
| #######/ \ ##/ | ## | ########| ## | ##| ## ## ##
| | ______ | || | ____ ____ | || | _________ | || | ____ ____ | || | ____ | || | ____ _____ | |
| |##____/ |_ __ \ | ||## | |_ _||_ _| |## || | | _ _##__ ##| ## | || ##| |_## || _| | || | .' `. | || ||_ \|_ _| | |####
| |## | |__) | | || |## \ \ / / | ||## | |_/ | | \_|## | || ##| ## | |__##| | | || | / .--. ##\ | || | | \ | | | |###
| |## | ___/ | ||## | \ \/ / | || | ## | | ## | |##| | ######/| ## __ | | || | | | | | | || | | |\ \| | | |##
|__/ | _| |_ |__/ || | _| |_ __/ |__/ || | _| |_ | || | _| | | |_ | || | __/ \ `--' ______/ |__/ || | _| |_\ |_ | |__/</pre>
 
| | |_____| | || | |______| | || | |_____| | || | |____||____| | || | `.____.' | || ||_____|\____| | |
<b>Implementation 3:</b> a more general solution that scrapes http://www.network-science.de/ascii for the ASCII art.
| | | || | | || | | || | | || | | || | | |
<syntaxhighlight lang="python">import requests
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |
import html
'----------------' '----------------' '----------------' '----------------' '----------------' '----------------'
 
text = "Python"
font = "larry3d"
url = f"http://www.network-science.de/ascii/ascii.php?TEXT={text}&FONT={font}&RICH=no&FORM=left&WIDT=1000"
 
r = requests.get(url)
r.raise_for_status()
 
ascii_text = html.unescape(r.text)
pre_ascii = "<TD><PRE>"
post_ascii = "\n</PRE>"
ascii_text = ascii_text[ascii_text.index(pre_ascii) + len(pre_ascii):]
ascii_text = ascii_text[:ascii_text.index(post_ascii)]
 
print(ascii_text)</syntaxhighlight>
{{out}}
<pre> ____ __ __
/\ _`\ /\ \__ /\ \
\ \ \L\ \ __ __\ \ ,_\\ \ \___ ___ ___
\ \ ,__//\ \/\ \\ \ \/ \ \ _ `\ / __`\ /' _ `\
\ \ \/ \ \ \_\ \\ \ \_ \ \ \ \ \ /\ \L\ \/\ \/\ \
\ \_\ \/`____ \\ \__\ \ \_\ \_\\ \____/\ \_\ \_\
\/_/ `/___/> \\/__/ \/_/\/_/ \/___/ \/_/\/_/
/\___/
\/__/</pre>
 
=={{header|Quackery}}==
 
<syntaxhighlight lang="quackery">say " ________ ___ ___ ________ ________ ___ __ _______ ________ ___ ___" cr
say "|\ __ \|\ \|\ \|\ __ \|\ ____\|\ \|\ \ |\ ___ \ |\ __ \|\ \ / /|" cr
say "\ \ \|\ \ \ \ \ \ \ \|\ \ \ \___|\ \ \/ /|\ \ __/|\ \ \|\ \ \ \/ / /" cr
say " \ \ \ \ \ \ \ \ \ \ __ \ \ \ \ \ ___ \ \ \_|/ \ \ _ _\ \ / /" cr
say " \ \ \_\ \ \ \_\ \ \ \ \ \ \ \____\ \ \\ \ \ \ \__\_\ \ \\ \ / / /" cr
say " \ \_____ \ \_______\ \__\ \__\ \_______\ \__\\ \__\ \_______\ \__\\ _\ / /" cr
say " \|___| \ \|_______|\|__|\|__|\|_______|\|__| \|__|\|_______|\|__|\|__| / /" cr
say " \ \ \_______________________________________________________/ / /" cr
say " \ \____________________________________________________________/ /" cr
say " \|____________________________________________________________|/" cr</syntaxhighlight>
 
{{out}}
 
<pre> ________ ___ ___ ________ ________ ___ __ _______ ________ ___ ___
|\ __ \|\ \|\ \|\ __ \|\ ____\|\ \|\ \ |\ ___ \ |\ __ \|\ \ / /|
\ \ \|\ \ \ \ \ \ \ \|\ \ \ \___|\ \ \/ /|\ \ __/|\ \ \|\ \ \ \/ / /
\ \ \ \ \ \ \ \ \ \ __ \ \ \ \ \ ___ \ \ \_|/ \ \ _ _\ \ / /
\ \ \_\ \ \ \_\ \ \ \ \ \ \ \____\ \ \\ \ \ \ \__\_\ \ \\ \ / / /
\ \_____ \ \_______\ \__\ \__\ \_______\ \__\\ \__\ \_______\ \__\\ _\ / /
\|___| \ \|_______|\|__|\|__|\|_______|\|__| \|__|\|_______|\|__|\|__| / /
\ \ \_______________________________________________________/ / /
\ \____________________________________________________________/ /
\|____________________________________________________________|/
</pre>
 
 
=={{header|Racket}}==
Line 2,123 ⟶ 3,156:
Use the GUI to create a text banner:
 
<langsyntaxhighlight lang="racket">
#lang racket/gui
 
Line 2,166 ⟶ 3,199:
(for ([line (dropf-right (dropf lines empty?) empty?)])
(displayln (string-trim line #:left? #f))))
</syntaxhighlight>
</lang>
 
{{out}}
Line 2,183 ⟶ 3,216:
... ... ........ ...... ... ... ...... .....
</pre>
 
=={{header|Raku}}==
(formerly Perl 6)
Produces a good old-fashioned stereogram, meant to be looked at by focusing beyond the screen, not by crossing your eyes. If you can't get it to converge, try shrinking the font size till the images are closer together than your eyes. Also helps to be old enough to have progressive lenses, so you can look through the reading part of your glasses. Or borrow glasses from someone who's farsighted. <tt>:-)</tt>
<syntaxhighlight lang="raku" line># must be evenly padded with white-space$
my $text = q:to/END/;
@@@@@ @@
@ @ @ @@@
@ @ @ @@
@ @ @@@ @ @@ @ @@
@@@@@ @ @ @@ @ @ @@@@@
@ @@@@@ @ @ @@ @@
@ @ @ @ @@ @@
@ @@@ @ @@ @@@@
END
 
say '' for ^5;
for $text.lines -> $_ is copy {
my @chars = |「-+ ., ;: '"」.comb.pick(*) xx *;
s:g [' '] = @chars.shift;
print " $_ ";
s:g [('@'+)(.)] = @chars.shift ~ $0;
.say;
}
say '' for ^5;</syntaxhighlight>
{{out}}
<small><pre>
 
 
 
 
";,' :-+ . ,. ; -:+"',';-. : " + ";,' :-+ . ,. ; -:+"',';-. : " +
:@@@@@ ,'+".-; ;-+,@@"' :. ;. " :'@@@@@ ,'+".-; ;-+,,@@' :. ;. "
"@-. @ ';,+:- +: ,;@'". +@@@, "- " @. .@';,+:- +: ,;:@". +;@@@ "-
'@,- ;@ "+: .+ -',:" @; . @@; -" , ':@- ;'@"+: .+ -',:" .@ . +@@ -" ,
;@ +, @"-@@@' :@.@@ @-,:.@@+ ;'": ; @+, .@-'@@@ : @;@@ @,:.+@@ ;'":
@@@@@+-@':.@, @@" @;@ +":@@@@@', ;@@@@@--@:. @ .@@ :@ @+": @@@@@,
@;-+, .@@@@@ :@"'+' @"-,:@@; @@. +@-+, .,@@@@@::@'+' @-,: @@ "@@
:@ . "- @,;+'; @" .-'@ +:,@@ ;@@'+ :-@. "- ,@;+'; "@ .-' @+:, @@;:@@+
+@'"., ; @@@ -:@;' "@@-+.:@@@@, +:@"., ; "@@@-:;@' ".@@+.: @@@@
;.:+"-,' +:'; -," .+:" ;-.,' . ;.:+"-,' +:'; -," .+:" ;-.,' .
 
 
 
 
 
</pre></small>
 
=={{header|Raven}}==
<syntaxhighlight lang="raven">[
<lang Raven>[
" ##### #### # # #### # #"
" # # # # # # # ## #"
Line 2,202 ⟶ 3,284:
$line r/#/@@@/g r/ /X/g r/X/ /g r/@ /@!/g r/@$/@!/g as $l1
$l1 "@" split $r1 join "!" split $r2 join print "\n" print
</syntaxhighlight>
</lang>
{{out}}
<pre> ///////////////> ////////////> ///> ///> ////////////> ///> ///>
Line 2,214 ⟶ 3,296:
=={{header|REXX}}==
===block characters===
The REXX program works in &nbsp; '''ASCII''' &nbsp; or &nbsp; [[:wp:EBCDIC|'''EBCDIC''']].
<br><br>It's astonishing how much time I <del>wasted</del> spent on this program.
<br>Most of the time was spent on writing comments, but the code was so easy to read, so the comments were elided. &nbsp; <font size=8> ☺ </font>
 
<lang rexx>/*REXX program that displays a "REXX" 3D "ASCII art" as a logo. */
This REXX has been used as part of a test suite for some REXX interpreters to stress test their syntax parser.
<syntaxhighlight lang="rexx">/*REXX program that displays a "REXX" 3D "ASCII art" as a logo. */
signal . /* Uses left-hand shadows, slightly raised view.
0=5~2?A?2?A?
Line 2,243 ⟶ 3,327:
,13,u));_=_('=',left('',16,u));_=_('#','|\\|');_=translate(_,"|"u,'@"')
do k=0 for 16;x=d2x(k,1);_=_(x,left('',k+1));end;say ' '_;end;exit;_:return,
changestr(arg(1),_,arg(2))</langsyntaxhighlight>
Some older REXXes don't have a &nbsp; '''changestr''' &nbsp; BIF, so one is included here &nbsp; ──► &nbsp; [[CHANGESTR.REX]].
 
'''output'''
{{out|output|text=&nbsp; when using the internal default input:}}'''output'''
<pre>
________________ _____________ ____ ____ ____ ____
Line 2,271 ⟶ 3,356:
{{Works with|ooRexx}}
{{Works with|Regina}}
<langsyntaxhighlight REXXlang="rexx">/* Rexx */
 
drop !top !bot
Line 2,337 ⟶ 3,422:
isFalse:
procedure
return \isTrue()</langsyntaxhighlight>
{{out}}
<pre> ///////////////\
Line 2,357 ⟶ 3,442:
This is a version of the above REXX program (with a minor bug fixed),
<br>the input text has additional spacing between the &nbsp; ''letters'' &nbsp; for better readability,
<br>the letter &nbsp; '''E''' &nbsp; (in the input text) was widenedshortened,
<br>the output doesn't have extraneous leading blanks,
<br>the output doesn't have trailing blanks,
<br>the input text can be any consistent non-blank character except the forward slash &nbsp; (<big>'''/'''</big>) &nbsp; or backward slash &nbsp;(<big>'''\'''</big>).
<langsyntaxhighlight lang="rexx">/*REXX pgm draws a "3D" image of text representation; any character except / and \ */
#=7; @.1 = '@@@@ '
@.2 = '@ @ '
Line 2,376 ⟶ 3,461:
$.2 = changestr( "\ ", $.2, '\/' )
do k=1 for 2; say strip(left('',#-j)$.k,"T") /*the LEFT BIF does indentation.*/
end /*k*/ /* [] display a line and its shadow.*/
end /*j*/ /*stick a fork in it, we're all done. */</langsyntaxhighlight>
'''{{out|output''' |text=&nbsp; when using the internal default input:}}
<pre>
////////////\
Line 2,397 ⟶ 3,482:
 
=={{header|Ruby}}==
<langsyntaxhighlight Rubylang="ruby">text = <<EOS
#### #
# # #
Line 2,461 ⟶ 3,546:
#
#
EOS</langsyntaxhighlight>
 
{{out}}
Line 2,509 ⟶ 3,594:
 
'''Another version:''' like a 3D solid.
<langsyntaxhighlight Rubylang="ruby">enc = "9 8u18 2u1\n8 1s 6u1 b16 1s sb\n6 2 s1b4u1s sb13 3 s1\n5 3 s3 3s 11 3 s1\n4 2 s1us3u1su2s 2u4 2u3 2 s1us3u4 2u6 2u1\n4 1s 6u1sbubs2 s1b 2 s1b2 1s 6u1 b2 1susb3 2 s1b\n2 2 s1b2 3u1bs2 8 s1b4u1s s4b 3 s1\n 3 s3b 2 9 s3 3s 3 b2s 1s\n 3s 3 b1 2 s2us4 s1us2u2us1 s3 3 b1s s\nsu2s 2 4 b6u2s 1s7u1sbubs6 1bub2 1s\nbubs6 1bubs2 1b5u1bs b7u1bs8 3 s1\n42 2u2s 1s\n41 1s3u1s s\n41 1b3u1bs\n"
def decode(str)
str.split(/(\d+)(\D+)/).each_slice(3).map{|_,n,s| s * n.to_i}.join.tr('sub','/_\\')
end
puts decode(enc)</langsyntaxhighlight>
 
{{out}}
Line 2,532 ⟶ 3,617:
\___\/
</pre>
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">pub fn char_from_id(id: u8) -> char {
[' ', '#', '/', '_', 'L', '|', '\n'][id as usize]
}
 
const ID_BITS: u8 = 3;
 
pub fn decode(code: &[u8]) -> String {
let mut ret = String::new();
let mut carry = 0;
let mut carry_bits = 0;
for &b in code {
let mut bit_pos = ID_BITS - carry_bits;
let mut cur = b >> bit_pos;
let mask = (1 << bit_pos) - 1;
let id = carry | (b & mask) << carry_bits;
ret.push(char_from_id(id));
while bit_pos + ID_BITS < 8 {
ret.push(char_from_id(cur & ((1 << ID_BITS) - 1)));
cur >>= ID_BITS;
bit_pos += ID_BITS;
}
carry = cur;
carry_bits = 8 - bit_pos;
}
ret
}
 
fn main() {
let code = [
72, 146, 36, 0, 0, 0, 0, 0, 0, 0, 128, 196, 74, 182, 41, 1, 0, 0, 0, 0, 0, 0, 160, 196, 77, 0,
52, 1, 18, 0, 9, 144, 36, 9, 146, 36, 113, 147, 36, 9, 160, 4, 80, 130, 100, 155, 160, 41, 145,
155, 108, 74, 128, 38, 64, 19, 41, 73, 2, 160, 137, 155, 0, 84, 130, 38, 64, 19, 112, 155, 18,
160, 137, 155, 0, 160, 18, 42, 73, 18, 36, 73, 2, 128, 74, 76, 1, 0, 40, 128, 219, 38, 104, 219,
4, 0, 160, 0
];
 
println!("{}", decode(&code));
}</syntaxhighlight>
 
{{out}}
<pre> ####### ##
/##___/## /##
|## |## ## ## ###### ######
|####### /## /## ##___/ /_/##/
|##__/## |## |##//##### |##
|## L/## |## |## L___/## |##
|## L/##L/###### ###### L/##
L/ L/ L____/ /____/ L/ </pre>
 
=={{header|Scala}}==
{{libheader|Scala}}
===Java style===
<langsyntaxhighlight Scalalang="scala">def ASCII3D = {
 
val name = """
Line 2,597 ⟶ 3,732:
}
 
println(ASCII3D)</langsyntaxhighlight>
===Idiomatic===
Cleaner code.
<langsyntaxhighlight lang="scala">import scala.collection.mutable.ArraySeq
 
object Ascii3D extends App {
Line 2,640 ⟶ 3,775:
 
println(ASCII3D)
}</langsyntaxhighlight>
{{out}}
<pre>
Line 2,656 ⟶ 3,791:
 
=={{header|Seed7}}==
<langsyntaxhighlight lang="seed7">$include "seed7_05.s7i";
 
const array string: name is [] (
Line 2,697 ⟶ 3,832:
end for;
writeln(previousLine);
end func;</langsyntaxhighlight>
 
{{out}}
Line 2,715 ⟶ 3,850:
=={{header|Sidef}}==
{{trans|Ruby}}
<langsyntaxhighlight lang="ruby">var text = <<'EOT';
 
***
Line 2,735 ⟶ 3,870:
};
 
say banner3D(text);</langsyntaxhighlight>
<pre>
Line 2,751 ⟶ 3,886:
 
=={{header|SQL}}==
<langsyntaxhighlight lang="sql">select ' SSS\ ' as s, ' QQQ\ ' as q, 'L\ ' as l from dual
union all select 'S \|', 'Q Q\ ', 'L | ' from dual
union all select '\SSS ', 'Q Q |', 'L | ' from dual
Line 2,757 ⟶ 3,892:
union all select ' SSS |', '\QQQ\\|', 'LLLL\' from dual
union all select ' \__\/', ' \_Q_/ ', '\___\' from dual
union all select ' ', ' \\ ', ' ' from dual;</langsyntaxhighlight>
This works in Oracle. For other databases, try it without "from dual".
{{out}}
Line 2,774 ⟶ 3,909:
 
=={{header|Tcl}}==
<langsyntaxhighlight lang="tcl">package require Tcl 8.5
 
proc mergeLine {upper lower} {
Line 2,809 ⟶ 3,944:
{ * *** *}
}
printLines $lines</langsyntaxhighlight>
{{out}}
<pre>
Line 2,819 ⟶ 3,954:
///\/ /////////\ ///\/
\\\/ \\\\\\\\\/ \\\/
</pre>
 
=={{header|UNIX Shell}}==
{{works with|Bash|4}}
<syntaxhighlight lang="sh">#!/usr/bin/env bash
mapfile -t name <<EOF
Aimhacks
EOF
 
main() {
banner3d_1 "${name[@]}"
echo
banner3d_2 "${name[@]}"
echo
banner3d_3 "${name[@]}"
}
 
space() {
local -i n i
(( n=$1 )) || n=1
if (( n < 1 )); then n=1; fi
for ((i=0; i<n; ++i)); do
printf ' '
done
printf '\n'
}
 
banner3d_1() {
local txt i
mapfile -t txt < <(printf '%s\n' "$@" | sed -e 's,#,__/,g' -e 's/ / /g')
for i in "${!txt[@]}"; do
printf '%s%s\n' "$(space $(( ${#txt[@]} - i )))" "${txt[i]}"
done
}
 
banner3d_2() {
local txt i line line2
mapfile -t txt < <(printf '%s \n' "$@")
for i in "${!txt[@]}"; do
line=${txt[i]}
line2=$(printf '%s%s' "$(space $(( 2 * (${#txt[@]} - i) )))" "$(sed -e 's, , ,g' -e 's,#,///,g' -e 's,/ ,/\\,g' <<<"$line")")
printf '%s\n%s\n' "$line2" "$(tr '/\\' '\\/' <<<"$line2")"
done
}
 
banner3d_3() {
# hard-coded fancy one
cat <<'EOF'
______________ ___________ ___________ ____ ____␣
/ /\ / |\ /| \ |\ \ |\ \
/_____________/ /| /___________|| ||___________\| \___\ | \___\␣
| \ / |/ \ / | | | | | |
| ________ | | ________ | | _________| | | | | |
| | |___| | | | |____| | | |_______ | | |____| | |
| | / | | /| | / | | | | \ | | | \ | |
| |/_____| |/ | |/_____| | | |________\| | |______\| |
| / /| | | \ | |
| ______ \ / | _______ | \_________ | | ________ |
| | |___| | | | | | | _________/| | | | | | |
| | / | | | | | | | | || | | | | | |
| |/_____| | /| | | | | |_________|/ | | | \ | |
| |/ | | | | | | | | | \| |
|_____________/ |___|/ |___| |_____________/ \|___| |___|
EOF
}
 
main "$@"
</syntaxhighlight>
{{Out}}
<pre> __/__/__/ __/
__/ __/ __/
__/ __/ __/
__/__/__/ __/__/ __/__/__/ __/__/__/
__/ __/ __/ __/ __/ __/
__/ __/ __/__/__/__/ __/__/ __/ __/
__/ __/ __/ __/__/ __/ __/ __/
__/__/__/ __/__/ __/ __/__/__/ __/ __/
 
/////////\ ///\
\\\\\\\\\/ \\\/
///\ ///\ ///\
\\\/ \\\/ \\\/
///\ ///\ ///\
\\\/ \\\/ \\\/
/////////\ //////\ /////////\ /////////\
\\\\\\\\\/ \\\\\\/ \\\\\\\\\/ \\\\\\\\\/
///\ ///\ ///\ ///\ ///\ ///\
\\\/ \\\/ \\\/ \\\/ \\\/ \\\/
///\ ///\ ////////////\ //////\ ///\ ///\
\\\/ \\\/ \\\\\\\\\\\\/ \\\\\\/ \\\/ \\\/
///\ ///\ ///\ //////\ ///\ ///\ ///\
\\\/ \\\/ \\\/ \\\\\\/ \\\/ \\\/ \\\/
/////////\ //////\ ///\ /////////\ ///\ ///\
\\\\\\\\\/ \\\\\\/ \\\/ \\\\\\\\\/ \\\/ \\\/
 
______________ ___________ ___________ ____ ____␣
/ /\ / |\ /| \ |\ \ |\ \
/_____________/ /| /___________|| ||___________\| \___\ | \___\␣
| \ / |/ \ / | | | | | |
| ________ | | ________ | | _________| | | | | |
| | |___| | | | |____| | | |_______ | | |____| | |
| | / | | /| | / | | | | \ | | | \ | |
| |/_____| |/ | |/_____| | | |________\| | |______\| |
| / /| | | \ | |
| ______ \ / | _______ | \_________ | | ________ |
| | |___| | | | | | | _________/| | | | | | |
| | / | | | | | | | | || | | | | | |
| |/_____| | /| | | | | |_________|/ | | | \ | |
| |/ | | | | | | | | | \| |
|_____________/ |___|/ |___| |_____________/ \|___| |___|
</pre>
 
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<syntaxhighlight lang="vbnet">Module Module1
 
Sub Main()
Console.WriteLine(" ___ ___ ___ ________ ___ ___ ________ ___ ________ ________ ________ ___ ________ ________ _______ _________
|\ \ / /|\ \|\ ____\|\ \|\ \|\ __ \|\ \ |\ __ \|\ __ \|\ ____\|\ \|\ ____\ |\ ___ \|\ ___ \|\___ ___\
\ \ \ / / | \ \ \ \___|\ \ \\\ \ \ \|\ \ \ \ \ \ \|\ /\ \ \|\ \ \ \___|\ \ \ \ \___| \ \ \\ \ \ \ __/\|___ \ \_|
\ \ \/ / / \ \ \ \_____ \ \ \\\ \ \ __ \ \ \ \ \ __ \ \ __ \ \_____ \ \ \ \ \ \ \ \\ \ \ \ \_|/__ \ \ \
\ \ / / \ \ \|____|\ \ \ \\\ \ \ \ \ \ \ \____ \ \ \|\ \ \ \ \ \|____|\ \ \ \ \ \____ __\ \ \\ \ \ \ \_|\ \ \ \ \
\ \__/ / \ \__\____\_\ \ \_______\ \__\ \__\ \_______\ \ \_______\ \__\ \__\____\_\ \ \__\ \_______\ |\__\ \__\\ \__\ \_______\ \ \__\
\|__|/ \|__|\_________\|_______|\|__|\|__|\|_______| \|_______|\|__|\|__|\_________\|__|\|_______| \|__|\|__| \|__|\|_______| \|__|
\|_________| \|_________|
")
End Sub
 
End Module</syntaxhighlight>
{{out}}
<pre> ___ ___ ___ ________ ___ ___ ________ ___ ________ ________ ________ ___ ________ ________ _______ _________
|\ \ / /|\ \|\ ____\|\ \|\ \|\ __ \|\ \ |\ __ \|\ __ \|\ ____\|\ \|\ ____\ |\ ___ \|\ ___ \|\___ ___\
\ \ \ / / | \ \ \ \___|\ \ \\\ \ \ \|\ \ \ \ \ \ \|\ /\ \ \|\ \ \ \___|\ \ \ \ \___| \ \ \\ \ \ \ __/\|___ \ \_|
\ \ \/ / / \ \ \ \_____ \ \ \\\ \ \ __ \ \ \ \ \ __ \ \ __ \ \_____ \ \ \ \ \ \ \ \\ \ \ \ \_|/__ \ \ \
\ \ / / \ \ \|____|\ \ \ \\\ \ \ \ \ \ \ \____ \ \ \|\ \ \ \ \ \|____|\ \ \ \ \ \____ __\ \ \\ \ \ \ \_|\ \ \ \ \
\ \__/ / \ \__\____\_\ \ \_______\ \__\ \__\ \_______\ \ \_______\ \__\ \__\____\_\ \ \__\ \_______\ |\__\ \__\\ \__\ \_______\ \ \__\
\|__|/ \|__|\_________\|_______|\|__|\|__|\|_______| \|_______|\|__|\|__|\_________\|__|\|_______| \|__|\|__| \|__|\|_______| \|__|
\|_________| \|_________|
</pre>
 
=={{header|Wren}}==
This uses the 3D ASCII letter font [https://github.com/arpan98/3dwrite/blob/master/3d_font.txt here].
<syntaxhighlight lang="wren">var w = """
____ ____ ____
|\ \ |\ \ |\ \
| \ \ | \ \ | \ \
\ \ \\ / \\ / /|
\ \ \V \V / |
\ \ /\ / /
\ \____/ \____/ /
\ | | /| | /
\|____|/ |____|/
""".split("\n")
 
var r = """
_______ ____
|\__ \ / \
|| |\ \/ ___\
\|_| \ /|__|
\ \ //
\ \ \
\ \____\
\ | |
\|____|
""".split("\n")
 
var e = """
___________
/ _____ \
/ /_____\ \
|\ _____/|
| \ /|____|/
\ \ \/_______/\
\ \_____________/|
\ | | |
\|____________|/
""".split("\n")
 
var n = """
_____ _______
|\__ \/ \
|| |\ __ \
\|_| \ /| \ \
\ \ \/\ \ \
\ \ \ \ \ \
\ \___\ \ \___\
\ | | \| |
\|___| |___|
""".split("\n")
 
for (i in 0..8) {
System.print("%(w[i]) %(r[i]) %(e[i]) %(n[i])")
}</syntaxhighlight>
 
{{out}}
<pre>
____ ____ ____ _______ ____ ___________ _____ _______
|\ \ |\ \ |\ \ |\__ \ / \ / _____ \ |\__ \/ \
| \ \ | \ \ | \ \ || |\ \/ ___\ / /_____\ \ || |\ __ \
\ \ \\ / \\ / /| \|_| \ /|__| |\ _____/| \|_| \ /| \ \
\ \ \V \V / | \ \ // | \ /|____|/ \ \ \/\ \ \
\ \ /\ / / \ \ \ \ \ \/_______/\ \ \ \ \ \ \
\ \____/ \____/ / \ \____\ \ \_____________/| \ \___\ \ \___\
\ | | /| | / \ | | \ | | | \ | | \| |
\|____|/ |____|/ \|____| \|____________|/ \|___| |___|
</pre>
 
=={{header|XPL0}}==
Here's XPL0's "cheap hack." (Hats off to D!)
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\codes;
 
proc DrawBlock(X, Y);
Line 2,849 ⟶ 4,192:
];
];
]</langsyntaxhighlight>
 
{{out}}
Line 2,870 ⟶ 4,213:
\\\/ \\\/ \\\/ \\\\\\\\\\\/ \\\\\\\/
</pre>
 
=={{header|Yabasic}}==
<syntaxhighlight lang="yabasic">
// Method 1
// r$ = system$("explorer \"http://www.network-science.de/ascii/ascii.php?TEXT=${delegate}&x=23&y=10&FONT=block&RICH=no&FORM=left&STRE=no&WIDT=80&TEXT=Yabasic\"")
 
// Method 2
// print
// print " _| _| _| _| "
// print " _| _| _|_|_| _|_|_| _|_|_| _|_|_| _|_|_| "
// print " _| _| _| _| _| _| _| _|_| _| _| "
// print " _| _| _| _| _| _| _| _|_| _| _| "
// print " _| _|_|_| _|_|_| _|_|_| _|_|_| _| _|_|_| "
// print
 
// Method 3
clear screen
 
dim d$(5)
 
d$(0) = "X X X XXXX X XXX X XXX "
d$(1) = " X X X X X X X X X X X X"
d$(2) = " X XXXXX XXXX XXXXX XXX X X "
d$(3) = " X X X X X X X X X X X"
d$(4) = " X X X XXXX X X XXXX X XXX "
 
long = len(d$(0))
 
sub write(dx, dy, c$)
local x, y
for y = 0 to 4
for x = 0 to long
if mid$(d$(y), x, 1) = "X" print at(x + dx, y + dy) c$
next x
next y
end sub
 
write(2, 2, "\\")
write(1, 1, "#")
print</syntaxhighlight>
 
=={{header|zkl}}==
{{trans|Common Lisp}}
<langsyntaxhighlight lang="zkl">#<<<
"
xxxxxx x x x
x x x x
x x x x
x x x x
xxxxx x x xxxx
"
#<<<<
.replace(" "," ").replace("x","_/").println();</langsyntaxhighlight>
{{out}}
<pre>
 
_/_/_/_/_/_/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
_/ _/ _/ _/
_/_/_/_/_/ _/ _/ _/_/_/_/
 
</pre>
56

edits