Description
# Background
For this exercise we are going to create a simple game. This game will have players that will race against each other.However, in order to make this game more interesting, we will create two kinds of players which will both move differently based on the functionality of its class.
# Instructions
– Write a script called **players.py**. This script should contain the following:
– Write a class called **Player**
– Write an **__init__()** method. This method should have two parameters, self and name. This method should to the following:
– Create **name** and a position attributes. Position will be represented by a number. The position represents how many miles they are along a trail
– Write a **RedPlayer** class and a **BluePlayer** class. Both of these classes should be subclasses of Player. These classes should do the following:
– Write a walk method that will change the position attribute by a certain amount given the subclass.
– When a **RedPlayer** walks, they should move forward between 1 and 10 steps. A **BluePlayer** should move forward between 4 and 8 steps. The actual number of steps should be randomly generated within the given range. (hint. You want to use the random library which contains a randrange function. This function generates random numbers based on a the range that you define)
– Write a **play_game** function. This function should not have any parameters but it should do the following:
– It should create a list that will contain 3 instances of **BluePlayer** and 3 instances of **RedPlayer**. This function should not use inputs to assign names, instead, it should dynamically create names while it creates instances.
– Ex. BluePlayer1, BluePlayer2, etc.
– Hint: Use a while loop to handle this kind of problem.
– Iterate over the list, for each instance in the list invoke the walk method. This will cause the player to walk a certain amount of steps. Count how many times you iterate over the whole list.
– Check the **position** of the instance and if the **position** is over 100 on any player return the **name** of the instance and the amount of times that you iterated over the list as a tuple.
– Write docstrings for each method. (**__init__()** doesn’t need a docstring.)
– Make an **if __name__ == “__main__”:** statement in which you call the play_game() function.
– Unpack the returned value into two variables and print them both for the user to see the winner and how many turns it took for the game to finish.
– Write a script called **marathon.py**. This script should contain the following:
– import **players.py**
– Re-write the **play_game** function. The difference here is that that instead of checking if the position of any instance is over 100, we will check if the position of any instance is over 1000.
– Make an **if __name__ == “__main__”:** statement in which:
– You call the **play_game()** function that is in this script and print the result.
– You call the **play_game()** function that is in the namespace of the module that you imported (**players.py**) and print the result.
# Note
Run the marathon script multiple times. Observe who the winners are when you run the simulation multiple times under the different conditions (pos >= 100 vs pos >= 1000)



