This team is looking for
In this project we examine training a team with a few assumptions. The team is made of 4 types of players and each player has 3 skills. The type of player learns equally, regardless of the individual, so we only need to track the skills across the team. This problem is difficult because each time you use a drill, it loses some effectiveness and becomes less useful for further skill enhancement. You must keep track of state across the run of the program of the number of times all drills are used and also check to see which drill gets you closest to your goal. In a counterintuitive solution, we have implemented a system to check how far you are on average, should you choose a particular drill, when compared to using a drill's peers, to see which will get you closer (on average) to your goal. At the end, we check to see which of the drills gives the best performance for your most highly rated skills, and give you the best drill that will still make your team meet the minimum skill level requirements. This optimizes time, but doesn't forget about the fact that you value some skills over others. This is not as perfect as the ideal solution, but prevents it from becoming wildly computation hungry, as this problem is factorial in nature.