2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,6 +1,11 @@
{{omit from|GUISS}}
{{omit from|TUSCRIPT}}
The task is to write the language's name in 3D ASCII.
;Task:
Write/display a language's name in '''3D''' ASCII.
(We can leave the definition of "3D ASCII" fuzzy,
so long as the result is interesting or amusing,
not a cheap hack to satisfy the task.)
<br><br>

View file

@ -0,0 +1,13 @@
THREED CSECT
STM 14,12,12(13)
BALR 12,0
USING *,12
XPRNT =CL23'0 ####. #. ###.',23
XPRNT =CL24'1 #. #. #. #.',24
XPRNT =CL24'1 ##. # ##. #. #.',24
XPRNT =CL24'1 #. #. #. #. #.',24
XPRNT =CL23'1 ####. ###. ###.',23
LM 14,12,12(13)
BR 14
LTORG
END

View file

@ -0,0 +1,18 @@
5 PAPER 0: CLS
10 LET d=0: INK 1: GO SUB 40
20 LET d=1: INK 6: GO SUB 40
30 STOP
40 RESTORE
50 FOR n=1 TO 5
60 READ a$
70 FOR j=1 TO LEN a$
80 PRINT AT n+7,j+5+d;
90 IF a$(j)="X" THEN PRINT CHR$ 143: REM Equivalent to 219 in ASCII extended for IBM PC
100 NEXT j
110 NEXT n
120 RETURN
130 DATA "XXX XXXX XXX X XXX"
140 DATA "X X X X X X X "
150 DATA "XXX XXXX XXX X X "
160 DATA "X X X X X X X "
170 DATA "XXX X X XXX X XXX"

View file

@ -0,0 +1,17 @@
\ Rossetta Code Write language name in 3D ASCII
\ Simple Method
: l1 ." /\\\\\\\\\\\\\ /\\\\ /\\\\\\\ /\\\\\\\\\\\\\ /\\\ /\\\" CR ;
: l2 ." \/\\\///////// /\\\//\\\ /\\\/////\\\ \//////\\\//// \/\\\ \/\\\" CR ;
: l3 ." \/\\\ /\\\/ \///\\\ \/\\\ \/\\\ \/\\\ \/\\\ \/\\\" CR ;
: l4 ." \/\\\\\\\\\ /\\\ \//\\\ \/\\\\\\\\\/ \/\\\ \/\\\\\\\\\\\\\" CR ;
: l5 ." \/\\\///// \/\\\ \/\\\ \/\\\////\\\ \/\\\ \/\\\///////\\\" CR ;
: l6 ." \/\\\ \//\\\ /\\\ \/\\\ \//\\\ \/\\\ \/\\\ \/\\\" CR ;
: l7 ." \/\\\ \///\\\ /\\\ \/\\\ \//\\\ \/\\\ \/\\\ \/\\\" CR ;
: l8 ." \/\\\ \///\\\\/ \/\\\ \//\\\ \/\\\ \/\\\ \/\\\" CR ;
: l9 ." \/// \//// \/// \/// \/// \/// \///" CR ;
: "FORTH" cr L1 L2 L3 L4 L5 L6 L7 L8 l9 ;
( test at the console )
page "forth"

View file

@ -0,0 +1,101 @@
\ Original code: "Short phrases with BIG Characters by Wil Baden 2003-02-23
\ Modified BFox for simple 3D presentation 2015-07-14
\ Forth is a very low level language but by using primitive operations
\ we create new words in the language to solve the problem.
\ This solution coverts an acsii string to big text characters
HEX
: toUpper ( char -- char ) 05F and ;
: w, ( n -- ) CSWAP , ; \ compile 'n', a 16 bit integer, into memory in the correct order
CREATE Banner-Matrix
0000 w, 0000 w, 0000 w, 0000 w, 2020 w, 2020 w, 2000 w, 2000 w,
5050 w, 5000 w, 0000 w, 0000 w, 5050 w, F850 w, F850 w, 5000 w,
2078 w, A070 w, 28F0 w, 2000 w, C0C8 w, 1020 w, 4098 w, 1800 w,
40A0 w, A040 w, A890 w, 6800 w, 3030 w, 1020 w, 0000 w, 0000 w,
2040 w, 8080 w, 8040 w, 2000 w, 2010 w, 0808 w, 0810 w, 2000 w,
20A8 w, 7020 w, 70A8 w, 2000 w, 0020 w, 2070 w, 2020 w, 0000 w,
0000 w, 0030 w, 3010 w, 2000 w, 0000 w, 0070 w, 0000 w, 0000 w,
0000 w, 0000 w, 0030 w, 3000 w, 0008 w, 1020 w, 4080 w, 0000 w,
7088 w, 98A8 w, C888 w, 7000 w, 2060 w, 2020 w, 2020 w, 7000 w,
7088 w, 0830 w, 4080 w, F800 w, F810 w, 2030 w, 0888 w, 7000 w,
1030 w, 5090 w, F810 w, 1000 w, F880 w, F008 w, 0888 w, 7000 w,
3840 w, 80F0 w, 8888 w, 7000 w, F808 w, 1020 w, 4040 w, 4000 ,
7088 w, 8870 w, 8888 w, 7000 w, 7088 w, 8878 w, 0810 w, E000 w,
0060 w, 6000 w, 6060 w, 0000 w, 0060 w, 6000 w, 6060 w, 4000 w,
1020 w, 4080 w, 4020 w, 1000 w, 0000 w, F800 w, F800 w, 0000 w,
4020 w, 1008 w, 1020 w, 4000 w, 7088 w, 1020 w, 2000 w, 2000 w,
7088 w, A8B8 w, B080 w, 7800 w, 2050 w, 8888 w, F888 w, 8800 w,
F088 w, 88F0 w, 8888 w, F000 w, 7088 w, 8080 w, 8088 w, 7000 w,
F048 w, 4848 w, 4848 w, F000 w, F880 w, 80F0 w, 8080 w, F800 w,
F880 w, 80F0 w, 8080 w, 8000 w, 7880 w, 8080 w, 9888 w, 7800 w,
8888 w, 88F8 w, 8888 w, 8800 w, 7020 w, 2020 w, 2020 w, 7000 w,
0808 w, 0808 w, 0888 w, 7800 w, 8890 w, A0C0 w, A090 w, 8800 w,
8080 w, 8080 w, 8080 w, F800 w, 88D8 w, A8A8 w, 8888 w, 8800 w,
8888 w, C8A8 w, 9888 w, 8800 w, 7088 w, 8888 w, 8888 w, 7000 w,
F088 w, 88F0 w, 8080 w, 8000 w, 7088 w, 8888 w, A890 w, 6800 w,
F088 w, 88F0 w, A090 w, 8800 w, 7088 w, 8070 w, 0888 w, 7000 w,
F820 w, 2020 w, 2020 w, 2000 w, 8888 w, 8888 w, 8888 w, 7000 w,
8888 w, 8888 w, 8850 w, 2000 w, 8888 w, 88A8 w, A8D8 w, 8800 w,
8888 w, 5020 w, 5088 w, 8800 w, 8888 w, 5020 w, 2020 w, 2000 w,
F808 w, 1020 w, 4080 w, F800 w, 7840 w, 4040 w, 4040 w, 7800 w,
0080 w, 4020 w, 1008 w, 0000 w, F010 w, 1010 w, 1010 w, F000 w,
0000 w, 2050 w, 8800 w, 0000 w, 0000 w, 0000 w, 0000 w, 00F8 w,
: >col ( char -- ndx ) \ convert ascii char into column index in the matrix
toupper BL - 0 MAX ; \ Space char (BL) = 0. Index is clipped to 0 as minimum value
: ]banner-matrix ( row ascii -- addr ) \ convert Banner-matrix memory to a 2 dimensional matrix
>col 8 * Banner-matrix + + ;
: PLACE ( str len addr -- ) \ store a string with length at addr
2DUP 2>R 1+ SWAP MOVE 2R> C! ;
synonym len c@ \ fetch the 1st char of a counted string to return the length
: BIT? ( byte bit# -- -1 | 0) \ given a byte and bit# on stack, return true or false flag
1 swap lshift AND ;
DECIMAL
variable bannerstr 5 allot \ memory for the character string
\ Font selection characters stored as counted strings
: STARFONT S" *" bannerstr PLACE ;
: HASHFONT S" ##" bannerstr PLACE ;
: 3DFONT S" _/" bannerstr PLACE ;
: .BIGCHAR ( matrix-byte -- )
2 7 \ we use bits 7 to 2
DO
dup I bit? \ check bit I in the matrix-byte on stack
IF bannerstr count TYPE \ if BIT=TRUE
ELSE bannerstr len SPACES \ if BIT=false
THEN
-1 +LOOP \ loop backwards
DROP ; \ drop the matrix-byte
: BANNER ( str len -- )
8 0
DO CR \ str len
2dup
BOUNDS \ calc. begin & end addresses of string
DO
J I C@ ]Banner-Matrix C@ .BIGCHAR
LOOP \ str len
LOOP
2DROP ; \ drop str & len
\ test the solution in the Forth console

View file

@ -0,0 +1,36 @@
l = 20
h = 11
table = [
""" .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .-----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. .----------------. """,
"""| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. || .--------------. |""",
"""| | __ | || | ______ | || | ______ | || | ________ | || | _________ | || | _________ | || | ______ | || | ____ ____ | || | _____ | || | _____ | || | ___ ____ | || | _____ | || | ____ ____ | || | ____ _____ | || | ____ | || | ______ | || | ___ | || | _______ | || | _______ | || | _________ | || | _____ _____ | || | ____ ____ | || | _____ _____ | || | ____ ____ | || | ____ ____ | || | ________ | || | ______ | || | | |""",
"""| | / \ | || | |_ _ \ | || | .' ___ | | || | |_ ___ `. | || | |_ ___ | | || | |_ ___ | | || | .' ___ | | || | |_ || _| | || | |_ _| | || | |_ _| | || | |_ ||_ _| | || | |_ _| | || ||_ \ / _|| || ||_ \|_ _| | || | .' `. | || | |_ __ \ | || | .' '. | || | |_ __ \ | || | / ___ | | || | | _ _ | | || ||_ _||_ _|| || ||_ _| |_ _| | || ||_ _||_ _|| || | |_ _||_ _| | || | |_ _||_ _| | || | | __ _| | || | / _ __ `. | || | | |""",
"""| | / /\ \ | || | | |_) | | || | / .' \_| | || | | | `. \ | || | | |_ \_| | || | | |_ \_| | || | / .' \_| | || | | |__| | | || | | | | || | | | | || | | |_/ / | || | | | | || | | \/ | | || | | \ | | | || | / .--. \ | || | | |__) | | || | / .-. \ | || | | |__) | | || | | (__ \_| | || | |_/ | | \_| | || | | | | | | || | \ \ / / | || | | | /\ | | | || | \ \ / / | || | \ \ / / | || | |_/ / / | || | |_/____) | | || | | |""",
"""| | / ____ \ | || | | __'. | || | | | | || | | | | | | || | | _| _ | || | | _| | || | | | ____ | || | | __ | | || | | | | || | _ | | | || | | __'. | || | | | _ | || | | |\ /| | | || | | |\ \| | | || | | | | | | || | | ___/ | || | | | | | | || | | __ / | || | '.___`-. | || | | | | || | | ' ' | | || | \ \ / / | || | | |/ \| | | || | > `' < | || | \ \/ / | || | .'.' _ | || | / ___.' | || | | |""",
"""| | _/ / \ \_ | || | _| |__) | | || | \ `.___.'\ | || | _| |___.' / | || | _| |___/ | | || | _| |_ | || | \ `.___] _| | || | _| | | |_ | || | _| |_ | || | | |_' | | || | _| | \ \_ | || | _| |__/ | | || | _| |_\/_| |_ | || | _| |_\ |_ | || | \ `--' / | || | _| |_ | || | \ `-' \_ | || | _| | \ \_ | || | |`\____) | | || | _| |_ | || | \ `--' / | || | \ ' / | || | | /\ | | || | _/ /'`\ \_ | || | _| |_ | || | _/ /__/ | | || | |_| | || | | |""",
"""| ||____| |____|| || | |_______/ | || | `._____.' | || | |________.' | || | |_________| | || | |_____| | || | `._____.' | || | |____||____| | || | |_____| | || | `.___.' | || | |____||____| | || | |________| | || ||_____||_____|| || ||_____|\____| | || | `.____.' | || | |_____| | || | `.___.\__| | || | |____| |___| | || | |_______.' | || | |_____| | || | `.__.' | || | \_/ | || | |__/ \__| | || | |____||____| | || | |______| | || | |________| | || | (_) | || | | |""",
"""| | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | || | | |""",
"""| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' || '--------------' |""",
""" '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' '----------------' """
]
if __name__ == '__main__':
t = raw_input("Enter the text to convert :\n")
if not t :
t = "PYTHON"
for i in range(h):
txt = ""
for char in t:
# get dec value of T
if char.isalpha():
val = ord(char.upper()) - 65
elif char == " ":
val= 27
else:
val = 26
begin = val*l
end = val*l + l
txt += table[i][begin:end]
print txt

View file

@ -1,17 +1,17 @@
/*REXX pgm draws a "3D" image of text representation (any char except / & \).*/
#=7; @.1 = '@@@@ '
@.2 = '@ @ '
@.3 = '@ @ @@@@ @ @ @ @ '
@.4 = '@@@@ @ @ @ @ @ '
@.5 = '@ @ @@@ @ @ '
@.6 = '@ @ @ @ @ @ @ '
@.7 = '@ @ @@@@ @ @ @ @ '
do j=1 for #; x=left(strip(@.j),1) /* [↓] display the (above) text lines.*/
$.1 = changestr( " " , @.j, ' ' ) ; $.2 = $.1
/*REXX pgm draws a "3D" image of text representation; any character except / and \ */
#=7; @.1 = '@@@@ '
@.2 = '@ @ '
@.3 = '@ @ @@@@ @ @ @ @ '
@.4 = '@@@@ @ @ @ @ @ '
@.5 = '@ @ @@@ @ @ '
@.6 = '@ @ @ @ @ @ @ '
@.7 = '@ @ @@@@ @ @ @ @ '
do j=1 for #; x=left(strip(@.j),1) /* [↓] display the (above) text lines.*/
$.1 = changestr( " " , @.j, ' ' ) ; $.2 = $.1
$.1 = changestr( x , $.1, '///' )" "
$.2 = changestr( x , $.2, '\\\' )" "
$.1 = changestr( "/ ", $.1, '/\' )
$.2 = changestr( "\ ", $.2, '\/' )
do k=1 for 2; say strip(left('',#-j)$.k,'T') /*LEFT does indentation*/
end /*k*/ /* [↓] display a line and its shadow.*/
end /*j*/ /*stick a fork in it, we're all done. */
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. */

View file

@ -0,0 +1,7 @@
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
union all select ' \ S\', 'Q Q Q |', 'L | ' from dual
union all select ' SSS |', '\QQQ\\|', 'LLLL\' from dual
union all select ' \__\/', ' \_Q_/ ', '\___\' from dual
union all select ' ', ' \\ ', ' ' from dual;