1K Gauntlet demake #Pico1K
A Gauntlet demake in 1023 Compressed Bytes of code for PICO-1K Jam 2023 #Pico1k
Destroy enemy spawners to advance to next level. Avoid being touched by enemies. The brighter enemies are, the more energy they drain when they touch you. Due to a highly intentional bug, you may freeze when surrounded by enemies, so choose your position well when facing a horde of enemies.
Mazes are randomly generated using quite sophisticated algorithms. If you find a maze can't be solved, use the secondary fire button to skip that level.
Code:
_set_fps(60)cls()rectfill(16,0,24,24,13)memcpy(0,3*8192,8192)::r::l=1s=0g=999::s::?"\as4cegdefeg" srand(l)o={x=60.5,y=60.5,c=0,z=0,l=g or 999,k=0,r=0,a=1,b=0,m=8}p={o}w={}for i=0,1023do a=i%32b=i\32mset(a,b,(a==0or b==0or a==31or b==31)and 2or(rnd(3)<1and 2or 0))end for i=1,10do x=rnd(30)\1*8+12.5y=rnd(30)\1*8+12.5add(p,{x=x,y=y,c=2,z=100,l=3,k=0,u=0,v=0})mset(x\8,y\8,1)end::_::cls(1)camera(mid(192,o.x-64),mid(192,o.y-64))map()n=0g=""for q in all(p)do if q.c<2then d=0if q.c<1then q.k=9c=btn()a=c\2%2-c%2b=c\8%2-c\4%2if(btn(4))d=1 else q.k=q.l+4a=(mid(-1,1,o.x-q.x)+.5)\1b=(mid(-1,1,o.y-q.y)+.5)\1 end if a!=0or b!=0then q.a=a q.b=b if a!=0and b!=0then c=0 if(mget(q.x\8+a,q.y\8)>0)a=0c=1 if(mget(q.x\8,q.y\8+b)>0and c<1)b=0c=1 if(mget(q.x\8+a,q.y\8+b)>0and c<1)b=0 end end if q.z<=0and(a!=0or b!=0)and d<1then q.u=a/q.m*8 q.v=b/q.m*8 if(mget(q.x\8+a,q.y\8+b)<1and(mget(q.x\8+a,q.y\8)<1or a==0)and(mget(q.x\8,q.y\8+b)<1or b==0))mset(q.x\8,q.y\8,0)mset(q.x\8+a,q.y\8+b,q.c>0and 1or 0)q.z=q.m end if(q.z>0)q.z-=1q.x+=q.u q.y+=q.v if q.c<1then q.r-=1if(q.r<0and d>0)q.r=10add(w,{x=q.x,y=q.y,u=q.a*2,v=q.b*2})g="\as2ceg" end if(q.c>0and max(abs(o.x-q.x),abs(o.y-q.y))<4)o.l-=q.l*2q.l=0g="\as4gcgcgc" else q.k=q.l+4n+=1q.z-=1if q.z<0then a=rnd(2)\1*2-1b=rnd(2)\1*2-1if((a!=0or b!=0)and mget(q.x\8+a,q.y\8+b)==0)x=q.x+a*8y=q.y+b*8add(p,{x=x,y=y,c=1,z=0,l=q.l,k=0,a=1,b=0,u=0,v=0,m=24})mset(x\8,y\8,1)q.z=200 end end ?q.c>1and"🅾️"or(q.c<1and"웃"or"🐱"),q.x\1-3,q.y\1-2,q.k if(q.c>0and q.l<=0)mset((q.x+q.z*q.u)\8,(q.y+q.z*q.v)\8,0)del(p,q) end for r in all(w)do r.x+=r.u r.y+=r.v c=0a=r.x%8b=r.y%8pset(r.x,r.y,7)if(a==mid(2,6,a)and b==mid(2,6,b)and mget(r.x\8,r.y\8)>1)c=1 for q in all(p)do if(q.c>0and max(abs(r.x-q.x),abs(r.y-q.y))<4)q.l-=1s+=1c=1break end if(c>0)del(w,r) end camera()?"s:"..s.." \f9♥:"..(o.l\1).." \fb⌂:"..l..g,1,1,7 flip() if(n<1or btnp(5))l+=1g=o.l goto s o.l-=.01if(o.l<=0)goto r goto _
Comments
Log in with itch.io to leave a comment.
Sifting through your itch page uncovers a treasure trove of great games, thank you for sharing 'em!
Thanks! I didn't realize how many little games I have already coded and added to the itch page. Maybe that's why I feel I'm running out of fresh ideas 😉