Cart #23842 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
60

better etchasketch! ~118 characters (110 w/o clear-screen or random color)

 cls() x=0 y=0 while 1 do if(btn(0)) x-=1 if(btn(1)) x+=1 if(btn(2)) y-=1 if(btn(3)) y+=1 pset(x,y,7+rnd(9)) flip() end

random circles might be fun too :)

9

Cart #23833 | 2016-06-29 | Code ▽ | No License
9

 t=0 while true do t+=1 cls(1) for x=0,63 do for y=0,63 do pset(x*2+y%2,y*2,8+(t/16+((x-32)/(y-32)))%8) end end flip() end

Cool!

You can just do "if(btn(0))x-=2", btw!
I'll have to try making something like this too, haha.
Also, thanks for retweeting my thing the other day!

1

ok here's a weird version of the etchasketch that makes a fat worm thing

Cart #23843 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
1

 cls() x=0 y=0 while 1 do if(btn(0)) x-=1 if(btn(1)) x+=1 if(btn(2)) y-=1 if(btn(3)) y+=1 circ(x,y,rnd(6),7+rnd(9)) flip() end

You can save 4 chars by getting rid of spaces in lines 4-7.

0 chars left.

 cls() x=0y=0 while 1 do if(btn(0))x-=1 if(btn(1))x+=1 if(btn(2))y-=1 if(btn(3))y+=1 circfill(x,y,sin(time())*3+5,7+sin(time())*5) flip() end

Alternatively:

 cls() x=0y=0t=0 while 1 do t+=.03 if(btn(0))x-=1 if(btn(1))x+=1 if(btn(2))y-=1 if(btn(3))y+=1 circfill(x,y,sin(t)*3+5,7+sin(t)*5) flip() end

whoa thats fuckin righteous :D love it! creates freaky noby noodles <3 so good

Cart #23848 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA

Aww, thanks!
But it's still mostly your code, haha.

What is the benefit of calling flip() here?

im trying to shave 70 characters off of this:

 p={0x00,0x50,0x05,0x56,0x65,0x66,0x76,0x77} t=0 t+=0 cls() for x=0,64 do for y=0,120 do c=p[flr((rnd(4)+4-(((x - 32)^2+(y/2 - 28)^2))/(abs((64-t%128))+192))+1)] poke((0x6000+x+(y*0x40)), c) end end flip()

also, it seems to run only once then quit, so I might not understand how the first program in this thread works :P

edit - aaah I have to put the "while" to keep it going :P
edit edit - I also dont need to flip because im poking

11

Cart #23852 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
11

 t=0 function _draw() cls()x=64 y=64 r=1 a=0 for i=0,150 do circfill(x,y,r/2,6+i%3) x+=cos(a)*r y+=sin(a)*r r+=1/4 a+=t/5 end t+=0.001 end

flip() is being called inside a while loop to draw the backbuffer to the screen. i havent actually counted characters to see if "while 1 do // flip() end" is less than the more proper "function _draw() // end" - they're pretty close so probably not saving much at this point?

ok i just counted and function _draw() saves 1 character!

trust zep to do it right <3

UPDATE - if you don't have to call flip() (because poke, memset, etc) then its def less space to just do "while 1 do /**/ end"

This is a great idea!
Here is a weird static thing. I think it fits in 140 characters?

Cart #23855 | 2016-06-29 | Code ▽ | No License

 cls() while 1 do memset(0,rnd(3)+5,16) spr(0,rnd(256),rnd(256)) memset(0x3200,rnd(3)+5,128) sfx(1) end

whoa thats awesome :D

2

Cart #23858 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
2

haha static all over today :p

 p={0x00,0x50,0x05,0x56,0x65,0x66,0x76}t=0 while 1 do t+=0 for x=0,63 do for y=0,127 do poke((0x6000+x+(y*0x40)),p[flr(rnd(7))])end end end

A slightly different one, sounds like a broken computer :D

Cart #23859 | 2016-06-29 | Code ▽ | No License

 cls() while 1 do memset(0,rnd(16),16) spr(0,rnd(128),rnd(128)) memset(0x3200,rnd(256),128) sfx(1) end

Oh, Mozz yours looks much more authentically static than mine!

I really like how "smooth" that effect looks in yours though!

yea im expecting a lot of rnd based screensavers for this, button input just dominates your code otherwise. i wanna try some one-button stuff tho, thats at least interactive and still leaves lots of code space...

