-- bad marble -- alexthescott -- 21/1/19
-- scholastic green p1={[0]=129,131,138} -- icky thump red p2={[0]=1,8,7} -- gameboy green p3={[0]=138,135,139} -- vein red p4={[0]=130,2,136} -- marble velvet p5={[0]=141,13,6} -- moonlit blue p6={[0]=0,129,13} -- mild acid green p7={[0]=131,3,139} -- sunkist orange p8={[0]=135,137,10}
-- new seed every day of the year srand(31*stat(81)+stat(82))
p={p1,p2,p3,p4,p5,p6,p7,p8} c=rnd(p) pal(c,1)
s=rnd(-1) fc=0 fm=4096
var1=rnd() var2=rnd() srand(s)
function bad_square_burn() for i=1,34 do x=(rnd(16)\1)*8 y=(rnd(16)\1)*8 if x!=0 and x!=120 then x+=(rnd(min(x,128-x,4))\1)-2 end if y!=0 and y!=120 then y+=(rnd(min(y,128-y,4))\1)-2 end
for i=1,20 do
rx=x+rnd(8)\1
ry=y+rnd(8)\1
v=get_score(rx,ry)
pset(rx,ry,v)
end
end
end
function good_square_burn() for i=1,34 do x=(rnd(16)\1)*8 y=(rnd(16)\1)*8
for i=1,20 do
rx=x+rnd(8)\1
ry=y+rnd(8)\1
v=get_score(rx,ry)
pset(rx,ry,v)
end
end
end
function good_byte_square() for i=1,14 do x=(rnd(16)\1)*8 y=(rnd(16)\1)*8 for rx=x,x+7 do for ry=y,y+7 do v=get_score(rx,ry) pset(rx,ry,v) end end end end
function perfect_byte_square() for i=1,14 do x=(rnd(16)\1)*8 y=(rnd(16)\1)*8 if x!=0 and x!=120 then x+=(rnd(min(x,128-x,4))\1)-2 end if y!=0 and y!=120 then y+=(rnd(min(y,128-y,4))\1)-2 end
for rx=x,x+7 do
for ry=y,y+7 do
v=get_score(rx,ry)
pset(rx,ry,v)
end
end
end
end
function perfect_scan() for i=1,7 do p=-1+rnd(129) for y=p,p+1 do for x=p%2,127,2 do v=get_score(x,y) pset(x,y,v) end end end end
ripple_amp=32var2 function get_score(x,y) v=1 t=fc/fm v1=(1+cos(var1+y/128))/2 v2=(1+sin(t+(var1+x/512)))/2 v3=(1+cos(v1v2+t^2))/2 v4=(1+sin(v1+v2-t))/2 v+=(x/ripple_amp*(v2+v2+v3+v4)) if(v%3<1 and ((x%4==0 and y%2==0) or (x%4==1 and y%2==1)))v+=1 return v%3 end
vard=rnd(5)\1 cls(1) _set_fps(60)
month=stat(81) day=stat(82)
cls(1) ::♥:: if time()<2 then print("bad marble",44,59,2) print(month.."/"..day,55,65) else if vard==0 then perfect_scan() elseif vard==1 then good_square_burn() elseif vard==2 then perfect_byte_square() elseif vard==3 then good_byte_square() elseif vard==4 then bad_square_burn() end fc+=1
if fc>=fm then
fc=0
srand(s)
end
for i=0,fc/fm*128,1 do
if i%2==0 then
pset(0,i,1)
else
pset(1,i,1)
end
end
end flip() goto ♥