arkivo.art

memory probe 6

alexthescott

-- memory probe 6 -- alexthescott -- 10/4/21 9:12pm -- new seed every day of the year srand(31*stat(81)+stat(82)) p1={7,6,15,143,4,141,13,134,5,133,2,1,130,128,129,0} p2={7,135,143,14,9,142,137,8,136,2,134,4,132,133,130,0} p3={7,6,134,13,12,2,141,5,140,131,1,129,133,130,128,0} p={p1,p2,p3} c=p[1+rnd(#p)\1] pal(c,1) cnt=rnd(2)\1 function new_obj() obj={} obj.pos={x=rnd(128)\1,y=rnd(128)\1} obj.a=rnd() obj.vel={x=cos(obj.a)/2,y=sin(obj.a)/2} -- grid position obj.grid_size=16 obj.g_pos={} obj.g_pos.x=obj.pos.x\obj.grid_size obj.g_pos.y=obj.pos.y\obj.grid_size obj.pop={} obj.draw=function(self) for i=1,#self.pop do circ(self.pos.x,self.pos.y,self.pop[i],2) end end obj.update=function(self) self.pos.x+=self.vel.x self.pos.y+=self.vel.y if self.pos.x<0 or self.pos.x>128 then self.vel.x*=-1 end if self.pos.y<0 or self.pos.y>128 then self.vel.y*=-1 end for i=1,#self.pop do if self.pop[i]!=nil and self.pop[i]>=14 then del(self.pop,self.pop[i]) elseif self.pop[i]!=nil then self.pop[i]+=rnd()/4 end end self.g_pos.x=self.pos.x\self.grid_size self.g_pos.y=self.pos.y\self.grid_size end obj.new_pop=function(self) add(self.pop,1) end obj.nearby=function(self,a) local sgp=self.g_pos local sp=self.pos for o in all(a) do local ogp=o.g_pos local op=o.pos -- draw above if sgp.y<128/self.grid_size and ogp.y-1==sgp.y and abs(ogp.x-sgp.x)<=1 then line(op.x,op.y,sp.x,sp.y,1) -- draw right elseif sgp.x<128/self.grid_size and ogp.x-1==sgp.x and abs(ogp.y-sgp.y)<=1 then line(op.x,op.y,sp.x,sp.y,1) -- draw below elseif sgp.y>0 and ogp.y+1==sgp.y and abs(ogp.x-sgp.x)<=1 then line(op.x,op.y,sp.x,sp.y,1) -- draw left elseif sgp.x>0 and ogp.x+1==sgp.x and abs(ogp.y-sgp.y)<=1 then line(op.x,op.y,sp.x,sp.y,1) end end end return obj end function new_set() set={} set.objs={} for i=1,32-8*(cnt) do add(set.objs,new_obj()) end set.run=function(self) for o in all(self.objs) do o:update() o:nearby(self.objs) o:draw() end end set.new_pop=function(self) for o in all(self.objs) do if rnd(1)<=0.3 then o:new_pop() end end end return set end dir=((1+rnd(2)\1)*2-3) function burn() for i=1,1024+1024*(cnt) do p=0x6000+rnd(8128)\1 poke(p-dir,peek(p)-1) end end function forward() v=c[1] del(c,v) c[#c+1]=v pal(c,1) end function backward() v=c[#c] del(c,v) for i=#c+1,1,-1 do if i!=1 then c[i]=c[i-1] else c[i]=v end end pal(c,1) end s=new_set() for i=1,rnd()*16 do forward() end month=stat(81) day=stat(82) cls() _set_fps(60) ::♥:: if t()<2 then print("memory probe 6",36,59,1) print(month.."/"..day,55,65) else burn() s:run() b=(t()*60)%128 pset(b,127,rnd()*16) pset(b,126,rnd()*16) pset(128-b,0,rnd()*16) pset(127-b,1,rnd()*16) pset(0,b,rnd()*16) pset(1,b,rnd()*16) pset(127,128-b,rnd()*16) pset(126,128-b,rnd()*16) if btnp(❎) or btnp(🅾️) then s:new_pop() end if btnp(⬆️) or btnp(⬅️) then forward() end if btnp(⬇️) or btnp(➡️) then backward() end end flip() goto ♥

Blockchain tezos
Smart Contract KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton
Platform HEN
Token ID 397836
Minted at 05 Oct 2021, 22:21 UTC

Metadata URI Metadata URI
Artifact URI Artifact URI

interactive , pico8 , pico-8

JavaScript true
Networked false

Timestamp (UTC) 2024-08-18T03:01:28.536Z
Snapshot version 1
External network calls 0
Download Snapshot Download
Snapshot Image