I'm still glad I included food stealing. Makes each game a battle rather than just a race
@GNiklasch With per game cache I'm seeing no problems in Chromium, which is what I use for tournaments anyway since it's faster. I'm going to focus on making console logging work for a cached new challenger first, then come back to see if I can fix the memory problems, in which case I'll go back to persistent cache over a whole tournament.
Thinking about it, I wonder if a cache per game would help decide which moves to cache longer term - keeping what's in common to multiple games
@Alion Highway is hovering around 4th place so far. Need to start a new parallel tournament when I get home too, as there have been player updates
@Draco18s I've just finished reading the transcript - I thought I'd made the name length limit sufficiently generous but I hadn't counted on descriptive names for updates... I'll be starting the new tournament for this in about 12 hours.
Okay. I've identified 3 issues responsible for the vast majority of failures, and fixing all of them shouldn't be too hard. Today is also the day I resume work on Highway, so I'm aiming for a new update until the end of the week.
Oh, and I'll introduce a new idea to my findOrientation function while I'm at it: certainty. It will be a value that represents the difference between how many cells of a pattern matched and the next best match count. That means that if 2 different orientations matched with the same match count, it'll have a certainty of 0. Those will be the fundaments for high quality pattern matching (I hope).
It will allow me to paint the sides when as little as 4 cells match, as long as the certainty is high enough.
@dzaima I don't paint anything, so as to not make more work for future workers. I still try to trace the edge of what I know (essentially educated random walk, when hits is lower than 4), until I'm confident again.
...I think that's what happens. Though my codebase is in a state of disarray, so I'll have to check later.
My goal right now is to clean up and add the aforementioned functionality to my framework. Then I'll refactor my code, probably throwing away a lot of bloat, organizing things better, adding meaningful comments, implementing desired behavior, removing bugs, etc...
By the time I'm finished probably half a week will have passed, and I'll have a much cleaner code base and a much more resilient entry (if all goes according to plan, that is, though I have been surprisingly consistent in doing what I set out to do lately).
I'll push an update after all that, and try to figure something out against Mr. Vampire...
Here's an idea: tax collector worker type. Pseudo-randomly traverses the Highway, searching for subjugated Queens with leftover food. Then, he travels to the sides to bring unladen workers back to the Queen to tax her for sitting on the Highway. Repeatedly.
The rough description that I remember was that it was a maze in a (25x25? or was that the vision size of the agents?) grid, where the "goal" position is invisible. Every turn agents get to move (but may not occupy the same space) and a random unoccupied space is filled in (such that all spaces can still reach the goal). Agents have memory and the winner is the agent that is standing on the goal when the game is done (presumably when no more cells can be blocked off)
@Draco18s The simple solution for this (only one ant type). Pseudo-random forward walk. When taxable queen found, get food from her (automatic). When the tax collector is laden and has no worker beside him, travel away from the main rail, until something that looks like an edge is hit. Wait for an unladen worker to come. Go with the worker back towards the chosen queen (you can just travel towards the main rail now to find her again). (cont...)
Unladen worker steals food and transports it back to our queen. Repeat until target has 0 food. Tax collector then travels alongside the laden worker that just stole the last piece of food to give the queen one more food and reset behavior.
I could also improve detection rates for tax collectors by following pockets of wrongly-colored rail. I need to be careful with that, though, because some pockets might lead nowhere.
@Draco18s Yup, I did notice that behavior. Hmm, I could try and erase more at once...
@trichoplax Erm, no, I'm fairly sure that it wouldn't. The "edge" doesn't actually have to border with white - it can border with nonsense colors as well and still be detectable. Besides, workers alongside the edge are in the hundreds - just catching one randomly wouldn't be unheard of.
And I never thought Highway would work prior to its initial discussion (i.e. my assumed assumptions about pattern based designs). The only reason it DOES is because it overwhelms the competition with numbers of workers.
ie. Highway's number of unladen workers > all other ants combined
@Draco18s That's the point. Use the overwhelming efficiency advantage. Well, I guess it doesn't out-efficiency Windmill, but it's not too interested in spawning masses of workers.
@Alion The main rail CAN get duplicated by lost workers, which causes problems. But yes, the main rail can always be repaired if any portion of its location is known
If anything you'd score some value X as food for each worker, which affects almost no positions on the table (until X < 0, hmm, I might be interested in testing that just for giggles)
Switching topics: I think Firefly could actually be competitive if it was its original orthogonal self (minus all the bugs and plus food hoarding). Shame QuoteBeta isn't working on it anymore...
Tournament started 14 Feb: 13676 games played. Lightspeed and Glider in joint 1st place still. Lightspeed currently ahead 13.69 to 13.68 (they've been swapping places for weeks...)
@Alion option 1: make an edit that fixes its current bug with food and erasure. Option 2: take the food hoarding from the current and apply it back to its original orthogonal arrangement.
@Alion doesn't seem like it
@trichoplax LS and Windmill are far enough down that they'll probably end up joint-second after some more time.
@Alion I know! I thought that old tournament was going to be my back up to decide the winner if the newer tournaments didn't converge in time for the bounty, but I think a newer one will probably converge first...
Tournament started 4 Mar: 285 games played. Page frozen. When it died there were 7 players in joint first place, Glider and Lightspeed at the top
The updated/current Vampire in my controller has... Glider (13.50) Lightspeed (13.43) SlM (12.37) Windmill (12.20) and Highway (12.11) as the entries above 12
@Draco18s Meh, I don't want to dabble in someone's code. I'd love to rebuild it from scratch, though, when I find some time. The current tilted version is different enough to allow for a non-tilted variation, I think. What do you think, @trichoplax? I'd of course credit the guy for the original idea.
"Provided the game is not flooded with many near-identical variations, there should be no problem."
@Alion I'd try commenting on the answer first - if you get a response then that'll be the best guide. After that you're free to post answers based on other answers with credit. I love seeing how an idea can be reused and made into something new
(You're free to post a new answer whether you comment or not - I just meant that if you comment there's a chance you might be invited to edit the existing answer)
Ziggurat was originally similar (I think it had a non-tilted version, then a tilted version, then its current sprawling version). Black Hole went the other way, starting out circular and then becoming more straight sided
I had to look it up myself - I have a lot of players to keep track of nowadays...
I'm going to start a tournament in Firefox instead. Even though I haven't stopped it eating silly amounts of memory yet, I'll see if it will stay below my limit so at least I can get results, even if a little slower
SlM: 32, Vamp: 192 food. Less than ideal in terms of "leaving the victim healthy", but as I wanted to get the update out quick I didn't worry about such things. Not sure what is going wrong on SlM's side though