The goal is to allow a user to build every possible, unique, 6 man team from up to 40 selected players with an assigned salary and all team's "total salary" must fall within a salary cap. The end user must have the option of building these teams in stages.
Example:
Step 1: There are 40 players to choose from and the end user chooses 5 (# of players is the users choice) core players and wants to use 2 (# of players is the users choice) of them in every team that we need to generate. Using the 5 selected players, the script will find all possible unique combinations of 2 and store the 2 man team combinations for future reference and display the 2 man team combinations if the user decides to view the results of his/her core team members along with their assigned salaries and core team totals. We should also display the total number of unique 2 man teams generated.
Step2: The user selects 10 filler players (# of players is the users choice) from the remaining unused players list and wants every possible unique combination of 3 players. The script will find all possible unique combinations of 3 and store the 3 man team combinations for future reference and display the 3 man team combinations if the user decides to view the results of his/her filler team members along with their assigned salaries and filler team totals. We should also display the total number of unique 3 man teams generated.
Step 3: At this point, the script can find all possible unique group (core players and filler players) combinations to generate a number of 5 man teams, calculate the individual 5 man team salary totals and how much of the salary cap is left for the remaining player spot for each team. The end user can choose 1 more remaining "punt" player to have the script display all possible unique teams consisting of a 2 man core combination from step 1, and a 3 man filler combination from step 2, and the punt player. Or the user can choose to let the script build all possible unique 6 man teams using 1 core group from step 1 (2 players), 1 filler group from step 2 (3 players), and 1 unused remaining player that falls within the salary cap.
Once all possible unique 6 man teams have been generated, whether its during step 1 - 2 - or 3, the script will display all possible unique teams given the users input choices and have an option to generate and download an excel file or text file of all generated teams.