This is the brain of our pods. It makes our pods "think" and "come up" with trajectory plans for the near future. To make it work, we need to try a lot of different trajectories and evaluate the outcomes they provide to pick the trajectory with the best score. Trajectory is defined with a list of game moves for the next N turns. We can easily generate trajectories randomly and then simulate the game with them:
Solution sol = new Solution();
float score = sol->RandomizeAndEvaluate(pods);
then just repeat this 10 000 times more and print the best solution found:
static public void DoRandomSearch(Pod[] pods)
{
Solution best = new Solution();
float scoreBest = best->RandomizeAndEvaluate(pods);
for(int i = 0; i < 10000; i++)
{
Solution sol = new Solution();
float score = sol->RandomizeAndEvaluate(pods);
if (score > scoreBest)
{
scoreBest = score;
best = sol;
}
}
best.Print();
}
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.