Logiker presents another Vintage Christmas Computing Challenge, this time it’s about bringing a star onto the screen, not any star, exactly this one (the part in white):
From the invitation:
As we know, Christmas can become a very busy time. But if you want to escape from that for a while, maybe the Vintage Computing Christmas Challenge 2022 might just be the right thing.
This time I chose another object obviously. It might look simpler than the last one. But who knows if it really is easier to implement? Due to its regularity and bigger size interesting solutions might come up.
The contest runs from Friday 2 Dec. 2022 until Saturday 26.Dec. 2022.
More on this on the homepage:
Hurrah! This went very well last year.
Please no spoilers! Wait until after the deadline before sharing code!
Please, everyone, no spoilers or hints - the rules of the competition say that this is a personal challenge.
I’ve left @larsbrinkhoff’s post un-despoilered because it’s close, I think, to the literal Sample Code on the challenge page, and can be expected to be larger than any cunning approach.
I know it hurts, not to be able to share progress or insights, but the idea is not to spoil the fun for anyone who hasn’t yet had a chance to think about approaches.
I didn’t post any code, so I thought that would be ok.
While I second @EdS , I do appreciate the wavy source star.
I’ll confess that I don’t understand what you posted at all! I can see it’s tagged as Lisp, and I can see lots of parentheses, and I can see a star pattern in the source… but otherwise I’m at a loss!
Hi! If the stars and SPACEs are in a database, does that count in the code, or does it only matter the size of the rendering code?
You might have to ask yourself whether that would be fun… one of the shortest offerings last year, IIRC, simply plotting things at random. Eventually, in a sense, it might produce the desired output. Perhaps fun to write and submit, but not really the sort of satisfying fun I’d be looking for.
One of the excellent aspects of the rules is that once you’ve written your first attempt, you are competing with yourself. A well-matched opponent! Even if you’re miles away from ever possibly winning.
(Welcome, by the way!)
Looking at it this way, I really competed with myself and managed to create a very minimal code.
For everyone new to this: This is a challenge by Logiker and totally unrelated to this forum. Please post any entries to Logiker’s address. However, we may still have some fun here, sharing our various experiences (after the event).
That’s down to the competition runner, Logiker, to decide. I’d say any database required to render the drawing would be part of the source code, but I don’t make the rules here.
One challenge would be, writing the shortest code for computer x.
The simplest way and maybe the shortest would be just one (or more) print commands depending on the computer. But of course, that’s not a challenge for geometrical shapes. (But not excluded in the rules). Another short way would be, just loading an external image.
So what would be a real challenge? Writing the most complicated or longest code?
Writing an own programming language and/or computer?
Animation. Zoom. Adding sound. video, …
Or including a challenge for 2023. Or mixing challenge 2021 and 2022.
A database is a way and used on the last challenge, at least here. Drogon even had both ways.
I’ll need to dig out my stuff for last year for a review at some point - I did a BCPL and BASIC version.
I have a plan for this years - not going to go for small code size, nor huge, nor esoteric but what I hope will be an interesting algorithmic approach -watch this space, as they say
I’m happy to say I did get started, on a Basic version, made some very satisfactory improvements, and then had a new idea which turned out even better. And then, with some wrestling, I managed to cook up a 6502 version. Whether I’ll have any bright ideas to improve that, or any totally different approach which will be more compact, remains to be seen…
I am looking forward to a full discussion once the deadline passes!
Hiding potential spoilers
what if I don’t have 17 rows on the screen?
Oh… I can send it to the printer. Right?
“creates the object” - I could send it to the 3D printer too!
But seriously… TRS-80, 64x16 Can’t do the full star in one screen.
Proposed1 - shrink it to a 13x13 star?
Proposed2 - draw the 2 “missing” dots somewhere else (the two at the top, or two at the bottom) [ maybe, a few options still keep the shape horz/vert symmetric, and result is “same work” as existing entries insofar as drawing 161 dots ]
Proposed3 - scroll it? (I’m not using BASIC and wasn’t planning on scrolling)
Edit by moderator: hiding details which might hint at approaches
I think you'll find the rules are flexible...
… for the case that the main (strict) challenge isn’t what you want: do what you like, and have fun. Personally, given a limited display, I would probably try for a 15x15 bounding box version, or 13x13 if necessary. I might print to a printer (or more likely to serial) or I might put the results in an array. In all cases, I suspect these modifications will modify the choice of best approach.
But as noted, I really don’t want to speculate, list, mention, or hint at approaches before the deadline. If there’s some idea I haven’t yet had, I want to be free to have that idea and have another go. If someone hints at an approach, I might lose the chance.
Don’t spoil other people’s fun!
Just wanted to say that now that the official contest is over, any solutions, contributions or discussions are welcome!
(Personally, I was looking forward to trying something with shifting a binary vector, best done in machine language, but caught a fever. So there’s nothing to contribute from my side. )
I too thought the embargo was lifted, but a commenter on Stardot reckons we’re supposed to wait until after the compilation video…
I certainly enjoyed myself, and did more coding than I had all year, since perhaps the previous challenge! (My Basic effort which I was quite happy with turns out to waste a few bytes - someone posted a similar but smaller version over on Stardot.)
I eventually got round to finishing off my entry - I’ll wait to post it, but as usual I’ve “improved” it slightly since submission.
I decided against some sort of table or counting/algorithmic approach for this one though and felt the method I used might be unusual for this challenge, but who knows.
No spoilers (here) yet, but I’ll say that the same code can be used to reproduce last years one too, should I choose to do so.