Angry Transformers Jenga
Tento kód simuluje hru Jenga, ale s obratem:bloky jsou rozzlobené transformátory, které na sebe útočí, když je někdo převrhne.
Pravidla:
* Hra začíná věží bloků, přičemž každý blok představuje rozzlobeného transformátoru.
* Hráči se střídají v odstraňování jednoho bloku z věže a jeho umístění navrch.
* Pokud hráč převrhne nějaké bloky, rozzlobení transformátory na těchto blocích na sebe zaútočí.
* Hráč, který porazí nejvíce naštvané transformátory, prohrává hru.
Kód:
```python
importovat náhodně
transformátory =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def build_tower():
věž =[]
pro i v rozsahu (5):
řádek =[]
pro j v rozsahu(3):
row.append(random.choice(transformers))
věž.připojit (řádek)
návratová věž
def remove_block(věž, přehrávač):
print("Na řadě je hráč {}".format(player))
zatímco pravda:
row =int(input("Vyberte řádek (1-5):")) - 1
pokud řádek <0 nebo řádek>=5:
print("Neplatný řádek. Vyberte číslo mezi 1 a 5.")
pokračovat
sloupec =int(input("Vyberte sloupec (1-3):")) - 1
pokud sloupec <0 nebo sloupec>=3:
print("Neplatný sloupec. Vyberte číslo mezi 1 a 3.")
pokračovat
if věž[řádek][sloupec] ==Žádný:
print("Na této pozici není žádný blok. Vyberte prosím jinou pozici.")
pokračovat
přerušení
blok =věž[řada][sloupec]
věž[řádek][sloupec] =Žádný
návratový blok, řádek, sloupec
def attack(blok1, blok2):
print("{} útočí na {}!".format(blok1, blok2))
if block1 =="Optimus Prime":
if block2 =="Megatron":
return "Optimus Prime vyhrává!"
jiný:
return "Megatron vyhrává!"
elif block1 =="Megatron":
if block2 =="Optimus Prime":
return "Megatron vyhrává!"
jiný:
return "Optimus Prime vyhrává!"
jiný:
pokud blok1> blok2:
návrat "{} vyhrává!".format(blok1)
jiný:
návrat "{} vyhrává!".format(blok2)
def game_over(player1_score, player2_score):
tisk ("Konec hry!")
pokud hráč1_skóre> hráč2_skóre:
tisk ("Hráč 1 vyhrává!")
elif player2_score> player1_score:
tisk ("Hráč 2 vyhrává!")
jiný:
tisk ("kravata!")
def main():
# Postavte věž
věž =build_tower()
tisk ("Věž postavena!")
# Hráči
player1_score =0
hráč2_skóre =0
zatímco pravda:
# Hráč 1 je na tahu
blok1, řádek1, sloupec1 =odstranit_blok(věž, 1)
# Zkontrolujte útoky
pokud řádek1> 0 a věž[řádek1 - 1][sloupec1] !=Žádný:
útok(blok1, věž[řada1 - 1][sloupec1])
hráč1_skóre +=1
věž[řádek1 - 1][sloupec1] =Žádný
pokud řádek1 <4 a věž[řádek1 + 1][sloupec1] !=Žádný:
útok(blok1, věž[řada1 + 1][sloupec1])
věž[řádek1 - 1][sloupec1] =Žádný
hráč1_skóre +=1
pokud sloupec1> 0 a věž[řádek1][sloupec