Language : Java
League : Legend
Rank : 23 top3 language
Its my first PM. 
Thank you CG for providing to us this completely unexpected contest. It was funny. Thanks especially to [@_SG_Sebastien].
Thanks to my work that left me a little strength for this contest. This doesn’t happen often.
Thanks to my simulation engine that it didn’t give me a lot of timeouts, as it used to be usually. Thanks [@Wala] and [@Neumann] for tips in [Fall Challenge 2020 - Feedbacks & Strategies - #57 by wala] and [[JAVA] JVM memory issues - #4 by Neumann]. Im not sure that it works, but I used similar code.
The rules are very confusing to understand.
Without Referee, it was very difficult to develop a correct simulation. I passed through a few dead ends, before i wrote, what need to me.
Initial bot
First version of my bot for full rules was heuristic and very simple:
- Make an app release if you don’t have bugs (Technical Debt);
- Do automated bonuses (8), if possible;
- Take bonuses to me at 6;
- Throw out the technical debt at 7;
- Go to nearest available zone.
I was very surprised that he got to the golden league without changes.
Final bot
My bot is BFS “one turn” simulation algorithm and some heuristic improvements.
I developed “lean” version in the beginning (min debts). And it couldn’t get past the golden league boss. Something went wrong and I realized that during the current vision I will never be able to pass it.
Sunday I spent on a new concept. It sounds “huak huak release new issue in production” in Russian.
Main idea: Technical debt doesn’t matter. Deadline comes in 8 months
(moves).
How will we release the fifth application? 2 automated skills + 2 automated bonuses and we haven’t problem.
Evaluation function looks like a first bot algorithm (in descending order of value):
- Make an app release + save better apps for fifth release + release applications that are convenient for my competitor (with skills which he automated);
- Take card 2 and play DR, if possible and score = 0;
- Do automated bonuses (need 2 only);
- Do most useful automated skills (if we have 2 automated bonuses);
- Take CI cards if possible;
- Go to nearest available zone.
I added some heuristic tweaks for release 3, 4 and 5 application. If score > 2, bot start to consider moves GIVE. Bot built release pipeline also.