like these programs that just go straight to the front buffer too :D LIVIN LIFE ON THE EDGE

hmmm

how close can i get to canabalt-esque runner

Oh good idea with one button

here's a little jumping circle hmmmm

 x=-4y=0j=0 function _draw() cls() if(btnp(2))j=-10 j+=1 y+=j y=min(99,y) circfill(10,y,4,11) x-=2 if(x<-4)x=99 circfill(x,99,4,12) end

updated to add a little obstacle hrrmmm

would be more efficient to make it run upside down haha

A kind of controllable one

Cart #23868 | 2016-06-29 | Code ▽ | No License

 x=2 while 1 do if(btnp(4))x+=0.01 if(btnp(5))x-=0.01 y=rnd(abs(x)) memset(0,y,y) spr(0,rnd(128),rnd(128)) memset(0x3200,y,128) sfx(1) end

Whoops, makes more sense if it's btn instead of btnp :P

kind of a proto-Helicopter in 139c

 x=-4y=64r=0 function _draw() cls() y+=1 if(btn(2))y-=2 circfill(10,y,3,11) x-=2 if(x<-4) then x=123r=10+rnd(108) end circfill(x,r,9,12) end

4

Cart #23872 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
4

 while 1 do print("") for i=0,3 do z=time() t=sin(z-i*.25)*4 camera(0,sin(t/180)*50) circfill(64+sin(z+i*.15)*55,100,t+7,10+t) end flip() end

7

Cart #23875 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
7

 while 1 do for x=8127,0,-1 do o=0x6000+x v=peek(o) if(v!=0)then if(peek(o+64)=0)then poke(o+64,v) poke(o,0) end end end end

Oh my god that's really great

NIIIIICE!!

Cart #23885 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA

 s=-9 function _update() c1=flr(rnd(16)) if btn(4) and c1==8 then s+=1 end end function _draw() cls() print("<3",60,s,8) circ(64,64,9,c1) end

Taking a stab at this with something super simple. When the circle and heart are the same color, press the button(4) and they come together... or just hold the button down.

2

Cart #23889 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
2

 function _draw() for x=0,127 do for y=0,127 do c=pget(x-2,y-2) if c>0 then c+=flr(rnd(9)/8) pset(x+rnd(3)-1,y+rnd(3)-1,c) end end end end

1

Cart #23891 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
1

 a=64 camera(-a,-a)b=1 c=1 t=0 function _draw() for i=0,16 do d=(t/4+i*8)%128 line(a*b,a*b-d*b,a*c-d*c,-a*c,i)b=-b if(b<0)c=-c end t+=1 end

138/140
nothing fancy

3

Cart #23894 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA
3

 t=0 bt=1 c=0 l=127 while 1 do bt+= (btn(4) and 2 or -1) for t=1,l do c=1+(bt+t/5)%15 line(t,0,l-t,l,c) line(0,l-t,l,t,c) end flip() end

hold <z> to reverse the rotation
135/140

Cart #23897 | 2016-06-29 | Code ▽ | License: CC4-BY-NC-SA

 while 1 do t=time() s=(sin(t/5)+1)/2*40 memcpy(24576,24643,8128) memset(32704,0,64) line(s,127,128-s,127,s+sin(t*(t*.001))*6) flip() end

1

Cart #23906 | 2016-06-30 | Code ▽ | No License
1

Here's another:

 b=0 l=99 a={7,6,5,0} function _draw() b+=.5 for t=1,l do c=flr(1+(b+t/4)%#a) p=(b+t)/30 circfill(63+4*sin(p),63+4*cos(p),l-t,a[c]) end end

138/140

2

Cart #23909 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
2

This is an awesome thread so I thought I'd join in. This is just drawing a line between points on two circles rotating at different speeds. 134/140 chars.

 cls() t=0 c=1 while 1 do m=64 x=30*cos(t) y=30*sin(t) z=60*cos(1.5*t) w=60*sin(1.5*t) line(m+x,m+y,m+z,m+w,c) t+=0.00003 c+=0.0003 end

4

by hcnt
Cart #23919 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
4

Having fun with lissajous. Had to really cut it down to make it work.

 t=0k=64 function _draw()cls()t+=.05 for i=1,k do x=k+cos(i/10+t)*k/2 y=k+sin(i/20+t)*k d=sin(i/10+t) circ(x,y,4+d,12)circ(x,y,2+d,7) end end

5

Cart #23921 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
5

 i=0 function _draw() i+=.01 y=24576 memcpy(y,y+(sin(i/3)+sin(i))*4,7200) for t=y+7296,y+8190,2 do memset(t,rnd(2)+i,2) end end

127 characters

I've been loving going through these experiments! I started fooling around with drawing circles of different sizes and colours with small random offsets and ended up with a thing that looks like a cartoon smoke trail for fireworks or something. :)

Cart #23930 | 2016-06-30 | Code ▽ | No License

 cls() x=64 y=64 c=7 s=7 function _draw() x=(x+rnd(6)-3)%128 y=(y+rnd(6)-3)%128 c=(c+rnd(2)-1)%16 s=(s+rnd(2)-1)%12 circfill(x,y,s,c) end

136 chars

4

Cart #23933 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
4

 i=0 function _draw() i-=1 for x=0,37,.5 do for y=0,11,.1+x%1 do pset((i+x*3)%128,23+y*8+sin((x+i)/50)*5,pget(x,y)) end end end

127 characters.

Great idea using the system logo. :)

