Angry Transformers Jenga
Den här koden simulerar ett Jenga-spel, men med en twist:blocken är arga transformatorer som attackerar varandra när de blir välta.
Regler:
* Spelet börjar med ett torn av block, varje block representerar en arg transformator.
* Spelare turas om att ta bort ett block från tornet och placera det ovanpå.
* Om en spelare välter några block, attackerar de arga transformatorerna på dessa block varandra.
* Spelaren som slår över de mest arga transformatorerna förlorar spelet.
Kod:
``` python
importera slumpmässigt
transformatorer =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def build_tower():
torn =[]
för i inom intervallet(5):
rad =[]
för j i intervallet(3):
row.append(random.choice(transformatorer))
tower.append(rad)
återvända tornet
def remove_block(torn, spelare):
print("Spelare {}s tur".format(spelare))
medan sant:
rad =int(input("Välj en rad (1-5):")) - 1
om rad <0 eller rad>=5:
print("Ogiltig rad. Välj ett tal mellan 1 och 5.")
fortsätta
kolumn =int(input("Välj en kolumn (1-3):")) - 1
om kolumn <0 eller kolumn>=3:
print("Ogiltig kolumn. Välj ett tal mellan 1 och 3.")
fortsätta
if tower[rad][kolumn] ==Ingen:
print("Det finns inget block i den positionen. Välj en annan position.")
fortsätta
bryta
block =torn[rad][kolumn]
tower[rad][kolumn] =Ingen
returnera block, rad, kolumn
def attack(block1, block2):
print("{} attackerar {}!".format(block1, block2))
om block1 =="Optimus Prime":
om block2 =="Megatron":
returnera "Optimus Prime vinner!"
annan:
returnera "Megatron vinner!"
elif block1 =="Megatron":
om block2 =="Optimus Prime":
returnera "Megatron vinner!"
annan:
returnera "Optimus Prime vinner!"
annan:
om block1> block2:
returnera "{} vinner!".format(block1)
annan:
returnera "{} vinner!".format(block2)
def game_over(spelare1_score, player2_score):
print("Spelet slut!")
om player1_score> player2_score:
print("Spelare 1 vinner!")
elif player2_score> player1_score:
print("Spelare 2 vinner!")
annan:
print("Slips!")
def main():
# Bygg tornet
torn =build_tower()
print("Tornet byggt!")
# Spelare
player1_score =0
player2_score =0
medan sant:
# Spelare 1:s tur
block1, rad1, kolumn1 =remove_block(torn, 1)
# Kontrollera efter attacker
om rad1> 0 och torn[rad1 - 1][kolumn1] !=Ingen:
attack(block1, torn[rad1 - 1][kolumn1])
player1_score +=1
torn[rad1 - 1][kolumn1] =Ingen
om rad1 <4 och torn[rad1 + 1][kolumn1] !=Inga:
attack(block1, torn[rad1 + 1][kolumn1])
torn[rad1 - 1][kolumn1] =Ingen
player1_score +=1
om kolumn1> 0 och torn[rad1][kolumn