You beat me to it. Now I know not everyone has that kind of time, But I currently have two different active “Bots”. and I build them up against each other.
Now it does not mean that I entered both, But one is slightly better though they both follow a different strategy. So I try and build different bots with different strategies if one bot completely thrashes the older one I will archive it. And currently I have 2 builds left thats close to each other. But the one reached the point of “I have no idea how I will better this” The other is a work in progress. But there’s potential.
The problem with the top tier bots is, The moment your bot slips up (Skips a move. Makes a move that causes them to trade say 2 Attack buildings for 1 attack building.) Your at a disadvantage. I am 90% sure that if you had to skip 2 turns after round 20 against Ralf, Justin or possibly Andre, You will lose. Against me not so much because my existing bot does not go for the game ending kill. sometimes it plays with the opponent. so one of my problems is I give my opponent chances to “get back”. cool against the lower bots for score, Not as cool against the top bots which might use that “wasted turn” of mine to turn the match.
Now on to finding possible code improvements: Here is what I do. I will play my bot against itself and view my matches using the replay viewer. Then I will analyze move for move and look if there wouldn’t have been a better move and I will check why it did not decide to make the move. This has helped me a bit in the past. For example using chess: “The perfect move is Knight to A5”. Oh look, it just moved a pawn. Why did it do that, Was its reasoning better than mine or did it have a flaw in its logic.
This so called observation is what lead to most of my “ideas”. I am already working on the bot that will break my existing entry. if I had my way I will finish it tonight. But then again, my “reference” bot ended third. So theres a rather high bar. But if I do not improve I can lose to any other player in the top 8 with a 50% 50% chance. And to me that is not good enough. And nothing is stopping them from improving. I mean, Every single bot can still develop.
My one and only strategy in developing my bot is to keep playing it against itself and trying to “see” a better strategy in replays. This is the trick I feel. You cannot implement a tactic that you cannot see. And you cannot see a tactic if you are not actually looking for one. By devising strategies against your “own” bot you are often able to build one that’s better, and if you repeat this process enough. Eventually your bot will get better. And often the one who does this most often will also be the one with the better bot.
Dont know if this will help, But trying to not deviate from the How do I build a better bot question.