ServerX commited on
Commit
997ea94
·
verified ·
1 Parent(s): 30d37ad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +119 -52
app.py CHANGED
@@ -1,54 +1,121 @@
1
- import gradio as gr
2
- import random
3
-
4
- # Lista di parole da indovinare
5
- parole = ["PYTHON", "GRADIO", "PROGRAMMAZIONE", "COMPUTER", "INTELLIGENZA"]
6
-
7
- # Funzione per avviare il gioco
8
- def start_game(parola, guess):
9
- parola_da_indovinare = parola.upper() # Parola da indovinare
10
- tentativi_rimasti = 6 # Numero di tentativi iniziali
11
- lettere_indovinate = ["_"] * len(parola_da_indovinare) # Lista delle lettere indovinate
12
-
13
- # Verifica se il guess è giusto
14
- if len(guess) == 1:
15
- if guess.upper() in parola_da_indovinare:
16
- for i in range(len(parola_da_indovinare)):
17
- if parola_da_indovinare[i] == guess.upper():
18
- lettere_indovinate[i] = guess.upper()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  else:
20
- tentativi_rimasti -= 1
21
- elif len(guess) > 1 and guess.upper() == parola_da_indovinare:
22
- lettere_indovinate = list(parola_da_indovinare) # Parola indovinata completamente
23
- else:
24
- tentativi_rimasti -= 1 # Penalizzazione per un indovinato errato
25
-
26
- # Verifica se il gioco è finito
27
- if "_" not in lettere_indovinate:
28
- risultato = "Complimenti! Hai indovinato la parola!"
29
- elif tentativi_rimasti <= 0:
30
- risultato = f"Mi dispiace, hai esaurito i tentativi. La parola era: {parola_da_indovinare}"
31
- else:
32
- risultato = f"Tentativi rimasti: {tentativi_rimasti} | Parola: {' '.join(lettere_indovinate)}"
33
-
34
- return risultato
35
-
36
- # Creazione dell'interfaccia grafica con Gradio
37
- def gradio_game():
38
- parola = random.choice(parole) # Scegli una parola random dalla lista
39
- parola_input = gr.Textbox(label="Parola da Indovinare", value=parola, type="text", visible=False)
40
- guess_input = gr.Textbox(label="Indovina una lettera o la parola completa", type="text")
41
- result_output = gr.Textbox(label="Risultato", interactive=False)
42
-
43
- game_interface = gr.Interface(
44
- fn=start_game,
45
- inputs=[parola_input, guess_input],
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
- gradio_game().launch()
 
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()