Transformateurs en colère Jenga
Ce code simule un jeu de Jenga, mais avec une particularité :les blocs sont des transformateurs en colère qui s'attaquent les uns les autres lorsqu'ils sont renversés.
Règles :
* Le jeu commence avec une tour de blocs, chaque bloc représentant un transformateur en colère.
* À tour de rôle, les joueurs retirent un bloc de la tour et le placent au sommet.
* Si un joueur renverse des blocs, les transformateurs en colère sur ces blocs s'attaquent les uns les autres.
* Le joueur qui renverse les transformateurs les plus en colère perd la partie.
Code :
```python
importer au hasard
transformateurs =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def build_tower() :
tour =[]
pour moi dans la plage (5):
ligne =[]
pour j dans la plage (3):
row.append (random.choice (transformers))
tour.append (ligne)
tour de retour
def remove_block (tour, joueur):
print("Le tour du joueur {}".format(joueur))
tandis que Vrai :
row =int(input("Choisissez une ligne (1-5) :")) - 1
si ligne <0 ou ligne>=5 :
print("Ligne invalide. Veuillez choisir un nombre entre 1 et 5.")
continuer
column =int(input("Choisissez une colonne (1-3) :")) - 1
si colonne <0 ou colonne>=3 :
print("Colonne invalide. Veuillez choisir un nombre entre 1 et 3.")
continuer
si tour[ligne][colonne] ==Aucun :
print("Il n'y a aucun bloc à cette position. Veuillez choisir une position différente.")
continuer
casser
bloc =tour[ligne][colonne]
tour[ligne][colonne] =Aucun
retourner le bloc, la ligne, la colonne
attaque def (bloc1, bloc2) :
print("{} attaques {}!".format(block1, block2))
si block1 =="Optimus Prime":
si block2 =="Mégatron":
return "Optimus Prime gagne !"
autre:
return "Megatron gagne!"
elif block1 =="Mégatron":
si block2 =="Optimus Prime":
return "Megatron gagne!"
autre:
return "Optimus Prime gagne !"
autre:
si bloc1> bloc2 :
return "{} gagne!".format(block1)
autre:
return "{} gagne!".format(block2)
def game_over (player1_score, player2_score) :
print("Jeu terminé !")
si player1_score> player2_score :
print("Le joueur 1 gagne !")
elif player2_score> player1_score :
print("Le joueur 2 gagne !")
autre:
print("Cravate!")
def main() :
# Construisez la tour
tour =build_tower()
print("Tour construite!")
# Joueurs
joueur1_score =0
joueur2_score =0
tandis que Vrai :
# C'est le tour du joueur 1
bloc1, ligne1, colonne1 =remove_block(tour, 1)
# Vérifier les attaques
si row1> 0 et tower[row1 - 1][column1] !=Aucun :
attaque(bloc1, tour[ligne1 - 1][colonne1])
joueur1_score +=1
tour[row1 - 1][column1] =Aucun
si row1 <4 et tower[row1 + 1][column1] !=Aucun :
attaque(bloc1, tour[ligne1 + 1][colonne1])
tour[row1 - 1][column1] =Aucun
joueur1_score +=1
si colonne1> 0 et tour[ligne1][colonne