Dragon curve: Difference between revisions

→‎{{header|GW-BASIC}}: Doubled x-coords for better look in SCREEN 2. Structure: IF-THEN-ELSE used.
(→‎{{header|GW-BASIC}}: Doubled x-coords for better look in SCREEN 2. Structure: IF-THEN-ELSE used.)
Line 803:
{{works with|BASICA}}
{{works with|QBasic}}
{{trans|MSXCommodore BASIC}}
<syntaxhighlight lang="qbasic">10 REM DRAGONDragon CURVEcurve
20 REM SIN, COS INin ARRAYSarrays FORfor PI/4 MULTIPLmultipl.
30 DIM S(7), C(7)
40 QPI = ATN(1)
50 FOR I = 0 TO 7
60 S(I) = SIN(I * QPI)
70 C(I) = COS(I * QPI)
80 NEXT I
90 LEVEL = 15
100 INSIZE = 128 : REM 2^WHOLE_NUM (LOOKSlooks BETTERbetter)
110 X = 112
120 Y = 70
130 SQ = SQR(2)
140 ROTQPI = 0 : ITER = 0 : RQ = 1
150 DIM R(LEVEL)
160 SCREEN 2 : CLS
170 GOSUB 190
180 END
190 REM DRAGON** Dragon
200 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 :ELSE GOTOIF 220ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
210 IF ROTQPILEVEL > 71 THEN ROTQPIGOTO = ROTQPI-8280
220 IFYN LEVEL= >S(ROTQPI) 1* THENINSIZE GOTO+ 290Y
230 YNXN = SC(ROTQPI) * INSIZE +Y X
240 LINE (2 * X, Y)-(2 * XN, YN): REM For SCREEN 2 doubled x-coords
240 XN = C(ROTQPI)*INSIZE+X
250 LINEITER (X,Y)-(XN,YN)= ITER + 1
260 ITERX = ITER+1XN: Y = YN
270 X = XN : Y = YNRETURN
460280 INSIZE = INSIZE * SQ / 2
280 RETURN
290 INSIZEROTQPI = INSIZE*SQ/2ROTQPI + RQ
300 IF ROTQPI < 0 THEN ROTQPI = ROTQPI +RQ 8 ELSE IF ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
450310 LEVEL = LEVEL+ - 1
310 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 330
320 IFR(LEVEL) ROTQPI > 7= THENRQ: ROTQPIRQ = ROTQPI-81
330 LEVELGOSUB = LEVEL-1190
340 R(LEVEL)ROTQPI = RQROTQPI :- RQR(LEVEL) =* 12
310350 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 :ELSE GOTOIF 330ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
350 GOSUB 190
360 ROTQPIRQ = ROTQPI-R(LEVEL)*21
350370 GOSUB 190
370 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 390
380 RQ = R(LEVEL)
380 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
390 RQROTQPI = -1ROTQPI + RQ
370400 IF ROTQPI < 0 THEN ROTQPI = ROTQPI + 8 :ELSE GOTOIF 390ROTQPI > 7 THEN ROTQPI = ROTQPI - 8
400 GOSUB 190
410 RQLEVEL = R(LEVEL) + 1
420 ROTQPIINSIZE = ROTQPI+RQINSIZE * SQ
470430 RETURN</syntaxhighlight>
430 IF ROTQPI < 0 THEN ROTQPI = ROTQPI+8 : GOTO 450
440 IF ROTQPI > 7 THEN ROTQPI = ROTQPI-8
450 LEVEL = LEVEL+1
460 INSIZE = INSIZE*SQ
470 RETURN</syntaxhighlight>
 
==={{header|IS-BASIC}}===
512

edits