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