Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,54 +1,121 @@
|
|
1 |
-
import
|
2 |
-
import
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
else:
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
outputs=result_output,
|
47 |
-
live=True
|
48 |
-
)
|
49 |
-
|
50 |
-
return game_interface
|
51 |
-
|
52 |
-
# Avvia il gioco tramite Gradio
|
53 |
if __name__ == "__main__":
|
54 |
-
|
|
|
1 |
+
import tkinter as tk
|
2 |
+
from tkinter import messagebox
|
3 |
+
|
4 |
+
class HangmanGame:
|
5 |
+
def __init__(self, root):
|
6 |
+
self.root = root
|
7 |
+
self.root.title("Gioco dell'Impiccato")
|
8 |
+
self.root.geometry("400x400")
|
9 |
+
|
10 |
+
self.word_to_guess = ""
|
11 |
+
self.guessed_letters = []
|
12 |
+
self.remaining_attempts = 6
|
13 |
+
|
14 |
+
self.create_widgets()
|
15 |
+
|
16 |
+
def create_widgets(self):
|
17 |
+
self.title_label = tk.Label(self.root, text="Benvenuto al Gioco dell'Impiccato!", font=("Arial", 16))
|
18 |
+
self.title_label.pack(pady=10)
|
19 |
+
|
20 |
+
self.instruction_label = tk.Label(self.root, text="Questo gioco lo potrai giocare solo in locale con un tuo amico e familiare", font=("Arial", 10))
|
21 |
+
self.instruction_label.pack(pady=5)
|
22 |
+
|
23 |
+
self.word_entry_label = tk.Label(self.root, text="Inserisci una parola:", font=("Arial", 12))
|
24 |
+
self.word_entry_label.pack(pady=10)
|
25 |
+
|
26 |
+
self.word_input = tk.Entry(self.root, font=("Arial", 14), show="*", width=20)
|
27 |
+
self.word_input.pack(pady=10)
|
28 |
+
|
29 |
+
self.start_button = tk.Button(self.root, text="Inizia il gioco", command=self.start_game, font=("Arial", 14), width=20)
|
30 |
+
self.start_button.pack(pady=10)
|
31 |
+
|
32 |
+
self.word_display = tk.Label(self.root, text="", font=("Arial", 20, "bold"))
|
33 |
+
self.word_display.pack(pady=20)
|
34 |
+
|
35 |
+
self.guess_label = tk.Label(self.root, text="Inserisci una lettera o la risposta completa:", font=("Arial", 12))
|
36 |
+
self.guess_label.pack(pady=10)
|
37 |
+
|
38 |
+
self.guess_input = tk.Entry(self.root, font=("Arial", 14), width=20)
|
39 |
+
self.guess_input.pack(pady=10)
|
40 |
+
|
41 |
+
self.guess_button = tk.Button(self.root, text="Indovina", command=self.check_guess, font=("Arial", 14), width=20)
|
42 |
+
self.guess_button.pack(pady=10)
|
43 |
+
|
44 |
+
self.result_label = tk.Label(self.root, text="", font=("Arial", 12), fg="red")
|
45 |
+
self.result_label.pack(pady=10)
|
46 |
+
|
47 |
+
self.reset_button = tk.Button(self.root, text="Ricomincia", command=self.reset_game, font=("Arial", 14), width=20)
|
48 |
+
self.reset_button.pack(pady=10)
|
49 |
+
|
50 |
+
def start_game(self):
|
51 |
+
word = self.word_input.get().strip().upper()
|
52 |
+
if word and word.isalpha():
|
53 |
+
self.word_to_guess = word
|
54 |
+
self.guessed_letters = ["_"] * len(word)
|
55 |
+
self.remaining_attempts = 6
|
56 |
+
self.update_word_display()
|
57 |
+
self.word_input.delete(0, tk.END)
|
58 |
+
else:
|
59 |
+
messagebox.showerror("Errore", "Inserisci una parola valida (almeno un carattere).")
|
60 |
+
|
61 |
+
def update_word_display(self):
|
62 |
+
self.word_display.config(text=" ".join(self.guessed_letters))
|
63 |
+
|
64 |
+
def check_guess(self):
|
65 |
+
guess = self.guess_input.get().strip().upper()
|
66 |
+
self.guess_input.delete(0, tk.END)
|
67 |
+
|
68 |
+
if len(guess) > 1:
|
69 |
+
if guess == self.word_to_guess:
|
70 |
+
self.guessed_letters = list(self.word_to_guess)
|
71 |
+
self.update_word_display()
|
72 |
+
self.result_label.config(text="Complimenti! Hai indovinato la parola!")
|
73 |
+
self.disable_guessing()
|
74 |
+
else:
|
75 |
+
self.remaining_attempts -= 2
|
76 |
+
self.update_game_status()
|
77 |
+
else:
|
78 |
+
letter_found = False
|
79 |
+
for i in range(len(self.word_to_guess)):
|
80 |
+
if self.word_to_guess[i] == guess:
|
81 |
+
self.guessed_letters[i] = guess
|
82 |
+
letter_found = True
|
83 |
+
self.update_word_display()
|
84 |
+
|
85 |
+
if not letter_found:
|
86 |
+
self.remaining_attempts -= 1
|
87 |
+
|
88 |
+
self.update_game_status()
|
89 |
+
|
90 |
+
def update_game_status(self):
|
91 |
+
if self.remaining_attempts > 0:
|
92 |
+
self.result_label.config(text=f"Tentativi rimasti: {self.remaining_attempts}")
|
93 |
else:
|
94 |
+
self.result_label.config(text=f"Mi dispiace, hai esaurito i tentativi. La parola era: {self.word_to_guess}")
|
95 |
+
self.disable_guessing()
|
96 |
+
|
97 |
+
if "".join(self.guessed_letters) == self.word_to_guess:
|
98 |
+
self.result_label.config(text="Complimenti! Hai indovinato la parola!")
|
99 |
+
self.disable_guessing()
|
100 |
+
|
101 |
+
def disable_guessing(self):
|
102 |
+
self.guess_input.config(state=tk.DISABLED)
|
103 |
+
self.guess_button.config(state=tk.DISABLED)
|
104 |
+
|
105 |
+
def reset_game(self):
|
106 |
+
self.word_to_guess = ""
|
107 |
+
self.guessed_letters = []
|
108 |
+
self.remaining_attempts = 6
|
109 |
+
self.word_display.config(text="")
|
110 |
+
self.result_label.config(text="")
|
111 |
+
self.guess_input.config(state=tk.NORMAL)
|
112 |
+
self.guess_button.config(state=tk.NORMAL)
|
113 |
+
self.word_input.delete(0, tk.END)
|
114 |
+
|
115 |
+
def main():
|
116 |
+
root = tk.Tk()
|
117 |
+
game = HangmanGame(root)
|
118 |
+
root.mainloop()
|
119 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
if __name__ == "__main__":
|
121 |
+
main()
|