36 lines
822 B
Text
36 lines
822 B
Text
10 REM Sierpinski carpet
|
|
20 CLS
|
|
30 LET RDR=3
|
|
40 LET S=3^RDR
|
|
50 FOR I=0 TO S-1
|
|
60 FOR J=0 TO S-1
|
|
70 LET X=J
|
|
80 LET Y=I
|
|
90 GOSUB 300
|
|
100 IF C THEN SET(J,I)
|
|
110 NEXT J
|
|
120 NEXT I
|
|
130 REM ** Set up machine code INKEY$ command
|
|
140 IF PEEK(1)<>0 THEN RESTORE 410
|
|
150 DOKE 4100,3328:FOR A=3328 TO 3342 STEP 2
|
|
160 READ B:DOKE A,B:NEXT A
|
|
170 SCREEN 1,15
|
|
180 PRINT "Hit any key to exit.";
|
|
190 A=USR(0):IF A<0 THEN 190
|
|
200 CLS
|
|
210 END
|
|
|
|
290 REM ** Is (X,Y) in the carpet?
|
|
295 REM Returns C=0 (no) or C=1 (yes).
|
|
300 LET C=0
|
|
310 XD3=INT(X/3):YD3=INT(Y/3)
|
|
320 IF X-XD3*3=1 AND Y-YD3*3=1 THEN RETURN
|
|
330 LET X=XD3
|
|
340 LET Y=YD3
|
|
350 IF X>0 OR Y>0 THEN GOTO 310
|
|
360 LET C=1
|
|
370 RETURN
|
|
395 REM ** Data for machine code INKEY$
|
|
400 DATA 25055,1080,-53,536,-20665,3370,-5664,0
|
|
410 DATA 27085,14336,-13564,6399,18178,10927
|
|
420 DATA -8179,233
|