Skip to content

Final round thanos#18

Merged
the-other-thanos merged 2 commits into
mainfrom
final_round_thanos
Jun 14, 2026
Merged

Final round thanos#18
the-other-thanos merged 2 commits into
mainfrom
final_round_thanos

Conversation

@the-other-thanos

Copy link
Copy Markdown
Collaborator

Hey, so I spent quite some time today mostly understanding whats going on and trying to find ways to improve it. I have to say you did so much already and it works so well I really couldnt do much but I think I managed to find some things to tweak:

  • The most important, in the setup for final round - needs improvement #17 commit and potentially even earlier there was a rpbolem with how the bot calcualted the frontier path which resulted in it not doing any moves many times. I sepnt some time trying to figure out exactly what it is but I only did a bandage fix.
  • The bot was essentially never moving towards the middle and explored or either stood still because of the bug. I rewrote the logic of the fallback moves a bit in a way that made more sense to me but as you will see later I dont think it works as well as I thought it would
  • I rewrote the logic around the other bots. I now look at their paths and compare it to our path. if their path is shorter and they have resources to reach it I decide not to go for this pot. This has a free parameter that can be tweaked because it currently assumes the other bots are actually greedily going for the pot whenever they can.
  • I added a condition at the end of the num_moves function. I basically want the bot to always sprint for the pot when we have enough gold. Before the way that I udnerstood it it was beeing a bit too conservative (for my taste xD)
  • I also upload the bully bot cypher who is just a copy of neo. The only difference is that instead of ignoring gold pots that all other enemies would reach before him he only ignores gold pots neo goes for. He also only stores neo as a wall on his map. This only works IF the two bots are added one after the other and cypher is the second one beacuse the only way I found to separate enemies was by their number. And I didnt figure out a good way to identify his friend basically except by saying "our friend is the bot added to the game before us". I have not tested this guy almost at all...

Here are the results of some tests for 50 games of 1000 rounds
50x1000rounds
And 100 games of 200 rounds.
100x200rounds
The bot is very bad at short games, I am not sure why. I think the fallback should not go into frontier exploration for those maybe its losing too much time there. And these stats are actually with the bug in D3STROYER fixed already but no other changes. So just from the results I would say that from all that I did the only thing that really was worth it was fixing the path return for the frontier.
I hope I can get some more time to play around with this on the weekend but I am pretty tight... Oh and vet is the destroyer_bot. I am not sure which version that was.

@the-other-thanos

Copy link
Copy Markdown
Collaborator Author

So, I did another 150 rounds with the original Destroyer from #17 (with the supposed bug).
D3STROYER still destroys everything even with the bug xD I cant really understand it exactly but here are the results for another 150 games of 1000 rounds:
50X1000_2
50X1000_3
50X1000_4
Total: D3STROYER 67, neo 42, Adlhart 39, vet 2
So the bug seems to be a feature hahah. Just for my own sanity I attach also a txt file where I print the output of one game where you can see what bug I mean. It's real I swear. If you search for the keywords "frontier", "center", or "slowly" you will see the print statements. You will noticed D3STROYER NEVER moves to the center or to the gold slowly. Only to the frontier even later in the game when there should be no frontier. You will also see while he tries to move to the frontier he returns an empty list of moves because an error appears. I printed the "fix" i implemented for neo. Having said that. the fix didnt help. The bot performs better with the "bug". I am still trying some tactics for neo, from a few tests I did it might perform well on the floodfill map where D3STROYER struggles. So maybe thats something we can use.
bug_doc.txt

@the-other-thanos the-other-thanos merged commit e1a43ba into main Jun 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant