27 lines
1.1 KiB
QBasic
27 lines
1.1 KiB
QBasic
10 GOSUB 9000
|
|
100 R=RND(-TI):N=0:H=0:PRINT CHR$(147)
|
|
110 FOR Y=3 TO 22:FOR X=1 TO 38:POKE 1024+Y*40+X,32:NEXT:NEXT
|
|
120 X=RND(1)*2-1:Y=RND(1)*2-1:N=N+1:Z=X*X+Y*Y
|
|
130 C=1+INT((X+1)*18.5):Q=3+INT((Y+1)*9.5):IF C>38 THEN C=38
|
|
140 IF Q>22 THEN Q=22
|
|
150 P=1024+Q*40+C:POKE P,46
|
|
160 IF Z<=1 THEN H=H+1:POKE P+54272,5:GOTO 180
|
|
170 POKE P+54272,10
|
|
180 IF N/20<>INT(N/20) THEN 210
|
|
190 E=4*H/N:PRINT CHR$(19);"PI DROP SAMPLES";N;" PI";INT(E*10000)/10000
|
|
200 PRINT "GREEN=INSIDE RED=OUTSIDE"
|
|
210 GET A$:IF A$=" " THEN 100
|
|
220 IF A$<>"Q" THEN 120
|
|
230 GOTO 9900
|
|
9000 POKE 53280,0:POKE 53281,0:PRINT CHR$(147);CHR$(154)
|
|
9010 PRINT:PRINT:PRINT " PI DROP":PRINT
|
|
9020 PRINT CHR$(5);" ESTIMATE PI WITH RANDOM COORDINATES":PRINT:PRINT
|
|
9030 PRINT CHR$(153);" CONTROLS":PRINT
|
|
9040 PRINT CHR$(158);" SPACE";CHR$(5);" RESET THE EXPERIMENT"
|
|
9050 PRINT " ";CHR$(158);"Q";CHR$(5);" QUIT":PRINT:PRINT
|
|
9060 PRINT " HTTPS://C64.P20.DEV":PRINT
|
|
9070 PRINT CHR$(152);" RELEASED 22 OCTOBER 2026":PRINT:PRINT
|
|
9080 PRINT CHR$(158);" PRESS SPACE TO START"
|
|
9090 GET A$:IF A$<>" " THEN 9090
|
|
9100 RETURN
|
|
9900 POKE 53280,14:POKE 53281,6:PRINT CHR$(147):END
|