Trasformatori arrabbiati Jenga
Questo codice simula un gioco di Jenga, ma con una svolta:i blocchi sono trasformatori arrabbiati che si attaccano a vicenda quando vengono rovesciati.
Regole:
* Il gioco inizia con una torre di blocchi, ciascun blocco rappresenta un trasformatore arrabbiato.
* I giocatori, a turno, rimuovono un blocco dalla torre e lo posizionano in cima.
* Se un giocatore fa cadere un blocco, i trasformatori arrabbiati su quei blocchi si attaccano a vicenda.
* Il giocatore che fa cadere i trasformatori più arrabbiati perde la partita.
Codice:
```pitone
importare casuale
trasformatori =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def build_torre():
torre =[]
per i nell'intervallo(5):
riga =[]
per j nell'intervallo(3):
riga.append(random.choice(trasformatori))
torre.append(riga)
torre di ritorno
def rimuovi_blocco(torre, giocatore):
print("Turno del giocatore {}".format(giocatore))
mentre Vero:
riga =int(input("Scegli una riga (1-5):")) - 1
se riga <0 o riga>=5:
print("Riga non valida. Scegli un numero compreso tra 1 e 5.")
continuare
colonna =int(input("Scegli una colonna (1-3):")) - 1
se colonna <0 o colonna>=3:
print("Colonna non valida. Scegli un numero compreso tra 1 e 3.")
continuare
if torre[riga][colonna] ==Nessuno:
print("Non c'è nessun blocco in quella posizione. Scegli una posizione diversa.")
continuare
rottura
blocco =torre[riga][colonna]
torre[riga][colonna] =Nessuno
restituisce blocco, riga, colonna
def attacco(blocco1, blocco2):
print("{} attacca {}!".format(blocco1, blocco2))
se blocco1 =="Optimus Prime":
if blocco2 =="Megatron":
return "Optimus Prime vince!"
altro:
ritorna "Megatron vince!"
elif blocco1 =="Megatron":
se blocco2 =="Optimus Prime":
ritorna "Megatron vince!"
altro:
return "Optimus Prime vince!"
altro:
se blocco1> blocco2:
return "{} vince!".format(blocco1)
altro:
return "{} vince!".format(blocco2)
def game_over(punteggio_giocatore1, punteggio_giocatore2):
print("Gioco finito!")
se punteggio_giocatore1> punteggio_giocatore2:
print("Il giocatore 1 vince!")
elif punteggio_giocatore2> punteggio_giocatore1:
print("Il giocatore 2 vince!")
altro:
print("Pareggio!")
def principale():
# Costruisci la torre
torre =costruisci_torre()
print("Torre costruita!")
# Giocatori
giocatore1_punteggio =0
giocatore2_punteggio =0
mentre Vero:
# Turno del giocatore 1
blocco1, riga1, colonna1 =rimuovi_blocco(torre, 1)
# Controlla gli attacchi
se riga1> 0 e torre[riga1 - 1][colonna1] !=Nessuno:
attacco(blocco1, torre[riga1 - 1][colonna1])
giocatore1_punteggio +=1
torre[riga1 - 1][colonna1] =Nessuno
se riga1 <4 e torre[riga1 + 1][colonna1] !=Nessuno:
attacco(blocco1, torre[riga1 + 1][colonna1])
torre[riga1 - 1][colonna1] =Nessuno
giocatore1_punteggio +=1
se colonna1> 0 e torre[riga1][colonna