惑星の軌道シミュレート(BASIC)

10 T=0 :WAIT 0
20 X=10:Y=20
30 X0=20:Y0=20
40 G=6.67:M0=1
50 VX=0:VY=-1
60 Y1=Y:X1=X
70 W1= SQR(VX*VX+VY*VY)
80 W2= SQR(VX*VX+VY*VY)
90 GM=G*M0
100 CLS :LOC. 19,2 :U. "#####" :PRINT T
110 T=0
120 GC. (X0,Y0)
130 GP. "E0E0E0"
140 R2=(X-X0)*(X-X0)+(Y-Y0)*(Y-Y0)
150 IF R2<8 THEN 400 ELSE 160
160 A=GM/R2 
170 VX=VX+A*(X0-X)/SQR(R2)
180 VY=VY+A*(Y0-Y)/SQR(R2)
190 V=SQR(VX*VX+VY*VY)
200 IF W1<V THEN W1=V
210 IF W2>V THEN W2=V
220 U. "#####"
230 LOC. 11,0 :PRINT X
240 LOC. 11,1 :PRINT Y
250 U. "###.####"
260 LOC. 16,0 :PRINT VX
270 LOC. 16,1 :PRINT VY
280 LOC. 16,4 :PRINT W1
290 LOC. 16,5 :PRINT W2
300 LOC. 16,3 :PRINT V
310 U. "#####"
320 LOC. 14,2 :PRINT T
330 X=X+VX
340 Y=Y+VY
350 GC. (X,Y)
360 GP. "80"
370 T=T+1
380 IF T>9999 THEN T= 20
390 IF (ABS(X1-X)<2) AND (ABS(Y1-Y)<2) AND 10<T THEN 100 ELSE 120
400 PRINT "ジュウリョクイドニツイラクシマシタ"
410 END

一回画面の外へ出ていったのが戻ってくると結構感動