And I put a GOTO in there, just to prove that the Earth is still flat.
Redo:
randomize timer():NewSize=16+rnd(256-16):xSize=NewSize:ySize=NewSize:ColorsUsed=0:Static=1+rnd(19):Chances=50+rnd(150):c=rgb(rnd(255),rnd(255),rnd(255))
for y=1 to ySize/2:for x=1 to xSize/2
if rnd(Chances)=1 then gosub GetColor
dot x,y,c:dot xSize-x,y,c:dot x,ySize-y,c:dot xSize-x,ySize-y,c
NEXT:NEXT
for x=1 to ySize/2:for y=1 to xSize/2:if rnd(Chances)=1 then gosub GetColor
if rnd(1)=1:dot x,y,c:dot xSize-x,y,c:dot x,ySize-y,c:dot xSize-x,ySize-y,c:ENDIF
NEXT:NEXT
get image 1,1,1,xSize,ySize:cls
yTile=(screen height()/ySize)+1:xTile=(screen width()/xSize)+1
for y=1 to (ySize*yTile) step ySize-1:for x=1 to (xSize*xTile) step xSize-1:paste image 1,x,y:next:next
set cursor 0,300:print "Size: ";xSize;" x ";ySize:print "Color Shift: ";Static;" (amount R,G and B can randomly shift per color change)":print "Chance of Color Change per Loop: 1 in ";Chances:print "Color Changeovers: ";ColorsUsed:print:print "Press Any Key for a New Pattern"
wait key:cls:goto Redo
GetColor:r=rgbr(c)+rnd(static)-rnd(static):g=rgbg(c)+rnd(static)-rnd(static):b=rgbb(c)+rnd(static)-rnd(static):if r<0 then r=1 else if r>255 then r=254
if g<0 then g=1 else if g>255 then g=254
if b<0 then b=1 else if b>255 then b=254
c=rgb(r,g,b):inc ColorsUsed:return
`"THAT'S ALL, FOLKS!!!"