Write language name in 3D ASCII: Difference between revisions
m
→{{header|Binary Lambda Calculus}}
m (→simpler, shorter: changed an arror glyph.) |
|||
(40 intermediate revisions by 21 users not shown) | |||
Line 13:
;Related tasks:
* [[
* [[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.
<
STM 14,12,12(13)
BALR 12,0
Line 31 ⟶ 60:
BR 14
LTORG
END</
{{out}}
<pre>
Line 42 ⟶ 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.
<
with Ada.Strings.Fixed; use Ada.Strings.Fixed;
procedure AsciiArt is
Line 62 ⟶ 116:
if i mod 3 = 0 then New_Line; Put(i/3*' '); end if;
end loop;
end AsciiArt;</
{{out}}
<pre>
Line 74 ⟶ 128:
\/\\\ \/\\\ \/\\\\\\\\\\\\ \/\\\\\\\\\\\\
\/// \/// \//////////// \////////////</pre>
=={{header|Arturo}}==
<syntaxhighlight lang="rebol">print {:
______ __
/\ _ \ /\ \__
\ \ \L\ \ _ __\ \ ,_\ __ __ _ __ ___
\ \ __ \/\`'__\ \ \/ /\ \/\ \/\`'__\/ __`\
\ \ \/\ \ \ \/ \ \ \_\ \ \_\ \ \ \//\ \L\ \
\ \_\ \_\ \_\ \ \__\\ \____/\ \_\\ \____/
\/_/\/_/\/_/ \/__/ \/___/ \/_/ \/___/
:}</syntaxhighlight>
{{out}}
<pre> ______ __
/\ _ \ /\ \__
\ \ \L\ \ _ __\ \ ,_\ __ __ _ __ ___
\ \ __ \/\`'__\ \ \/ /\ \/\ \/\`'__\/ __`\
\ \ \/\ \ \ \/ \ \ \_\ \ \_\ \ \ \//\ \L\ \
\ \_\ \_\ \_\ \ \__\\ \____/\ \_\\ \____/
\/_/\/_/\/_/ \/__/ \/___/ \/_/ \/___/</pre>
=={{header|AutoHotkey}}==
<
draw =
(
Line 93 ⟶ 169:
GuiClose:
ExitApp</
{{out}}
<pre> ______ __ __ __ __
Line 103 ⟶ 179:
=={{header|AWK}}==
<syntaxhighlight lang="awk">
# syntax: GAWK -f WRITE_LANGUAGE_NAME_IN_3D_ASCII.AWK
BEGIN {
Line 122 ⟶ 198:
exit(0)
}
</syntaxhighlight>
{{out}}
<pre>
Line 134 ⟶ 210:
_/ _/ _/ _/ _/ _/
</pre>
=={{header|BASIC}}==
==={{header|Applesoft BASIC}}===
Ported from [[Write language name in 3D ASCII#ZX Spectrum Basic|ZX Spectrum Basic]].<
20 DIM B(5,5) : REM OUR BIGMAP CHARACTERS
30 FOR L = 1 TO 5 : REM 5 CHARACTERS
Line 196 ⟶ 262:
9030 DATA 31,4,4,4,31: REM I
9040 DATA 14,17,16,17,14: REM C
</syntaxhighlight>
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
Uses the built-in '''BBC Micro'''-compatible character generator, so any text can be specified.
<
END
Line 222 ⟶ 288:
PRINT
NEXT row%
ENDPROC</
{{out}}
<pre>
Line 237 ⟶ 303:
==={{header|FreeBASIC}}===
freebasic is quite a long name, so I have done a combi.
<
dim as integer xres=loword(width)
Line 264 ⟶ 330:
print "BASIC"
Sleep
</syntaxhighlight>
{{out}}
<pre> \ \ \ \ \ \ \ \ \ \ \ \
Line 285 ⟶ 351:
==={{header|Liberty BASIC}}===
<syntaxhighlight lang="lb">
r=21:s=9:c=s
For i=1 To 11
Line 304 ⟶ 370:
Next
Data 479667712,311470336,485697536,311699712,476292608,0,1976518785,1160267905,1171157123,1160267909,1171223529
</syntaxhighlight>
{{out}}
Line 335 ⟶ 401:
==={{header|Locomotive Basic}}===
<
20 locate 1,25
30 print "Basic";
Line 359 ⟶ 425:
230 locate xp,yp+1
240 print "\\/";
250 return</
{{Out}}
Line 374 ⟶ 440:
==={{header|TI-83 BASIC}}===
<
Disp “ +o+ooo +o+ooo
Disp “ .o .o
Line 380 ⟶ 446:
Disp “ +o +ooooo
Disp “
Disp “ BASIC</
Replace . + o with 0x81,0x80,and 0x7F http://tibasicdev.wikidot.com/one-byte-tokens
Line 392 ⟶ 458:
but the output would still look the same.
Fixed the error and removed the need for 2^z.
<
20 FOR l=1 TO 5: REM 5 characters
30 FOR m=1 TO 5: REM 5 rows
Line 428 ⟶ 494:
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</
To me it does not work. So I bring my particular solution:
<
10 LET d=0: INK 1: GO SUB 40
20 LET d=1: INK 6: GO SUB 40
Line 449 ⟶ 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"</
[[File:Basic.jpg]]
=={{header|Batch File}}==
<syntaxhighlight lang="dos">@echo off
for %%b in (
""
" /####### ###### /######## ###### /## /##"
"| ##__ ## /##__ ##|__ ##__/ /##__ ##| ## | ##"
"| ## | ##| ## | ## | ## | ## \__/| ## | ##"
"| ####### | ######## | ## | ## | ########"
"| ##__ ##| ##__ ## | ## | ## | ##__ ##"
"| ## | ##| ## | ## | ## | ## /##| ## | ##"
"| #######/| ## | ## | ## | ######/| ## | ##"
"|_______/ |__/ |__/ |__/ \______/ |__/ |__/"
""
) do echo(%%~b
pause</syntaxhighlight>
=={{header|Befunge}}==
===Befunge-93===
<
v"'%$%'%$%3$%$%7% 0%&7&%&7&(%$%'%$"<
>"%$%7%$%&%$%&'&%7%$%7%$%, '&+(%$%"v
Line 464 ⟶ 546:
? ";(;(+(+$%+(%&(;(3%$%&$ 7`+( ":v >
^v!:-1<\,:g7+*63%4 \/_#4:_v#:-*84_$@
$_\:,\^ >55+,$:^:$</
{{out}}
<pre>
Line 480 ⟶ 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">
v THE DATA IMAGE.(totally useless after loading into stack)
>89 v Made by gamemanj
Line 516 ⟶ 598:
" "
^ $,< < < (code path reuse here,all 3 end in ,$ so I merged them)
</syntaxhighlight>
{{out}}
<pre>
Line 528 ⟶ 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.
<
-...[<]<+++[>++++[>>...<<-]<-]> >>..>>>.....<<<..>>>...[<]++[>>
.....>>>...<<<<<-]>.>.>.>.<<..> >.[<]<+++++[>++++[>>.<<-]<-]>>>
Line 546 ⟶ 653:
..>>.<<.>>.>......<..>..<.<<..> >.<<.>>.>...<<.>.>..<..>..<..>.
.<..<<.>>.>..<..>..<.<<<.>..... .>>.<.>>......<<..>>..<<.<...>>
.<.>>..<<.>.<.>>..<<..>>..<<..> >..<<.<.>>.<.>>..<<..>>..<<.<<.</
{{out}}
<pre>
Line 560 ⟶ 667:
=={{header|C}}==
3D enough?<
const char*s = " _____\n /____/\\\n/ ___\\/\n\\ \\/__/\n \\____/";
int main(){ puts(s); return 0; }</
{{out}}
<pre>
Line 572 ⟶ 679:
</pre>
=={{header|C sharp|C#}}==
<
using System.Text;
Line 763 ⟶ 783:
}
}
}</
Output:
Line 773 ⟶ 793:
_/
_/</pre>
=={{header|C++}}==
<syntaxhighlight lang="cpp">
#include <windows.h>
#include <iostream>
//--------------------------------------------------------------------------------------------------
using namespace std;
//--------------------------------------------------------------------------------------------------
int main(int argc, char* argv[])
{
cout <<
" ______ ______ " << endl <<
" _____ _____|\\ \\ _____|\\ \\ " << endl <<
" _____\\ \\_ / / | | / / | |" << endl <<
" / /| || |/ /|| |/ /|" << endl <<
" / / /____/|| |\\____/ || |\\____/ |" << endl <<
"| | |____|/ |\\ \\ | / |\\ \\ | / " << endl <<
"| | _____ | \\ \\___|/ | \\ \\___|/ " << endl <<
"|\\ \\|\\ \\ | \\ \\ | \\ \\ " << endl <<
"| \\_____\\| | \\ \\_____\\ \\ \\_____\\ " << endl <<
"| | /____/| \\ | | \\ | | " << endl <<
" \\|_____| || \\|_____| \\|_____| " << endl <<
" |____|/ ";
cout << endl << endl << endl;
system( "pause" );
return 0;
}
//--------------------------------------------------------------------------------------------------
</syntaxhighlight>
{{out}}
<pre>
______ ______
_____ _____|\ \ _____|\ \
_____\ \_ / / | | / / | |
/ /| || |/ /|| |/ /|
/ / /____/|| |\____/ || |\____/ |
| | |____|/ |\ \ | / |\ \ | /
| | _____ | \ \___|/ | \ \___|/
|\ \|\ \ | \ \ | \ \
| \_____\| | \ \_____\ \ \_____\
| | /____/| \ | | \ | |
\|_____| || \|_____| \|_____|
|____|/
</pre>
Another solution:
<syntaxhighlight lang="cpp">
// @author Martin Ettl (http://www.martinettl.de)
// @date 2013-07-26
// A program to print the letters 'CPP' in 3D ASCII-art.
#include <iostream>
#include <string>
int main()
{
std::string strAscii3D =
" /$$$$$$ /$$$$$$$ /$$$$$$$ \n"
" /$$__ $$| $$__ $$| $$__ $$\n"
"| $$ \\__/| $$ \\ $$| $$ \\ $$\n"
"| $$ | $$$$$$$/| $$$$$$$/\n"
"| $$ | $$____/ | $$____/ \n"
"| $$ $$| $$ | $$ \n"
"| $$$$$$/| $$ | $$ \n"
" \\______/ |__/ |__/ \n";
std::cout << "\n" << strAscii3D << std::endl;
return 0;
}
</syntaxhighlight>
{{out}}
<pre>
/$$$$$$ /$$$$$$$ /$$$$$$$
/$$__ $$| $$__ $$| $$__ $$
| $$ \__/| $$ \ $$| $$ \ $$
| $$ | $$$$$$$/| $$$$$$$/
| $$ | $$____/ | $$____/
| $$ $$| $$ | $$
| $$$$$$/| $$ | $$
\______/ |__/ |__/
</pre>
=={{header|Clojure}}==
{{libheader|clj-figlet}}
<
(println
(render-to-string
(load-flf "ftp://ftp.figlet.org/pub/figlet/fonts/contributed/larry3d.flf")
"Clojure"))</
{{out}}
Line 794 ⟶ 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}}
<
PROGRAM-ID. cobol-3d.
Line 876 ⟶ 982:
GOBACK
.</
{{out}} (note: the shadow effect is quite faint on this site):
Line 893 ⟶ 999:
=={{header|Common Lisp}}==
{{libheader|cl-ppcre}}
<
(ql:quickload :cl-ppcre)
(defvar txt
Line 906 ⟶ 1,012:
)
(princ (cl-ppcre:regex-replace-all " " (cl-ppcre:regex-replace-all "x" txt "_/") " " ))
</syntaxhighlight>
{{out}}
<pre>
Line 917 ⟶ 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.
<
// by Jan Hubicka and Thomas Marsh
// (GNU General Public License)
Line 978 ⟶ 1,191:
writeln();
}
}</
{{out}}
<pre>nguageDLangunguageDLangunguageDLangunguageDLangung
Line 994 ⟶ 1,207:
=={{header|Dart}}==
<
void main(){
print("""
Line 1,004 ⟶ 1,217:
""".replaceAll('X','_/'));
}
</syntaxhighlight>
{{out}}
<pre>
Line 1,014 ⟶ 1,227:
</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}}==
<
def decode(str) do
Regex.scan(~r/(\d+)(\D+)/, str)
Line 1,028 ⟶ 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)</
{{out}}
Line 1,044 ⟶ 1,397:
=={{header|Erlang}}==
<
-module(three_d).
-export([main/0]).
Line 1,050 ⟶ 1,403:
main() ->
io:format(" _____ _ \n| ___| | | \n| |__ _ __| | __ _ _ __ __ _ \n| __| '__| |/ _` | '_ \\ / _` |\n| |__| | | | (_| | | | | (_| |\n|____/_| |_|\\__,_|_| |_|\\__, |\n __/ |\n |___/\n").
</syntaxhighlight>
{{out}}
<pre>
Line 1,066 ⟶ 1,419:
'''3D ASCII:'''
{{trans|Elixir}}
<
-export([decode/1]).
Line 1,074 ⟶ 1,427:
Joined = string:join(lists:flatmap(Fun, Splited), ""),
Lines = binary:replace(binary:list_to_bin(Joined), <<"B">>, <<"\\">>, [global]),
io:format("~s~n", [Lines]).</
{{out}}
<pre>
Line 1,099 ⟶ 1,452:
=={{header|ERRE}}==
<
DIM TBL$[17,1]
Line 1,135 ⟶ 1,488:
END PROGRAM
</syntaxhighlight>
{{out}}
<pre>
Line 1,159 ⟶ 1,512:
=={{header|F_Sharp|F#}}==
<
let maxY = picture.Length
let maxX = picture |> List.maxBy String.length |> String.length
Line 1,202 ⟶ 1,555:
if x = 0 then printfn ""
printf "%c" c) a2
</syntaxhighlight>
{{out}}
<pre>
Line 1,219 ⟶ 1,572:
=={{header|Forth}}==
=== Text strings ===
<
\ Simple Method
Line 1,236 ⟶ 1,589:
( test at the console )
page "forth"
</syntaxhighlight>
{{out}}
Line 1,256 ⟶ 1,609:
=== Bit Matrix Method ===
<
\ Modified BFox for simple 3D presentation 2015-07-14
Line 1,358 ⟶ 1,711:
\ test the solution in the Forth console
</syntaxhighlight>
{{out}}
Line 1,383 ⟶ 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,388 ⟶ 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.
<
import (
Line 1,480 ⟶ 1,881:
fmt.Println(render("Go", lean))
fmt.Println(render("Go", smallKeyboard))
}</
{{out}}
<pre>
Line 1,496 ⟶ 1,897:
=={{header|Groovy}}==
A simple way to display ASCII art
<
_|_|_|
_| _| _|_| _|_| _|_| _| _| _| _|
Line 1,503 ⟶ 1,904:
_|_|_| _| _|_| _|_| _| _|_|_|
_|
_|_|"""</
A more complicated example:
<
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,511 ⟶ 1,912:
}
println "Groovy".asAsciiArt</
{{out}}
<pre> _|_|_|
Line 1,523 ⟶ 1,924:
=={{header|Haskell}}==
A simple printing of the ASCII art
<
{-
__ __ __ ___ ___
Line 1,544 ⟶ 1,945:
main = putStrLn ascii3d
</syntaxhighlight>
{{out}}
Line 1,558 ⟶ 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.
<
write(ExpandText(
if !arglist == "icon" then
Line 1,591 ⟶ 1,992:
s ? until pos(0) do
writes(repl(" ",tab(many(&digits)))|tab(upto(&digits)|0))
end</
{{out}} with "icon" as the argument:
Line 1,627 ⟶ 2,028:
=={{header|J}}==
<
view 5#.^:_1]21-~a.i.'j*ez`C3\toy.G)' NB. Due to Oleg Kobchenko
________________________
Line 1,649 ⟶ 2,050:
\| | | |
\_____|_____|_____|
</syntaxhighlight>
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,655 ⟶ 2,056:
Here's a slimmer version:
<
Line 1,691 ⟶ 2,092:
\| |
\_____|
</syntaxhighlight>
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,703 ⟶ 2,104:
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>.
<
char[]z={' ',' ','_','/',};
long[][]f={
Line 1,781 ⟶ 2,182:
System.out.print(' ');
System.out.println(o[i]);}}}
</syntaxhighlight>
{{out}} With no parameters:
Line 1,803 ⟶ 2,204:
_/
_/_/
</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}}
<
xxxxx
x x
Line 1,817 ⟶ 2,253:
xx xx x x x x xx
""", "x" => "_/"))
</
_/_/_/_/_/
_/ _/
Line 1,827 ⟶ 2,263:
_/_/ _/_/ _/ _/ _/ _/ _/_/
</pre>
=={{header|Kotlin}}==
{{trans|Java}}
<
class Ascii3D(s: String) {
Line 1,927 ⟶ 2,362:
Ascii3D("of the")
Ascii3D("Java entry")
}</
{{out}}
Line 1,969 ⟶ 2,404:
=={{header|Lasso}}==
<
---------------------------------------------------------------
| ,--, |
Line 1,988 ⟶ 2,423:
")
stdoutnl(#lasso)</
<pre>---------------------------------------------------------------
| ,--, |
Line 2,008 ⟶ 2,443:
=={{header|Lua}}==
<
io.write("| $$\n")
io.write("| $$ /$$ /$$ /$$$$$$\n")
Line 2,015 ⟶ 2,450:
io.write("| $$ | $$ | $$ /$$__ $$\n")
io.write("| $$$$$$$$| $$$$$$/| $$$$$$$\n")
io.write("|________/ \______/ \_______/\n")</
{{out}}
<pre> /$$
Line 2,025 ⟶ 2,460:
| $$$$$$$$| $$$$$$/| $$$$$$$
|________/ ______/ _______/</pre>
Alternate:
<syntaxhighlight lang="lua">print[[
__
/\ \
\ \ \ __ __ ____
\ \ \ /\ \/\ \ / __ \
\ \ \___\ \ \_\ \/\ \_\ \_
\ \____\\ \____/\ \___/\_\
\/____/ \/___/ \/__/\/_/]]</syntaxhighlight>
{{out}}
<pre> __
/\ \
\ \ \ __ __ ____
\ \ \ /\ \/\ \ / __ \
\ \ \___\ \ \_\ \/\ \_\ \_
\ \____\\ \____/\ \___/\_\
\/____/ \/___/ \/__/\/_/</pre>
=={{header|Mathematica}}/{{header|Wolfram Language}}==
No hardcoding at all!
<
ImageData[Binarize[Rasterize["Mathematica", ImageSize -> 150]]], 0];
Print[StringRiffle[
Line 2,036 ⟶ 2,488:
ConstantArray[
" ", {Max[locs[[All, 1]]] + 1, Max[locs[[All, 2]]] + 1}],
locs -> "\\"], Map[# + 1 &, locs, {2}] -> "#"], "\n"]];</
{{output}}
<pre>
Line 2,061 ⟶ 2,513:
=={{header|MiniScript}}==
Nothing fancy here, but in keeping with MiniScript's "clear and simple" ethos:
<
" ______ _____ _________",
"|\ \/ \ ___ ________ ___|\ _____\ ________ ________ ___ ________ _________ ",
Line 2,073 ⟶ 2,525:
for line in data
print line
end for</
{{out}}
<pre> ______ _____ _________
Line 2,085 ⟶ 2,537:
=={{header|Modula-2}}==
<
FROM Terminal IMPORT WriteString,WriteLn,ReadChar;
Line 2,123 ⟶ 2,575:
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.
<
options replace format comments java crossref symbols nobinary
Line 2,192 ⟶ 2,663:
method isFalse public constant binary returns boolean
return \isTrue()
</syntaxhighlight>
{{out}}
<pre>
Line 2,213 ⟶ 2,684:
=={{header|Nim}}==
{{trans|Python}}
<
const nim = """
"""
let lines = nim.
for i, line in lines:
echo spaces(lines.len - i), line</
{{out}}
<pre>
=={{header|OCaml}}==
<syntaxhighlight lang="ocaml">
print_string "
_|_|_| _|_|_| _|_| _|_| _|_| _|
Line 2,243 ⟶ 2,714:
_|_|_| _|_|_| _| _| _| _| _|_|_|_|_|
"
</syntaxhighlight>
{{out}}
<pre>
Line 2,255 ⟶ 2,726:
=={{header|Pascal}}==
<
program WritePascal;
Line 2,281 ⟶ 2,752:
end;
end.
</syntaxhighlight>
Need 64-Bit Integer for this solution.
My goal was to do a straight-forward solution, (Just two nested loops, no conditional code).
Line 2,297 ⟶ 2,768:
</pre>
=={{header|Perl}}==
<
use strict;
use warnings;
Line 2,308 ⟶ 2,780:
) {
print $tuple->[0] x $tuple->[1];
}</
{{out}}
<pre> _ \ |
Line 2,315 ⟶ 2,787:
_| \___|_| _|</pre>
Font taken from http://www.network-science.de/ascii/.
=={{header|Phix}}==
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">constant</span> <span style="color: #000000;">s</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
------*
-----* *
----* * * *
---
--* *
-* * * *
* * * * * *
"""</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: #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 2,387 ⟶ 2,813:
===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="
<span style="color: #008000;">"\\ \\ \\ \\
<span style="color: #008000;">" \\ \\ \\ \\ \\ /_/ /\\ \\\n\\_\\/ \\_\\/ \\_\\/ \\_\\/\\_\\/\n"</span><span style="color: #0000FF;">)</span>
<!--</syntaxhighlight>-->
=={{header|PicoLisp}}==
{{Trans|Tcl}}
<
"***** * "
"* * * * * "
Line 2,447 ⟶ 2,877:
(maplist '((X) (transform X "/" "\\")) (cdr Lst)) )
(bye)</
{{out}}
Line 2,460 ⟶ 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}}==
<
PrintN(" ////\ ////\ ////| ")
PrintN(" //// \ __ //// \ __ |XX|_/ ")
Line 2,480 ⟶ 2,970:
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
CloseConsole()
EndIf</
Sample output:
<pre> ////\ ////\ ////|
Line 2,498 ⟶ 2,988:
=={{header|Python}}==
<
####
#
#
#
lines = py.replace('#', '<<<').replace(' ','X') \
.replace('X', ' ').replace('\n', ' Y') \
.replace('< ', '<>').split('Y')
for i, l in enumerate(lines):
print(
{{out}}
<pre
<<<>
<b>Implementation 2:</b>
<syntaxhighlight lang="python">charWidth = 10
charHeight = 8
# char table is split into sets to prevent very long lines...
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__':
if not
for i in range(
for
# get
if
val = ord(
elif
val= 27
else:
val = 26
print
{{out}}
<pre> /####### /## /## /######## /## /## ###### /## /##
| ##__ ##\ ## /##/|__ ##__/| ## | ## /##__ ##| ### | ##
|
|
|
|
|
|__/
<
import html
Line 2,591 ⟶ 3,112:
ascii_text = ascii_text[:ascii_text.index(post_ascii)]
print(ascii_text)</
{{out}}
<pre> ____ __ __
Line 2,602 ⟶ 3,123:
/\___/
\/__/</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,607 ⟶ 3,156:
Use the GUI to create a text banner:
<
#lang racket/gui
Line 2,650 ⟶ 3,199:
(for ([line (dropf-right (dropf lines empty?) empty?)])
(displayln (string-trim line #:left? #f))))
</syntaxhighlight>
{{out}}
Line 2,667 ⟶ 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">[
" ##### #### # # #### # #"
" # # # # # # # ## #"
Line 2,686 ⟶ 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>
{{out}}
<pre> ///////////////> ////////////> ///> ///> ////////////> ///> ///>
Line 2,698 ⟶ 3,296:
=={{header|REXX}}==
===block characters===
The REXX program works in '''ASCII''' or [[: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. <font size=8> ☺ </font>
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,727 ⟶ 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))</
Some older REXXes don't have a '''changestr''' BIF, so one is included here ──► [[CHANGESTR.REX]].
{{out|output|text= when using the internal default input:}}'''output'''
<pre>
________________ _____________ ____ ____ ____ ____
Line 2,755 ⟶ 3,356:
{{Works with|ooRexx}}
{{Works with|Regina}}
<
drop !top !bot
Line 2,821 ⟶ 3,422:
isFalse:
procedure
return \isTrue()</
{{out}}
<pre> ///////////////\
Line 2,841 ⟶ 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 ''letters'' for better readability,
<br>the letter '''E''' (in the input text) was
<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 (<big>'''/'''</big>) or backward slash (<big>'''\'''</big>).
<
#=7; @.1 = '@@@@ '
@.2 = '@ @ '
Line 2,861 ⟶ 3,462:
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. */</
<pre>
////////////\
Line 2,881 ⟶ 3,482:
=={{header|Ruby}}==
<
#### #
# # #
Line 2,945 ⟶ 3,546:
#
#
EOS</
{{out}}
Line 2,993 ⟶ 3,594:
'''Another version:''' like a 3D solid.
<
def decode(str)
str.split(/(\d+)(\D+)/).each_slice(3).map{|_,n,s| s * n.to_i}.join.tr('sub','/_\\')
end
puts decode(enc)</
{{out}}
Line 3,018 ⟶ 3,619:
=={{header|Rust}}==
<
[' ', '#', '/', '_', 'L', '|', '\n'][id as usize]
}
Line 3,055 ⟶ 3,656:
println!("{}", decode(&code));
}</
{{out}}
Line 3,070 ⟶ 3,671:
{{libheader|Scala}}
===Java style===
<
val name = """
Line 3,131 ⟶ 3,732:
}
println(ASCII3D)</
===Idiomatic===
Cleaner code.
<
object Ascii3D extends App {
Line 3,174 ⟶ 3,775:
println(ASCII3D)
}</
{{out}}
<pre>
Line 3,190 ⟶ 3,791:
=={{header|Seed7}}==
<
const array string: name is [] (
Line 3,231 ⟶ 3,832:
end for;
writeln(previousLine);
end func;</
{{out}}
Line 3,249 ⟶ 3,850:
=={{header|Sidef}}==
{{trans|Ruby}}
<
***
Line 3,269 ⟶ 3,870:
};
say banner3D(text);</
<pre>
Line 3,285 ⟶ 3,886:
=={{header|SQL}}==
<
union all select 'S \|', 'Q Q\ ', 'L | ' from dual
union all select '\SSS ', 'Q Q |', 'L | ' from dual
Line 3,291 ⟶ 3,892:
union all select ' SSS |', '\QQQ\\|', 'LLLL\' from dual
union all select ' \__\/', ' \_Q_/ ', '\___\' from dual
union all select ' ', ' \\ ', ' ' from dual;</
This works in Oracle. For other databases, try it without "from dual".
{{out}}
Line 3,308 ⟶ 3,909:
=={{header|Tcl}}==
<
proc mergeLine {upper lower} {
Line 3,343 ⟶ 3,944:
{ * *** *}
}
printLines $lines</
{{out}}
<pre>
Line 3,357 ⟶ 3,958:
=={{header|UNIX Shell}}==
{{works with|Bash|4}}
<
mapfile -t name <<EOF
Aimhacks
Line 3,420 ⟶ 4,021:
main "$@"
</syntaxhighlight>
{{Out}}
<pre> __/__/__/ __/
Line 3,467 ⟶ 4,068:
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<
Sub Main()
Line 3,483 ⟶ 4,084:
End Sub
End Module</
{{out}}
<pre> ___ ___ ___ ________ ___ ___ ________ ___ ________ ________ ________ ___ ________ ________ _______ _________
Line 3,495 ⟶ 4,096:
</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!)
<
proc DrawBlock(X, Y);
Line 3,524 ⟶ 4,192:
];
];
]</
{{out}}
Line 3,547 ⟶ 4,215:
=={{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\"")
Line 3,585 ⟶ 4,253:
write(2, 2, "\\")
write(1, 1, "#")
print</
=={{header|zkl}}==
{{trans|Common Lisp}}
<
"
xxxxxx x x x
Line 3,598 ⟶ 4,266:
"
#<<<<
.replace(" "," ").replace("x","_/").println();</
{{out}}
<pre>
|