„Metro” is a board game where you also need luck in addition to knowledge. Around the end of the game, a lucky draw can either make you a lot of points or deny your opponent from getting them. This is why we have to test the different versions of our artifical intelligence with the draw order always being the same, so we lower the impact of the randomness in our tests (and we have to run the same test on multiple random seeds and swap repeat the tests after swapping the two player).
When designing an artificial intelligence, we have to recognize the more important variables that affect the decision of our machine and we have to iterate through different values of these variables in our tests to see what gives us the best results.
If we want to make the best decision, we have to play through all the remaining possibilities in all the draws and chose the one that has the highest chance to reward us with a win. Since we have 60 cards, this requires too much calculations, so we have to find a different solution.
In our case, we had to make 2 decisions. One of them is to estimate the score for every player on a set board. The other one is to compare all the possibilities and choose whether we want to help ourselves get more points or deny points from the enemy.