-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrndwalk2.bas
49 lines (49 loc) · 879 Bytes
/
rndwalk2.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
100 ' Lattice Random Walk
110 ' Gilbert Francois Duivesteijn
120 '
130 CLEAR
140 '
150 ' Settings
160 '
170 SD=RND(-TIME)
180 R0=4
190 NS=1000
200 NC=2
210 DIM CO(3)
220 CO(0)=1
230 CO(1)=1
240 CO(2)=1
250 X0=128+8*INT(8*RND(1)-4)
260 Y0= 96+8*INT(8*RND(1)-4)
270 '
280 ' Start
290 '
300 COLOR 1,15,15
310 SCREEN 2
320 '
330 ' Main loop
340 '
350 FOR RP=1 TO 3
360 R=R0^RP
370 FOR S=0 TO NS
380 DX=R*SGN(2*RND(1)-1)
390 DY=R*SGN(2*RND(1)-1)
400 X1=X0+DX
410 Y1=Y0+DY
420 IF X1<0 THEN X1=X1+256 :GOTO 500
430 IF Y1<0 THEN Y1=Y1+192 :GOTO 500
440 IF X1>255 THEN X1=X1-256:GOTO 500
450 IF Y1>191 THEN Y1=Y1-192:GOTO 500
460 C0=CO(RP-1)
470 LINE(X0,Y0)-(X1,Y1),C0
480 IF RND(1)>.05 GOTO 500
490 LINE(X0+1,Y0+0)-(X1+1,Y1+0),C0
500 X0=X1
510 Y0=Y1
520 NEXT S
530 NS=NS/8
540 NEXT RP
550 IF INKEY$ <> " " GOTO 550
560 GOTO 100
570 END