PC-9801の実機がないため検証できませんが、
N88-BASICで動くと思います。
VL-BASICに入っているサンプルプログラムの
a2.basを走らせると描画します。
a2.basのLISTです。
以下のようなブロックIF文のような書き方ができたかと思いますがどうでしょうか
とりあえずVL-BASICては走ります。
100 '------------------------------------------------------------
110 ' フラクタル図形 シダ
120 '------------------------------------------------------------
130 CLS 2
140 X = 0:Y = 0
150 FOR I = 1 TO 10000
160 PSET(320+X*30,320-Y*30),4
170 R = RND(1)
180 IF R < 0.01 THEN ELSE *ELSE1
190 X1 = 0
200 Y1 = Y * 0.16 :GOTO *ENDIF
210 *ELSE1:IF R < 0.01+0.07 THEN ELSE *ELSE2
220 X1 = X * 0.20 - Y * 0.26
230 Y1 = X * 0.23 + Y * 0.22 + 1.60:GOTO *ENDIF
240 *ELSE2:IF R < 0.01+0.07+0.07 THEN ELSE *ELSE3
250 X1 = Y * 0.28 - X * 0.15
260 Y1 = X * 0.26 + Y * 0.24 + 0.44:GOTO *ENDIF
270 *ELSE3
280 X1 = X * 0.85 + Y * 0.04
290 Y1 = Y * 0.85 - X * 0.04 + 1.60
300 *ENDIF
310 X = X1:Y = Y1
320 NEXT
a3.basの内容ものせておきます。
不具合がでないか心配ですが...
一応VL-BASICではブロックIF文をサポートしています。
こちらはN88-BASICでは動きません。
100 '------------------------------------------------------------
110 ' フラクタル図形 シダ
120 '------------------------------------------------------------
130 CLS 2
140 X = 0:Y = 0
150 FOR I = 1 TO 10000
160 PSET(320+X*30,320-Y*30),4
170 R = RND(1)
180 IF R < 0.01 THEN
190 X1 = 0
200 Y1 = Y * 0.16
210 ELSE IF R < 0.01+0.07 THEN
220 X1 = X * 0.20 - Y * 0.26
230 Y1 = X * 0.23 + Y * 0.22 + 1.60
240 ELSE IF R < 0.01+0.07+0.07 THEN
250 X1 = Y * 0.28 - X * 0.15
260 Y1 = X * 0.26 + Y * 0.24 + 0.44
270 ELSE
280 X1 = X * 0.85 + Y * 0.04
290 Y1 = Y * 0.85 - X * 0.04 + 1.60
300 ENDIF
310 X = X1:Y = Y1
320 NEXT
0コメント