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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -23
app.py CHANGED
@@ -1,26 +1,74 @@
1
  import gradio as gr
2
- import random
3
-
4
- # Parole per il gioco
5
- words = ['python', 'huggingface', 'hangman', 'gradio', 'machinelearning']
6
- word_to_guess = random.choice(words)
7
- guessed_letters = []
8
- incorrect_guesses = 0
9
- max_incorrect_guesses = 6
10
-
11
- def play_game(letter):
12
- global word_to_guess, guessed_letters, incorrect_guesses
13
- if letter in word_to_guess and letter not in guessed_letters:
14
- guessed_letters.append(letter)
15
- else:
16
- incorrect_guesses += 1
17
- display_word = ''.join([char if char in guessed_letters else '_' for char in word_to_guess])
18
- if incorrect_guesses >= max_incorrect_guesses:
19
- return f"You lost! The word was {word_to_guess}. Try again!"
20
- elif '_' not in display_word:
21
- return f"You won! The word was {word_to_guess}. Great job!"
22
- return display_word
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  # Interfaccia Gradio
25
- interface = gr.Interface(fn=play_game, inputs="text", outputs="text", live=True)
26
- interface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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()