Basic simulation and evaluation
MadKnight
17.4K views
Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Random search
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();
}
Open Source Your Knowledge: become a Contributor and help others learn. Create New Content