You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
And 100 games of 200 rounds.
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.
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:
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Here are the results of some tests for 50 games of 1000 rounds


And 100 games of 200 rounds.
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.