|
18 | 18 | descrizione = "Cosa farà HARRY?" |
19 | 19 | attesa_input = True |
20 | 20 | gioco_attivo = True |
| 21 | +opzioni_correnti = None # Variabile per memorizzare gli incantesimi ad ogni turno |
21 | 22 |
|
22 | 23 | # Creazione degli sprite |
23 | 24 | harry_sprite = Actor("harry", (200, 320)) |
|
31 | 32 | r"C:\Users\alema\Desktop\pythonbiella\LearningPythonWithGames\game11\spells.csv" |
32 | 33 | ) |
33 | 34 |
|
34 | | - |
35 | 35 | def ottieni_opzioni(personaggio): |
36 | 36 | """Filtra il DataFrame per ottenere solo gli incantesimi di un personaggio specifico.""" |
37 | 37 | return incantesimi_df.filter(pl.col("character") == personaggio) |
@@ -148,26 +148,24 @@ def fase_voldemort(): |
148 | 148 |
|
149 | 149 |
|
150 | 150 | def prepara_harry(): |
151 | | - """Ripristina il menu per il turno del giocatore.""" |
152 | | - global messaggio, descrizione, attesa_input |
| 151 | + global messaggio, descrizione, attesa_input, opzioni_correnti |
153 | 152 | messaggio = "Cosa farà HARRY?" |
154 | 153 | descrizione = "Scegli un incantesimo..." |
| 154 | + opzioni_correnti = ottieni_opzioni("Harry").sample(4) |
155 | 155 | attesa_input = True |
156 | 156 |
|
157 | | - |
158 | 157 | def on_mouse_down(pos): |
159 | 158 | """Gestisce il click del mouse sulle opzioni degli incantesimi.""" |
160 | 159 | global attesa_input |
161 | 160 |
|
162 | | - if gioco_attivo and attesa_input: |
163 | | - opzioni = ottieni_opzioni("Harry")[:4] |
164 | | - for i in range(len(opzioni)): |
| 161 | + if gioco_attivo and attesa_input and opzioni_correnti is not None: |
| 162 | + for i in range(len(opzioni_correnti)): |
165 | 163 | # Calcolo dinamico della posizione dei rettangoli cliccabili (2x2) |
166 | 164 | x = 40 + (i % 2) * 380 |
167 | 165 | y = 440 + (i // 2) * 60 |
168 | 166 | if Rect((x, y), (350, 50)).collidepoint(pos): |
169 | 167 | attesa_input = False |
170 | | - esegui_mossa("Harry", "Voldemort", opzioni, i) |
| 168 | + esegui_mossa("Harry", "Voldemort", opzioni_correnti, i) |
171 | 169 |
|
172 | 170 | # Turno di Voldemort dopo 3 secondi se non ha perso |
173 | 171 | if gioco_attivo: |
@@ -259,14 +257,14 @@ def disegna_barra_stato(nome, valore, x, y): |
259 | 257 |
|
260 | 258 |
|
261 | 259 | def disegna_menu(): |
262 | | - """Disegna le 4 opzioni di incantesimo cliccabili per Harry.""" |
263 | | - opzioni = ottieni_opzioni("Harry")[:4] |
264 | | - for i in range(len(opzioni)): |
265 | | - x, y = 40 + (i % 2) * 380, 440 + (i // 2) * 60 |
266 | | - screen.draw.rect(Rect((x, y), (350, 50)), "white") |
267 | | - screen.draw.text( |
268 | | - f"> {opzioni[i, 'spell'].upper()}", (x + 20, y + 15), fontsize=30 |
269 | | - ) |
270 | | - |
| 260 | + """Disegna le opzioni precedentemente scelte in prepara_harry.""" |
| 261 | + if opzioni_correnti is not None: |
| 262 | + for i in range(len(opzioni_correnti)): |
| 263 | + x, y = 40 + (i % 2) * 380, 440 + (i // 2) * 60 |
| 264 | + screen.draw.rect(Rect((x, y), (350, 50)), "white") |
| 265 | + screen.draw.text( |
| 266 | + f"> {opzioni_correnti[i, 'spell'].upper()}", (x + 20, y + 15), fontsize=30 |
| 267 | + ) |
271 | 268 |
|
| 269 | +prepara_harry() |
272 | 270 | pgzrun.go() |
0 commit comments