I played around a bit to see if I could get the character count down. I had to change the look a bit, but technically you can get a similar effect in 99 chars if you use this and don't hit enter. :)

 i=0 function _draw()i+=1 for a=0,6559 do poke(a+25698,pget((a+i)%64,sin((a-i)/64)+a/512)*17)end end

If you wanna be a stickler for formatting, the prettified code is 106 chars. :)

All credit to you for the idea, though. I'm just a relentless approximating optimizer.

Cart #23937 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA

 i=0 n=12800 m={221,210,3,0,0,151,200,0} function _draw() i+=1 if i%4==0 then a=i/4%8+1 if(btn(4))m[a]=rnd(n) memset(n,m[a],n) sfx(1) end end

140 characters.

WARNING, if you download this: This code has the absolute nerve to go overwriting a heap of RAM that it doesn't need to, and usually makes PICO-8 unusable afterwards. If you do run it... once you've hit escape, you can blindly type "reboot" and hit enter to reset.

This one extends on the idea above where we generate SFX on the fly. This loops over an array of 8 SFX setups, on loop. If you press Z during the moment an SFX starts to play, the setup for it will be randomised. So basically you build up a whacky beat by pressing Z at appropriate moments.

That's some impressive looking optimisation!

6

by Blokatt
Cart #23942 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
6

 poke(24364,5)while 1 do t=time()line(63,0,63,128,8+sin(t)*sin(t/10)*7)for a=0,63 do for b=0,128 do pset(a-rnd(2),b,pget(a,b)/.67)end end end

3

Cart #23945 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
3

 i=0 function _update() cls()for y=0,128,6 do for x=0,128,1 do line(x+(cos(i)),y,x+sin(x/y+i)*3,y+cos(y/x+i)*3,9) i+=x*y/20000 end end end

6

Cart #23947 | 2016-06-30 | Code ▽ | No License
6

 t=0 function _draw()cls(2)t+=0.01 for k=0,16 do for n=1,9 do h=k/16+t circ(64+cos(h+t/3)*n*8,64+sin(h)*(n*n+cos(t)*16),n,11-n/3)end end end

All of those are f'n rad

1

Cart #23950 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
1

129/140

 poke(24364,7) t=0 while 1 do x=20*cos(t) y=20*sin(t) z=50*cos(0.3*t) w=50*sin(0.3*t) line(30+x,30+y,30+z,30+w,t*2) t+=0.00003 end

8

Cart #23953 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
8

 function _draw()p={1,1,13,12,14,15,7}cls()srand(0) for i=0,256 do z=flr(i/40+1)circfill((rnd(128)-time()*z*z)%140-8,rnd(128),z,p[z])end end

A bit lame but I thought I'll join you!

2

by Blokatt
Cart #23956 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
2

 t=0 while 1 do t+=.2 for y=0,32 do for x=0,32 do o=x*y*.1+t c=cos(o)*4 s=sin(o)*4 x=x*4 d=y*4 line(x+c,d+s,x-c,d-s,8+(o/3)%7) end end end

8

Cart #23960 | 2016-06-30 | Code ▽ | License: CC4-BY-NC-SA
8

 for i=12868,12935 do poke(i,i)end sfx(1)c=0 poke(24364,7)function _draw()cls()for i=49,95 do circ(cos(c+i/43)*i,c^4,i,i%8+8)end c-=0.003 end