@SamYonnou mine extends up to 40 moves (to extend it I'd just have to extend the random data array) but stops as early as you know that anyone can distinctively tell you apart
what if I literally just copy and paste the logic of one of my bots into the other so it could simulate the board from the pov of every other bot to determine which bot follows the exact strategy
perhaps to solve some slowness issues the tournament should be ran with random groups of 10 bots on a fixed size board, but its too late to change that now
That could have been a possibility, but it'd change the game mechanics by a lot -- if only by introducing the possibility that your handshake partner is not even in the game
@Alion And then throughout the rest of my spaghetti I treat the pair as one, but if one bot from the pair is dying I want to treat it as a separate bot.
The benchmark might be slightly unfair since, even though I used the same seed (in dzaima's controller), chrome and firefox seem to have different random number generators since the results are different
@tomsmeding weird, I just checked an existing tab I had open, and the style showed up in style inspector but I had to click it off and on again to get it to apply
along with a change to the controller, you can now get a perma-marker over an entry with this code. (until you hover over another entry in the table, that is.)
k now my controller has a 4th item for each bot in the bots array - its name. Use that feature for debugging wisely and remember to always test your code on the reference controller.
I'm finish salvaging all salvageables from my previous bot, and will soon attempt to remake the behavior system... Wish me luck. Or don't if you want to see me fail ._.
of course I don't have anything fancy beyond that and if there aren't 2 workers who can overwrite the enemy color there is crying in the console and I try the next top target
@dzaima though I seem to have failed doing that "simple logic" part :p
I'm starting to copy-paste more and more stuff from my previous attempt. This means one of two things: either the refactoring wasn't that needed, or I'm being stupid.
It's a shame bots can't share info with each other. I mean, it would literally cut the run time by 2/3 and the bots wouldn't gain anything from it.
@dzaima Yep, because choices made by the first bot influence the second, and so on...
I guess I could probably cut the thinking time in half by making the first bot's choice independent, then the second's only on the first's, and the third only has to calculate all of them.
Yeah... After copying some more stuff I realized that I didn't really need to refactor the whole thing, and I was simply missing a little something that came to me after a short break.
Oh well, still made everything a little cleaner so not complaining.
Although, wait, the deadline is, like, the day after tomorrow (probably).
There's also potentially an advanced tactic - you can technically clear out bots that you're 3x neutral to if you try to predict where the bot in question will move, since that will neutralize his fresh path and the two leftover bots can clean up the mess. Though it is very unreliable, especially for unpredictable bots.
By the way, I've found the exact thing that was making my code really ugly. It was the partner of a bot-doubling being treated as a fully-featured bot, which introduced a whole ton of edge cases and bloated everything. In simpler terms, I mistook an edge case for the average case.
Oh. I didn't really need to store the functions (and then later create a weird object to store an ID of a function). Moreover, it was less concise and more contrived to do that.
@Alion yeah, it's supposed to be code for going towards a position, preferring to go to a specific color. Looks like I completely forgot a map though while getting absorbed into aligning everything