Python Classwork: Number Guessing Game Write a "number guessing" game where the computer randomly generates a positive integer, and then the player is allowed to try to guess the number. After each guess, the computer should tell the player whether the guess was too high, too low, or just right (the correct number). At the start of the program, the player should be prompted to choose the lower and upper boundaries (the range from which the randomly-generated number will be chosen), with a maximum upper boundary of one million. The player should also be asked how many guesses are allowed (up to 20) before the computer reveals the chosen number (if not correctly guessed by the player). All player input should be positive integers, and the upper boundary must be larger than the lower boundary. Be sure to ask for the lower boundary first, then for the upper boundary, and then for the number of allowed guesses. Every time you ask the player to enter a guess, you should also tell the player how many allowed guesses remain. After each game is over, your program should give the player an opportunity to play another round using the same player-chosen values, but with a new computer- generated random number. Your program does not need to error trap for illegally-formatted player input (i.e., non-integers) or missing data (player presses ENTER without entering anything). However, your program does need to check for all out-of-bounds entries (see above) for all player-inputted values. If such a value is entered, your program should display an appropriate message and the player should be required to re-enter the value. If the player enters an out-of-range guess, make sure that guess does not cause the remaining number of allowed guesses to decrease. In your program you should create a separate function to get the three initial values from the player, a separate function to choose the random number that the player needs to guess, and a separate function with the main game loop (where the player enters guesses and is given feedback). If you wish, all other code may go into the main area of the program. For this assignment, the 'randint' function is the only function that you may import and use. You may use global variables in your program. An example run of my program is shown below. Your output does not need to look exactly like mine, but your program should function in the same manner as my program in accordance with the directions above. Example Program Run ------------------- Welcome to Dave's Number Guessing Game! Please enter a lower boundary (integer greater than zero and less than one million): -3 The lower boundary that you entered is out of range! Please enter a lower boundary (integer greater than zero and less than one million): 1000000 The lower boundary that you entered is out of range! Please enter a lower boundary (integer greater than zero and less than one million): 0 The lower boundary that you entered is out of range! Please enter a lower boundary (integer greater than zero and less than one million): 10 Please enter an upper boundary (integer greater than low bound and <= one million): 10 The upper boundary that you entered is out of range! Please enter an upper boundary (integer greater than low bound and <= one million): 1000001 The upper boundary that you entered is out of range! Please enter an upper boundary (integer greater than low bound and <= one million): 20 Please enter the number of guesses that should be allowed (positive integer <= 20): 21 The guesses allowed that you entered is out of range! Please enter the number of guesses that should be allowed (positive integer <= 20): 0 The guesses allowed that you entered is out of range! Please enter the number of guesses that should be allowed (positive integer <= 20): 3 You have 3 guesses left. Please guess an integer from 10 to 20: 15 Your guess was too low. You have 2 guesses left. Please guess an integer from 10 to 20: 21 Your guess was out-of-bounds...try again. You have 2 guesses left. Please guess an integer from 10 to 20: 9 Your guess was out-of-bounds...try again. You have 2 guesses left. Please guess an integer from 10 to 20: 18 Good job...you guessed the chosen number! Would you like to play again with the same parameters (y/n)? y You have 3 guesses left. Please guess an integer from 10 to 20: 15 Your guess was too high. You have 2 guesses left. Please guess an integer from 10 to 20: 13 Your guess was too high. You have 1 guesses left. Please guess an integer from 10 to 20: 11 Your guess was too low. You have run out of guesses! The chosen number was 12. Would you like to play again with the same parameters (y/n)? n