Ooh, I just came up with something fun to make and potentially usable on the arena. Sorry, Highway, tired of looking at the same codebase for 2 weeks straight :P
Meh... This idea quickly devolved into Firefly... Why do all of my ideas eventually devolve into reinterpretations of existing entries? :c
Am I that creatively bankrupt? Or is it just hard to come up with something interesting...?
Just figured out a clever, potentially universal (and if not, highly extensible) pattern system... Guess I'll waste some time reworking my framework for the 5th time (and rewriting my entries while I'm at it).
@eaglgenes101 that's the biggest problem in this challenge - figuring out how to not be ambiguous without losing efficiency. For SlM5 I was lucky enough to be able to just use randomness, but I'm guessing it's harder for you
Yeah, if I don't decode a possibly ambiguous state correctly, then the resulting march becomes inconsistent. I have a panic signal to break off a portion of the marching formation if that happens, but that's still workers going down the drain
@eaglgenes101 Well, they could possibly be reused for some arena destruction after they're gone (as long as it won't introduce more ambiguous cases, that is). Your entry won't use many colors, right?
Though, yes, ideally you don't want to break them off in the first place, of course...
Have you figured out what to do if there's an ant on the way that doesn't want to move? Or at least do you think you can figure it out?
Think I'm gonna work on Formic 3D as my next pet project... Spent some time thinking about the possibilities in there, and it looks pretty fun. I'm probably not gonna post it anywhere unless there's popular demand, though - it would sit on the thin line between dupe and sequel (even though most 2D strategies don't translate into 3D directly)...
Looking at the board is gonna be a pain in the bum, though. I would have to be a 4-dimensional being to be able to take a look properly...
Visualising the arena is what kept me set on a 2d game. I'd love to see a 3d version but it might be hard to get many competitors if they can't see what they're coding...
For what it's worth, I would vote to not treat it as a duplicate. By the time you've thought about what rules and parameters would work well, I'd expect it to be sufficiently novel
Lots of extra decisions to make. Like do you want 7, 19, or 27 visible cells?
@trichoplax 27 cells, 2 axes of rotation is what I'm thinking. An interesting side-effect of this is that you can't determine your absolute rotation without using 2+ painted cells. This comes from the fact that you have 16 states of rotation and only 12 "edge cells"/8 "corner cells"/6 "side cells"...
You can, of course, determine basic rotation (for example when wanting to travel straight via corner cells).
I might've explained that poorly, because talking about 3D rotations is hard in and of itself... It's just not intuitive :P
I see what you mean though. You can go in a straight line only marking one cell each step, but you'd need to be able to see 2 (in different colours) to send off mine shafts in a consistent direction
Yep, that's what I meant. Since we're on the same page, I'll also add that 2D strats don't translate directly because a 2D plane can be reflected when rotated on 2 axes...
Though the accessibility of such a challenge would be really low, not only because of inability to view your creation properly, but also because thinking about 3D rotations and patterns in general is hard. Though the total pool of possibilities is way larger than in 2D.
@trichoplax "Mean mean"? Whatever you meant, restricting it to RGB+white might be a good idea... Though we do have the added difficulty of 2 axes of rotation...
@eaglgenes101 Oh, so I was thinking about just ants floating in space. I have a feeling you might be thinking about something else, if you're talking about gravity.
@eaglgenes101 Ah, I see, that makes sense. Nah, I just thought about changing the board to 3D, keeping all mechanics exactly the same (just extended)... Though I must agree that this is an interesting, separate concept.
Oh and @dzaima, I've been inspired by your elaborate class Pattern to rework my framework in the spirit of full OOP. Thanks for making me make myself waste my time :P
@trichoplax Yeah, though I meant that sorta sarcastically. If every entry decided to gobble up 100% of their allocated time, no tournament would ever finish...
Even with the caching, it would still take forever and a half.
Collisions with others happen, often massive ones. Also keep in mind the food counter of queens, making almost all caching null and void when nearby queens. Also, some entries tend to explode when something goes wrong (Highway is the worst offender, AFAIK), and more often than not, when something goes wrong, caching is also practically useless...
I'd say that since the viewpacker knows exactly where to find what it's looking for, it's more efficient than the stringifier that has to perform object reflection and then stick a bunch of partial results together into json
Which then gets fed into a hash function that takes input serially anyway
@Alion I vaguely remember some discussion of alternatives, but my priority then was to get some kind of caching working. Then I forgot about considering alternatives later...
@eaglgenes101 I'm open to testing different methods to measure which is faster in practice.
@dzaima I think I figured it out. From MDN: "An important difference between function declarations and class declarations is that function declarations are hoisted and class declarations are not."
Or I might be misunderstanding how hoisting works...
I read that as "HNNG YES, GARLIC IS DELICIOUS" in a vampire's voice, followed by a mental image of said vampire consuming an entire pile of garlic loudly and couldn't stop laughing for 5 minutes