ServerX commited on
Commit
30d37ad
·
verified ·
1 Parent(s): 08fad8c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -70
app.py CHANGED
@@ -1,74 +1,54 @@
1
  import gradio as gr
 
2
 
3
- # Logica del gioco Impiccato
4
- class HangmanGame:
5
- def __init__(self):
6
- self.reset_game()
7
 
8
- def start_game(self, word):
9
- self.word_to_guess = word.upper()
10
- self.guessed_letters = ["_"] * len(self.word_to_guess)
11
- self.remaining_attempts = 6
12
- return self.display_word()
13
-
14
- def guess(self, letter):
15
- letter = letter.upper()
16
- if len(letter) > 1:
17
- if letter == self.word_to_guess:
18
- self.guessed_letters = list(self.word_to_guess)
19
- return "Complimenti! Hai indovinato la parola!"
20
- else:
21
- self.remaining_attempts -= 2
22
- else:
23
- found_letter = False
24
- for i in range(len(self.word_to_guess)):
25
- if self.word_to_guess[i] == letter:
26
- self.guessed_letters[i] = letter
27
- found_letter = True
28
- if not found_letter:
29
- self.remaining_attempts -= 1
30
-
31
- return self.display_word()
32
-
33
- def display_word(self):
34
- return " ".join(self.guessed_letters), f"Tentativi rimasti: {self.remaining_attempts}"
35
-
36
- def reset_game(self):
37
- self.word_to_guess = ''
38
- self.guessed_letters = []
39
- self.remaining_attempts = 6
40
-
41
-
42
- game = HangmanGame()
43
-
44
- # Funzioni Gradio per interagire
45
- def start_game(word):
46
- return game.start_game(word)
47
-
48
- def guess(letter):
49
- return game.guess(letter)
50
-
51
- def reset():
52
- game.reset_game()
53
- return "", "Tentativi rimasti: 6"
54
-
55
- # Interfaccia Gradio
56
- with gr.Blocks() as demo:
57
- gr.Markdown("## Benvenuto al Gioco dell'Impiccato!")
58
-
59
- word_input = gr.Textbox(label="Inserisci una parola", type="str")
60
- start_button = gr.Button("Inizia il gioco")
61
 
62
- word_display = gr.Textbox(label="Parola da indovinare", interactive=False)
63
- guess_input = gr.Textbox(label="Inserisci una lettera", type="str")
64
- guess_button = gr.Button("Indovina")
65
-
66
- result_display = gr.Textbox(label="Risultato", interactive=False)
67
- reset_button = gr.Button("Ricomincia")
68
-
69
- start_button.click(start_game, inputs=word_input, outputs=[word_display, result_display])
70
- guess_button.click(guess, inputs=guess_input, outputs=[word_display, result_display])
71
- reset_button.click(reset, outputs=[word_display, result_display])
72
-
73
- # Esegui l'app Gradio su Hugging Face
74
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()