Microsoft Small Basic

Program Listing: LGW681
initialiseren()
While "true"
GraphicsWindow.Clear()
teken()
Program.Delay(25)
EndWhile

Sub initialiseren
GraphicsWindow.width=300
GraphicsWindow.height=300

'je kunt het aantal punten hieronder aanpassen
aantal=40

for teller=1 To aantal
hoek[teller]=math.GetRandomNumber(360)
v[teller]=math.GetRandomNumber(5)+2
x[teller]=100+math.GetRandomNumber(200)
y[teller]=100+math.GetRandomNumber(200)
endfor
endsub

Sub teken
'pas de coordinaten aan
for teller=1 To aantal
hoek[teller]=hoek[teller]+Math.GetRandomNumber(5)-3
'[teller]=v[teller]+math.GetRandomNumber(3)-2
If v[teller]<2 then
v[teller]=2
endif
x[teller]=x[teller]+v[teller]*Math.Cos(Math.GetRadians(hoek[teller]))
y[teller]=y[teller]+v[teller]*Math.sin(Math.GetRadians(hoek[teller]))
'reflector
If (x[teller]<0) Or (y[teller]<0) Or (x[teller]>300) Or y[teller]>300 Then
hoek[teller]=hoek[teller]+180
endif



endfor

'na het laatste punt gaan we terug naar het eerste punt

x[aantal+1]=x[1]
y[aantal+1]=y[1]

For teller=1 To aantal
GraphicsWindow.DrawLine(x[teller],y[teller],x[teller+1],y[teller+1])
endfor

endsub