Продолжение вчерашней сортировки папки. Нашелся исходник на Atari Basic, я екго немного переделал:
4 REM SIERPINSKI CURVES BY ALLAN SHARPE FROM PAGE 6 MAGAZINE
15 CLS : DIM S(10): LET SP=1
50 FOR Z=1 TO 4
61 GO SUB 100
62 NEXT Z
90 STOP
100 LET H0=96: LET H=H0/4: LET X=3.3*H: LET Y=3*H: LET I=0
110 LET I=I+1: LET X=X-H: LET H=H/2: LET Y=Y+H
120 IF I<Z THEN GO TO 110
130 LET PS=I: GO SUB 600
140 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
150 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
160 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
170 GO SUB 500: LET A=H: LET B=H: GO SUB 800
180 GO SUB 700: RETURN
200 IF TP<=0 THEN RETURN
220 LET PS=TP-1: GO SUB 600
230 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
240 GO SUB 300: LET A=2*H: LET B=0: GO SUB 800
250 GO SUB 500: LET A=H: LET B=H: GO SUB 800
260 GO SUB 200
270 GO SUB 700: RETURN
300 IF TP<=0 THEN RETURN
320 LET PS=TP-1: GO SUB 600
330 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
340 GO SUB 400: LET A=0: LET B=-2*H: GO SUB 800
350 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
360 GO SUB 300
370 GO SUB 700: RETURN
400 IF TP<=0 THEN RETURN
420 LET PS=TP-1: GO SUB 600
430 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
440 GO SUB 500: LET A=-2*H: LET B=0: GO SUB 800
450 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
460 GO SUB 400
470 GO SUB 700: RETURN
500 IF TP<=0 THEN RETURN
520 LET PS=TP-1: GO SUB 600
530 GO SUB 500: LET A=H: LET B=H: GO SUB 800
540 GO SUB 200: LET A=0: LET B=2*H: GO SUB 800
550 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
560 GO SUB 500
570 GO SUB 700: RETURN
600 LET SP=SP+1: LET S(SP)=PS: LET TP=PS: RETURN
700 LET SP=SP-1: LET TP=S(SP): RETURN
800 PLOT X,Y: DRAW A,B
820 LET X=X+A: LET Y=Y+B: RETURN
15 CLS : DIM S(10): LET SP=1
50 FOR Z=1 TO 4
61 GO SUB 100
62 NEXT Z
90 STOP
100 LET H0=96: LET H=H0/4: LET X=3.3*H: LET Y=3*H: LET I=0
110 LET I=I+1: LET X=X-H: LET H=H/2: LET Y=Y+H
120 IF I<Z THEN GO TO 110
130 LET PS=I: GO SUB 600
140 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
150 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
160 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
170 GO SUB 500: LET A=H: LET B=H: GO SUB 800
180 GO SUB 700: RETURN
200 IF TP<=0 THEN RETURN
220 LET PS=TP-1: GO SUB 600
230 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
240 GO SUB 300: LET A=2*H: LET B=0: GO SUB 800
250 GO SUB 500: LET A=H: LET B=H: GO SUB 800
260 GO SUB 200
270 GO SUB 700: RETURN
300 IF TP<=0 THEN RETURN
320 LET PS=TP-1: GO SUB 600
330 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
340 GO SUB 400: LET A=0: LET B=-2*H: GO SUB 800
350 GO SUB 200: LET A=H: LET B=-H: GO SUB 800
360 GO SUB 300
370 GO SUB 700: RETURN
400 IF TP<=0 THEN RETURN
420 LET PS=TP-1: GO SUB 600
430 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
440 GO SUB 500: LET A=-2*H: LET B=0: GO SUB 800
450 GO SUB 300: LET A=-H: LET B=-H: GO SUB 800
460 GO SUB 400
470 GO SUB 700: RETURN
500 IF TP<=0 THEN RETURN
520 LET PS=TP-1: GO SUB 600
530 GO SUB 500: LET A=H: LET B=H: GO SUB 800
540 GO SUB 200: LET A=0: LET B=2*H: GO SUB 800
550 GO SUB 400: LET A=-H: LET B=H: GO SUB 800
560 GO SUB 500
570 GO SUB 700: RETURN
600 LET SP=SP+1: LET S(SP)=PS: LET TP=PS: RETURN
700 LET SP=SP-1: LET TP=S(SP): RETURN
800 PLOT X,Y: DRAW A,B
820 LET X=X+A: LET Y=Y+B: RETURN


Комментарии
Отправить комментарий