Dark Bit Factory & Gravity
PROGRAMMING => Other languages => Yabasic => Topic started by: bikemadness on May 13, 2026
-
But with the added feature of the
squares moving into place.
blox=40
dim x(blox)
dim y(blox)
dim x1(blox)
dim y1(blox)
for a=1 to blox
x(a)=int(ran(30))*20+20
y(a)=int(ran(23))*20+20
next a
for a=1 to blox
x1(a)=x(a)
y1(a)=y(a)
next a
xb=320
yb=256
r=5
b=5
xm=1
ym=1
sel=3
open window 640,512
repeat
setdrawbuf vm
vm=1-vm
setdispbuf vm
clear window
for a=1 to blox
rectangle x1(a)-b,y1(a)-b to x1(a)+b,y1(a)+b
next a
circle xb,yb,r
xb=xb+xm
yb=yb+ym
if xb<0+r or xb>640-r xm=-xm
if yb<0+r or yb>512-r ym=-ym
for a=1 to blox
if x1(a)>x(a) x1(a)=x1(a)-.25
if x1(a)<x(a) x1(a)=x1(a)+.25
if y1(a)>y(a) y1(a)=y1(a)-.25
if y1(a)<y(a) y1(a)=y1(a)+.25
next a
for a=1 to blox
if xb+r>x(a)-b and xb-r<x(a)+b and yb>y(a)-b and yb<y(a)+b then
xm=-xm
if sel=1 then
x(a)=int(ran(30))*20+20
y(a)=int(ran(23))*20+20
endif
if sel=2 then
x(a)=a*10+120
y(a)=256
endif
if sel=3 then
x(a)=420
y(a)=a*10+40
endif
if sel=4 then
row=row+1
if row>8 then
row=1
col=col+1
endif
x(a)=row*10+240
y(a)=col*10+100
endif
if sel=5 then
x(a)=cos((a)*(360/blox)*(pi/180))*240+320
y(a)=sin((a)*(360/blox)*(pi/180))*150+256
endif
endif
if yb+r>y(a)-b and yb-r<y(a)+b and xb>x(a)-b and xb<x(a)+b then
ym=-ym
if sel=1 then
x(a)=int(ran(30))*20+20
y(a)=int(ran(23))*20+20
endif
if sel=2 then
x(a)=a*10+120
y(a)=256
endif
if sel=3 then
x(a)=420
y(a)=a*10+40
endif
if sel=4 then
row=row+1
if row>8 then
row=1
col=col+1
endif
x(a)=row*10+240
y(a)=col*10+100
endif
if sel=5 then
x(a)=cos((a)*(360/blox)*(pi/180))*240+320
y(a)=sin((a)*(360/blox)*(pi/180))*150+256
endif
endif
next a
until (1=0)