Rebol3 Code Examplex
Write language name in 3D ASCII
Render a language name as 3D ASCII art.
Rebol [
title: "Rosetta code: Write language name in 3D ASCII"
file: %Write_language_name_in_3D_ASCII.r3
url: https://rosettacode.org/wiki/Write_language_name_in_3D_ASCII
]
print-rebol: closure/with [][
word: "REBOL"
repeat row 6 [
line: clear ""
foreach char word [
append line letters/:char/:row
]
print line
]
][
letters: [
#"R" [
" ██████╗ "
" ██╔══██╗"
" ██████╔╝"
" ██╔══██╗"
" ██║ ██║"
" ╚═╝ ╚═╝"
]
#"E" [
" ███████╗"
" ██╔════╝"
" █████╗ "
" ██╔══╝ "
" ███████╗"
" ╚══════╝"
]
#"B" [
" ██████╗ "
" ██╔══██╗"
" ██████╔╝"
" ██╔══██╗"
" ██████╔╝"
" ╚═════╝ "
]
#"O" [
" ██████╗ "
" ██╔══██╗"
" ██║ ██║"
" ██║ ██║"
" ╚█████╔╝"
" ╚════╝ "
]
#"L" [
" ██╗ "
" ██║ "
" ██║ "
" ██║ "
" ███████╗"
" ╚══════╝"
]
]
]
print-rebolOutput:
██████╗ ███████╗ ██████╗ ██████╗ ██╗
██╔══██╗ ██╔════╝ ██╔══██╗ ██╔══██╗ ██║
██████╔╝ █████╗ ██████╔╝ ██║ ██║ ██║
██╔══██╗ ██╔══╝ ██╔══██╗ ██║ ██║ ██║
██║ ██║ ███████╗ ██████╔╝ ╚█████╔╝ ███████╗
╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚════╝ ╚══════╝
Alternative version:
Rebol [
title: "Rosetta code: Write language name in 3D ASCII"
file: %Write_language_name_in_3D_ASCII-v2.r3
url: https://rosettacode.org/wiki/Write_language_name_in_3D_ASCII
]
print-rebol-v2: closure/with [][
repeat row height [
line: append/dup clear "" SP height - row
foreach glyph-lines all-lines [
parse glyph-lines/:row [any [#"X" (append line "__/") | skip (append line " ")]]
append line " " ;; space between letters
]
print line
]
][
all-lines: []
foreach glyph [
{XXX ^/X X^/XXX ^/X X ^/X X}
{XXXX^/X ^/XXX ^/X ^/XXXX}
{XXX ^/X X^/XXX ^/X X^/XXX }
{ XX ^/X X^/X X^/X X^/ XX }
{X ^/X ^/X ^/X ^/XXXX}
][ repend all-lines [split-lines glyph] ]
height: width: 5
]
print-rebol-v2Output:
__/__/__/ __/__/__/__/ __/__/__/ __/__/ __/
__/ __/ __/ __/ __/ __/ __/ __/
__/__/__/ __/__/__/ __/__/__/ __/ __/ __/
__/ __/ __/ __/ __/ __/ __/ __/
__/ __/ __/__/__/__/ __/__/__/ __/__/ __/__/__/__/