Sierpinski carpet: Difference between revisions

Content added Content deleted
(→‎{{header|UNIX Shell}}: Add alternate implementation.)
(→‎{{header|Commodore BASIC}}: Add implementation.)
Line 1,378: Line 1,378:


(println (carpet 3))</lang>
(println (carpet 3))</lang>

=={{header|Commodore BASIC}}==
<lang basic>100 PRINT CHR$(147); CHR$(18); "**** SIERPINSKI CARPET ****"
110 PRINT
120 INPUT "ORDER"; O$
130 O = VAL(O$)
140 IF O < 1 THEN 120
150 PRINT
160 SZ = 3 ↑ O
170 FOR Y = 0 TO SZ - 1
180 :FOR X = 0 TO SZ - 1
190 : CH$ = "#"
200 : X1 = X
210 : Y1 = Y
220 : IF (X1 = 0) OR (Y1 = 0) THEN 290
230 : X3 = X1 - 3 * INT(X1 / 3)
240 : Y3 = Y1 - 3 * INT(Y1 / 3)
250 : IF (X3 = 1) AND (Y3 = 1) THEN CH$ = " ": GOTO 290
260 : X1 = INT(X1 / 3)
270 : Y1 = INT(Y1 / 3)
280 : GOTO 220
290 : PRINT CH$;
300 :NEXT X
310 PRINT
320 NEXT Y
</lang>

{{Out}}
All of the Commodore 8-bits have a 25-line display, so orders 3 and up scroll the top of the carpet off the screen. Orders 4+ additionally require at least 81 columns, and even a PET or C128 maxes out at 80. So we'll settle for an order-2 demonstration:
<pre>**** SIERPINSKI CARPET ****

ORDER? 2

#########
# ## ## #
#########
### ###
# # # #
### ###
#########
# ## ## #
#########

READY.</pre>


=={{header|Common Lisp}}==
=={{header|Common Lisp}}==