Transformers enojados Jenga
Este código simula un juego de Jenga, pero con un giro:los bloques son transformadores enojados que se atacan entre sí cuando son derribados.
Reglas:
* El juego comienza con una torre de bloques, cada bloque representa un transformador enojado.
* Los jugadores se turnan para quitar un bloque de la torre y colocarlo encima.
* Si un jugador derriba algún bloque, los transformadores enojados en esos bloques se atacan entre sí.
* El jugador que derribe a los transformadores más enojados pierde el juego.
Código:
```pitón
importar aleatoriamente
transformadores =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def construir_torre():
torre =[]
para i en el rango(5):
fila =[]
para j en el rango(3):
fila.append(elección.aleatoria(transformadores))
torre.append(fila)
torre de retorno
def remove_block(torre, jugador):
print("El turno del jugador {}".format(jugador))
mientras que Verdadero:
fila =int(entrada("Elija una fila (1-5):")) - 1
si fila <0 o fila>=5:
print("Fila no válida. Elija un número entre 1 y 5.")
continuar
columna =int(entrada("Elija una columna (1-3):")) - 1
si columna <0 o columna>=3:
print("Columna no válida. Elija un número entre 1 y 3.")
continuar
si torre[fila][columna] ==Ninguna:
print("No hay ningún bloque en esa posición. Elija una posición diferente.")
continuar
romper
bloque =torre[fila][columna]
torre[fila][columna] =Ninguna
bloque de retorno, fila, columna
ataque def (bloque1, bloque2):
print("{} ataca {}!".format(bloque1, bloque2))
si bloque1 =="Optimus Prime":
si bloque2 =="Megatron":
devolver "¡Optimus Prime gana!"
demás:
volver "¡Megatron gana!"
elif bloque1 =="Megatrón":
si bloque2 =="Optimus Prime":
volver "¡Megatron gana!"
demás:
devolver "¡Optimus Prime gana!"
demás:
si bloque1> bloque2:
devolver "¡{} gana!".formato(bloque1)
demás:
devolver "¡{} gana!".formato(bloque2)
def game_over(jugador1_puntuación, jugador2_puntuación):
imprimir ("¡Se acabó el juego!")
si jugador1_puntuación> jugador2_puntuación:
print("¡El jugador 1 gana!")
elif jugador2_puntuación> jugador1_puntuación:
print("¡El jugador 2 gana!")
demás:
imprimir("¡Empate!")
definición principal():
# Construye la torre
torre =construir_torre()
print("¡Torre construida!")
# jugadores
jugador1_puntuación =0
jugador2_puntuación =0
mientras que Verdadero:
# Turno del jugador 1
bloque1, fila1, columna1 =eliminar_bloque(torre, 1)
# Verificar ataques
si fila1> 0 y torre[fila1 - 1][columna1] !=Ninguna:
ataque(bloque1, torre[fila1 - 1][columna1])
jugador1_puntuación +=1
torre[fila1 - 1][columna1] =Ninguna
si fila1 <4 y torre[fila1 + 1][columna1]!=Ninguna:
ataque(bloque1, torre[fila1 + 1][columna1])
torre[fila1 - 1][columna1] =Ninguna
jugador1_puntuación +=1
si columna1> 0 y torre[fila1][columna