Page 1 of 2
Neat one-liners
Posted: Fri Dec 23, 2022 3:02 pm
by grml
POKE34,203:POKE35,96:FORI=0TO128:POKE$9F2A,I:POKE$9F2B,I:SYS34:NEXT
Works best right after reset while the X16 logo is still visible.
This part:
POKE34,203:POKE35,96:SYS34
does wait for vblank irq, for the rare case when you need it in BASIC. The address is arbitrary, it will work anywhere in RAM.
Add your own interesting one-liners or short BASIC programs below if you must. Inb4 the inevitable "maze" generator
Re: Neat one-liners
Posted: Thu Jan 19, 2023 11:48 am
by grml
Sierpiński triangle:
Code: Select all
CLS:FORY=0TO59:FORX=0TO79:VPOKE1,$B000+Y*256+X*2,78-((XANDY)>0):NEXT:NEXT
It looks better if you squint a little
- x16sierpinsky.png (2.85 KiB) Viewed 5304 times
And damn, BASIC is still slow as hell even at 8 MHz.
Re: Neat one-liners
Posted: Thu Jan 19, 2023 10:18 pm
by desertfish
I love the sierpinsky oneliner!
Re: Neat one-liners
Posted: Fri Jan 20, 2023 4:24 am
by Jestin
I tried putting these together, and they make a great two-liner! Zooming Seirpinski!
Re: Neat one-liners
Posted: Sat Jan 21, 2023 10:00 am
by grml
Code: Select all
COLOR13,0:CLS:FORT=0TO9^9:?CHR$(164+2*RND(0)+INT(2*RND(0))*41);:NEXT
This one is interesting. If you watch it go for a minute, you can see the pattern go through a bunch of distinctive phases while the RNG "warms up", until it finally seems to generate more uniformly distributed numbers.
First it's lots of diagonals and vertical lines, then lots of horizontal lines for a while
- phase1_2.png (31.55 KiB) Viewed 5213 times
then mostly diagonals but clearly biased towards one direction,
- phase3.png (34.28 KiB) Viewed 5213 times
and only then the actual intended pattern emerges after about ~4 screens.
- phase4.png (35.81 KiB) Viewed 5213 times
Re: Neat one-liners
Posted: Sat Jan 21, 2023 10:32 am
by desertfish
That is unexpected and slightly worrying behavior of the rng...
When running the same oneliner on the C64 (in vice) there is no such 'phasing', it seems uniform right from the start....
(the same when running an equivalent program written in prog8)
Yeah, you should probably be using RND(1) instead of RND(0) in the BASIC oneliner, that seems to fix the lack of uniformedness on the X16.
- Screenshot_20230121_113022.jpg (150.34 KiB) Viewed 5208 times
Re: Neat one-liners
Posted: Sat Jan 21, 2023 11:54 am
by desertfish
Is it allowed to cheat a tiny little bit by setting up a variable first?
If so, this is my entry:
first set up the variable:
M$=CHR$(145)+CHR$(17)+CHR$(157)+CHR$(29)
and then the one liner itself:
CLS:LOc30,40:FoI=0TO9^9:COlRn(1)*16:?Ch(209)Ch(157)Mi(M$,1+Rn(1)*4,1);:Ne
(yes, it uses token abbreviatons to fit it under 80 characters. They look a bit weird in ascii due to the case flip, if you paste the line in the emulator it does work correctly)
EDIT: it can be done on 1 line and so it adheres to the rules again, but it requires you to embed the actual characters into the line instead of using ascii-copyable chr$ notation:
- Screenshot_20230121_154148.png (18.79 KiB) Viewed 5178 times
1 = shift-Q , a ball
2 = cursor left
3 = cursor up
4 = cursor down
5 = cursor left
6 = cursor right
- Screenshot_20230121_125326.png (186.2 KiB) Viewed 5195 times
Re: Neat one-liners
Posted: Sat Jan 21, 2023 12:36 pm
by grml
desertfish wrote: ↑Sat Jan 21, 2023 10:32 am
Yeah, you should probably be using RND(1) instead of RND(0)
Yes, that's it. At least I got this beautiful oneliner artwork out of my blunder:
Code: Select all
SCREEN128:S=16:FORY=0TO239:FORX=0TO319:PSETX,Y,S+S*RND(0):NEXT:NEXT
- rnd0.png (55.26 KiB) Viewed 5191 times
desertfish wrote: ↑Sat Jan 21, 2023 11:54 am
Is it allowed to cheat a tiny little bit by setting up a variable first?
Comparing twoliners against oneliners seems a bit unfair to me.
It's too bad you have to use CHR$. It would fit on one line if you could copy those chars verbatim, and remove the CLS.
Thanks for showing me how to copy abbreviated tokens.
Code: Select all
SCr128:FORY=0TO239:FORX=0TO319:PsX,Y,136-119*SIN((X+2*Y)/(X+Y+59))+Rn(1):Ne:Ne
This one I call STRIPES OF PATIENCE. A picture would only deprive you of a quintessential and beautiful real-time art experience.
Re: Neat one-liners
Posted: Sat Jan 21, 2023 2:45 pm
by desertfish
I made it into a one liner but you can no longer copy paste it from the forum because of the embedded control characters that you have to type now
Re: Neat one-liners
Posted: Sat Jan 21, 2023 5:12 pm
by BruceRMcF
desertfish wrote: ↑Sat Jan 21, 2023 10:32 am ... Yeah, you should probably be using RND(1) instead of RND(0) in the BASIC oneliner, that seems to fix the lack of uniformedness on the X16.
Does anything interesting happen with RND(T) in one of the RND() functions ... that is, using a different seed each time through the loop?