DBC
[edit]
I just noticed(looking at the two locked treads) that the title for this thread is not very good.

What I meant to call it was somthing like "Not a game but is cool and fun to play around with".[/edit]
I was just messing around with new functions I found and thought that I'd do my first 20 line-er. It's not a game yet, but is cool, and can easily be a game. So feel free to make your own game out of it.
set display mode 800,600,32:Sync On:Sync rate 0:ink rgb(140,180,255),0:dim mx(100):dim my(100):dim a#(100):dim x#(100):dim y#(100):dim size(100):dim speed(100)
dim out(100):maxcircles=60:maxsize=50:for n=1 to 100:x=rnd(1)+1:y=rnd(1)+1:if x=1:x#(n)=rnd(400)-800:else:x#(n)=rnd(440)+1090:endif:if y=1:y#(n)=rnd(300)-600
else:y#(n)=rnd(340)+690:endif:size(n)=rnd(4)+4:speed(n)=rnd(5)+3:mx(n)=mousex():my(n)=mousey():next n:DO:for n=1 to maxcircles:if out(n)=1:x=rnd(1)+1:y=rnd(1)+1
if x=1:x#(n)=rnd(400)-800:else:x#(n)=rnd(440)+1090:endif:if y=1:y#(n)=rnd(300)-600:else:y#(n)=rnd(340)+690:endif:size(n)=rnd(4)+4:speed(n)=rnd(5)+3:mx(n)=mousex()
my(n)=mousey():out(n)=0:endif:if mouseclick()=1:mx(n)=mousex():my(n)=mousey():if speed(n)>0:speed(n)=speed(n)*-1:endif:else:if speed(n)<0:speed(n)=speed(n)*-1
endif:if size(n)<maxsize:mx(n)=mousex():my(n)=mousey():endif:endif:if abs(mx(n)-x#(n))>7 or abs(my(n)-y#(n))>7:a#(n)=atanfull(mx(n)-x#(n),my(n)-y#(n))
x#(n)=x#(n)+sin(a#(n))*speed(n):y#(n)=y#(n)+cos(a#(n))*speed(n):else:if size(n)=maxsize:mx(n)=rnd(900)-100:my(n)=rnd(700)-100:endif:endif:x1=x#(n):y1=y#(n)
rad1=size(n):for n2=1 to maxcircles:if n2<>n and out(n)=0 and out(n2)=0:x2=x#(n2):y2=y#(n2):rad2=size(n2):if circleover(x1,y1,rad1,x2,y2,rad2)=1:if size(n)>size(n2)
if size(n)<maxsize:size(n)=size(n)+size(n2)-2:out(n2)=1:endif:endif:if size(n)<=size(n2):if size(n2)<maxsize:size(n2)=size(n2)+size(n)-2:out(n)=1:endif:endif
endif:endif:next n2:if size(n)>maxsize:size(n)=maxsize:endif:x=x#(n):y=y#(n):size=size(n):if size(n)=maxsize:ink rgb(100,100,255),0:else:ink rgb(140,180,255),0
endif:if circlemouseover(x,y,size):ink rgb(255,0,0),0:endif:circle x#(n),y#(n),size(n):next n:sync:cls:LOOP
function circlemouseover(x,y,rad)
mx=mousex() : my=mousey():dist#=distance#(mx,my,x,y):if dist#<=rad:exitfunction 1:endif
endfunction 0
function circleover(x1,y1,rad1,x2,y2,rad2)
dist#=distance#(x1,y1,x2,y2):if dist#<=rad1+rad2:exitfunction 1:endif
endfunction 0
function distance#(x1,y1,x2,y2)
dist#=abs(sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))))
endfunction dist#
Mess with maxcircles and maxsize to change it up a bit.
-Maxcircles controls how many circles are on the map at a time.
-Maxsize is the radius needed for the circles to start moveing around randomly and stop effecting the other circles.
-Click on the mouse for a repel effect.
-Red circles means your mouse is inside the circle.
-Dark blue circles are the fully grown ones.
Here is the uncommpressed version which is still a little messy since I was just messing around:
set display mode 800,600,32
Sync On:Sync rate 0
ink rgb(140,180,255),0
dim mx(100)
dim my(100)
dim a#(100)
dim x#(100)
dim y#(100)
dim size(100)
dim speed(100)
dim out(100)
maxcircles=60
maxsize=50
for n=1 to 100
x=rnd(1)+1
y=rnd(1)+1
if x=1
x#(n)=rnd(400)-800
else
x#(n)=rnd(440)+1090
endif
if y=1
y#(n)=rnd(300)-600
else
y#(n)=rnd(340)+690
endif
size(n)=rnd(4)+4
speed(n)=rnd(5)+3
mx(n)=mousex():my(n)=mousey()
next n
DO
for n=1 to maxcircles
if out(n)=1
x=rnd(1)+1
y=rnd(1)+1
if x=1
x#(n)=rnd(400)-800
else
x#(n)=rnd(440)+1090
endif
if y=1
y#(n)=rnd(300)-600
else
y#(n)=rnd(340)+690
endif
size(n)=rnd(4)+4
speed(n)=rnd(5)+3
mx(n)=mousex():my(n)=mousey()
out(n)=0
endif
if mouseclick()=1
mx(n)=mousex():my(n)=mousey()
if speed(n)>0 then speed(n)=speed(n)*-1
else
if speed(n)<0 then speed(n)=speed(n)*-1
if size(n)<maxsize then mx(n)=mousex():my(n)=mousey()
endif
`calculate
if abs(mx(n)-x#(n))>7 or abs(my(n)-y#(n))>7
a#(n) =atanfull(mx(n)-x#(n),my(n)-y#(n))
x#(n) = x#(n) + sin(a#(n))*speed(n)
y#(n) = y#(n) + cos(a#(n))*speed(n)
else
if size(n)=maxsize then mx(n)=rnd(900)-100:my(n)=rnd(700)-100
endif
`collision
x1=x#(n)
y1=y#(n)
rad1=size(n)
for n2=1 to maxcircles
if n2<>n and out(n)=0 and out(n2)=0
x2=x#(n2)
y2=y#(n2)
rad2=size(n2)
if circleover(x1,y1,rad1,x2,y2,rad2)=1
if size(n)>size(n2)
if size(n)<maxsize
size(n)=size(n)+size(n2)-2
out(n2)=1
endif
endif
if size(n)<=size(n2)
if size(n2)<maxsize
size(n2)=size(n2)+size(n)-2
out(n)=1
endif
endif
endif
endif
next n2
if size(n)>maxsize then size(n)=maxsize
`draw
x=x#(n)
y=y#(n)
size=size(n)
if size(n)=maxsize
ink rgb(100,100,255),0
else
ink rgb(140,180,255),0
endif
if circlemouseover(x,y,size)
ink rgb(255,0,0),0
endif
circle x#(n),y#(n),size(n)
next n
sync:cls
LOOP
function circlemouseover(x,y,rad)
mx=mousex() : my=mousey()
dist#=distance#(mx,my,x,y)
if dist#<=rad then exitfunction 1
endfunction 0
function circleover(x1,y1,rad1,x2,y2,rad2)
dist#=distance#(x1,y1,x2,y2)
if dist#<=rad1+rad2 then exitfunction 1
endfunction 0
function distance#(x1,y1,x2,y2)
dist#=abs(sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))))
endfunction dist#
Razerx