Dragon curve: Difference between revisions
→{{header|GW-BASIC}}: ... MOD 8 (originally realized by nested IFs) replaced by bitwise operations (... AND 7).
(→{{header|GW-BASIC}}: Doubled x-coords for better look in SCREEN 2. Structure: IF-THEN-ELSE used.) |
(→{{header|GW-BASIC}}: ... MOD 8 (originally realized by nested IFs) replaced by bitwise operations (... AND 7).) |
||
Line 803:
{{works with|BASICA}}
{{works with|QBasic}}
{{trans|Commodore BASIC|<code>... MOD 8</code> (originally realized by nested <code>IF</code>s) replaced by bitwise operations (<code>... AND 7</code>).}}
<syntaxhighlight lang="qbasic">10 REM Dragon curve
20 REM SIN, COS in arrays for PI/4 multipl.
Line 812:
70 C(I) = COS(I * QPI)
80 NEXT I
90 LEVEL% = 15
100 INSIZE = 128: REM 2^WHOLE_NUM (looks better)
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
200
210 IF LEVEL% > 1 THEN GOTO 280
220 YN = S(ROTQPI%) * INSIZE + Y
230 XN = C(ROTQPI%) * INSIZE + X
240 LINE (2 * X, Y)-(2 * XN, YN): REM For SCREEN 2 doubled x-coords
250 ITER% = ITER% + 1
260 X = XN: Y = YN
270 RETURN
280 INSIZE = INSIZE * SQ / 2
290 ROTQPI% = (ROTQPI% + RQ%) AND 7
310 R%(LEVEL%) =
330 ROTQPI% = (ROTQPI% - R%(LEVEL%) * 2) AND 7
▲330 GOSUB 190
340
360 RQ% =
370 ROTQPI% = (ROTQPI% + RQ%) AND 7
▲370 GOSUB 190
380
390
▲410 LEVEL = LEVEL + 1
▲430 RETURN</syntaxhighlight>
==={{header|IS-BASIC}}===
|