adds replay to guess the number gui
This commit is contained in:
		
							parent
							
								
									d4c452f6c7
								
							
						
					
					
						commit
						5368c5023f
					
				|  | @ -326,6 +326,82 @@ if __name__ == "__main__": | ||||||
| ``` | ``` | ||||||
| </details> | </details> | ||||||
| 
 | 
 | ||||||
|  | <details> | ||||||
|  | <summary>With replay function</summary> | ||||||
|  | 
 | ||||||
|  | ```python | ||||||
|  | import tkinter as tk | ||||||
|  | import random | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Application(tk.Tk): | ||||||
|  |     def __init__(self): | ||||||
|  |         tk.Tk.__init__(self) | ||||||
|  |         self.title("hello world") | ||||||
|  |         self.geometry("500x400") | ||||||
|  |         self.resizable(0, 0) | ||||||
|  | 
 | ||||||
|  |         self.header = tk.Label(text="I have a number in mind...") | ||||||
|  |         self.header.grid(column=0, row=0, sticky=tk.W) | ||||||
|  | 
 | ||||||
|  |         self.question = tk.Label(self, text="What's your guess?") | ||||||
|  |         self.question.grid(column=0, row=1, sticky=tk.W) | ||||||
|  | 
 | ||||||
|  |         self.input = tk.Entry(self) | ||||||
|  |         self.input.grid(column=1, row=1, sticky=tk.W) | ||||||
|  | 
 | ||||||
|  |         self.button = tk.Button(self, text="check", command=self.clicked) | ||||||
|  |         self.button.grid(column=0, row=2, sticky=tk.W) | ||||||
|  | 
 | ||||||
|  |         self.output = tk.Label(self, text="...") | ||||||
|  |         self.output.grid(column=1, row=2, sticky=tk.W) | ||||||
|  | 
 | ||||||
|  |         self.init_new_game() | ||||||
|  | 
 | ||||||
|  |     def _is_entry_digit(self): | ||||||
|  |         number = self.input.get() | ||||||
|  |         if number.isdigit(): | ||||||
|  |             number = int(number) | ||||||
|  |             return number | ||||||
|  | 
 | ||||||
|  |     def compare_numbers(self): | ||||||
|  |         number = self._is_entry_digit() | ||||||
|  |         if not number: | ||||||
|  |             msg = "numbers please..." | ||||||
|  |         else: | ||||||
|  |             if number < self.number: | ||||||
|  |                 msg = "my number is bigger" | ||||||
|  |             elif number > self.number: | ||||||
|  |                 msg = "my number is smaller" | ||||||
|  |             elif number == self.number: | ||||||
|  |                 msg = "bingo!" | ||||||
|  |                 self.won = True | ||||||
|  |                 self.button.config(text="play again!") | ||||||
|  |         self.output.config(text=msg) | ||||||
|  | 
 | ||||||
|  |     def init_new_game(self): | ||||||
|  |         self.won = False | ||||||
|  |         self.number = random.randint(0, 100) | ||||||
|  |         print(self.number) | ||||||
|  |         self.button.config(text="check") | ||||||
|  |         self.output.config(text="") | ||||||
|  |         self.input.delete(0, 'end') | ||||||
|  | 
 | ||||||
|  |     def clicked(self): | ||||||
|  |         if self.won: | ||||||
|  |             self.init_new_game() | ||||||
|  |         else: | ||||||
|  |             self.compare_numbers() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if __name__ == "__main__": | ||||||
|  |     app = Application() | ||||||
|  |     app.mainloop() | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | </detail> | ||||||
|  | 
 | ||||||
| ## MVC design pattern | ## MVC design pattern | ||||||
| 
 | 
 | ||||||
| A simple console only MVC. | A simple console only MVC. | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue