Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PYTHON: Write a GUI class Game that implements a number guessing game. The GUI should start by choosing a random number between 1 and 100

PYTHON:

Write a GUI class Game that implements a number guessing game. The GUI should start by choosing a random number between 1 and 100 (using a function from the random module) and then opening up a GUI which allows the user to enter number guesses:

image text in transcribed

The GUI has an Entry widget for the user to type the number guess and a Button widget labeled "Enter" to enter the guess. The user should be able to enter guesses until he/she makes the correct guess. The GUI should keep track of the number of guesses it takes the user to reach the correct value. Your GUI should be user friendly and erase the guess each time the user presses the Enter button. This means that the user will not need to erase the old guess in order to enter a new one. Each time the user makes a guess, the GUI should indicate whether the user needs to guess higher or lower using a separate window. For example, the window showing that a guess of 50 was too high can be seen below:

image text in transcribed

If the guess is correct, a separate window should inform the user that she/he has guessed the number and display the number of guesses it took to get there. The following shows that window:

image text in transcribed

Further, the GUI should handle the cases where the user doesn't enter a number using exception handling. Invalid values shouldn't count toward the total number of guesses. Only valid numerical values should be counted. For example, suppose the user enters the following information:

image text in transcribed

When the user presses enter, the following window should be displayed:

image text in transcribed

After the user dismisses either the invalid number window or the incorrect guess window, the GUI should erase the text typed by the user and allow the user to enter a guess again:

image text in transcribed

Once the user has correctly guessed the value, the GUI should choose a new random value and allow the user to restart the game. This should be done by calling the new_game() method in the appropriate place in the event handler. You should start with the template provided in the template file. It shows the organization of the Game class, including the methods you are expected to write. The constructor has been implemented for you and shouldn't be changed unless you want to use grid instead of pack as your geometry manager. You should test your class by writing: Game().mainloop().

2. Develop a GUI that can be used to teach elementary school children addition and subtraction. The GUI contains two Entry widgets and a Button widget. At start up, the program will generate two single-digit pseudorandom numbers a and b and an operation op, which should be either addition or subtraction. Addition and subtraction should be equally likely to be chosen by your GUI, and the choice of the numbers should be independent of the choice of the operation. Do not in any way link the choice of the numbers and the operation. The functions found in the random module are helpful here. The expression a op b will be displayed in the first Entry widget, unless a is less than b and the operation is subtraction in which case b op a will be displayed. (We don't want the children to be confused by negative answers). Examples of expressions displayed could be 3 + 2 =, 4 + 7 =, 5 - 2 =, 3 - 3 =, etc. An expression like 2 - 6 = would not be displayed. The child will enter, in the second Entry widget, the result of evaluating the expression shown in the first Entry widget and click the Enter button. If the correct result is entered, a window should pop up indicating that the child got the answer

correct. The following shows a sample entry when you write Ed().mainloop() in the IDLE window:

image text in transcribed

Suppose the child types an incorrect answer into the rightmost Entry box:

image text in transcribed

When the child clicks the Enter button a message will pop up:

image text in transcribed

After that message box is dismissed the incorrect answer is cleared:

image text in transcribed

Once the child types the correct answer into the Entry:

image text in transcribed

And clicks Enter, then the pop up window with a positive message is displayed:

image text in transcribed

When this happens, the GUI should generate a new problem and display it for the child so that he/she can continue. This should continue indefinitely. An example is shown below:

image text in transcribed

Your GUI should recover from non-numeric entries. When the child types something that cannot be evaluated to a number, such as the following:

image text in transcribed

then the following pop-up window should display:

image text in transcribed

After this box is dismissed the invalid value should be cleared so that the child can try again. The problem should not be changed until the child has gotten the answer correct.

image text in transcribed

The constructor and make_widgets() method have been written for you and can be found in the template file uploaded to D2L. Do not change these methods. Instead you must write the new_problem() and evaluate() methods. The new_problem method generates a new arithmetic problem according to the rules described above and places the problem into the relevant entry. The evaluate() method is the handler for the button. It evaluates the child's answer entered into the second entry against the answer for the problem found in the first entry and takes the appropriate action based on the situation.

Enter your guess: Enter

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2015 Porto Portugal September 7 11 2015 Proceedings Part 2 Lnai 9285

Authors: Annalisa Appice ,Pedro Pereira Rodrigues ,Vitor Santos Costa ,Joao Gama ,Alipio Jorge ,Carlos Soares

1st Edition

3319235249, 978-3319235240

More Books

Students also viewed these Databases questions