- Main.py
- Controls the main game and any multiprocessing that will be created.
- Sim.py or MyGame.py
- Depending on if simulation is requested or a visual representation of the game is requested one of the two versions will be created.
- This will control the players and be the interface that will allow them to update throughout the game.
- Two versions of players:
- This would be the interface for any of the above models. All models have a similar structure: Initilization, functions to attack and use a shield, then an update function. The update function is called every turn and provides the player with the ability to move and when the time is correct the ability to attack.
- Players will all have equal health and speed. Damages are constant across the three attacks (short, mid range, and range) (These are also referred to as knife, fireball, and arrow)
- Players can move every turn, however they can only attack once every 30 turns, this is tracked using the variable currtime
- How many games would you like played at the same time? -- This corresponds to how many games do you want run in this generation and this number will be distributed via multiprocessing
- Enter the amount of generations to be played? -- This is how many generations will be played in total, you can think of the total amount of games to be this number and the first one multiplied together.
- Would you like to track trends? -- This will create a textual output of the programs that can be seen in the main directory
- Would you like to create graphical outputs? -- This will turn those trends into graphical output using matplotlib
- What type of simulation do you want for player N? -- This is how you set the players that will battle against each other
- Run Graphically? -- This will decide if the game will run visually or not, it runs much faster not in visual mode
- All useful constants such as speed, damage, health, etc. are kept in utils/constants.py
- The visual interpretation of the models has been on the back burner and the current most important thing is the creation of the models in a simulated version
- More information on the models and creation