Angry Transformers Jenga
Този код симулира игра на Jenga, но с обрат:блоковете са ядосани трансформатори, които се атакуват един друг, когато бъдат съборени.
Правила:
* Играта започва с кула от блокове, като всеки блок представлява ядосан трансформатор.
* Играчите се редуват да премахват един блок от кулата и да го поставят отгоре.
* Ако играч събори блокове, ядосаните трансформатори на тези блокове се атакуват един друг.
* Играчът, който събори най-ядосаните трансформатори, губи играта.
Код:
``` питон
произволен импорт
transformers =["Optimus Prime", "Megatron", "Bumblebee", "Starscream", "Soundwave", "Shockwave"]
def build_tower():
кула =[]
за i в диапазон (5):
ред =[]
за j в диапазон (3):
row.append(random.choice(transformers))
tower.append(ред)
кула за връщане
def remove_block(кула, играч):
print("Редът на играч {}".format(player))
докато е вярно:
ред =int(вход("Изберете ред (1-5):")) - 1
ако ред <0 или ред>=5:
print("Невалиден ред. Моля, изберете число между 1 и 5.")
продължи
колона =int(вход("Изберете колона (1-3):")) - 1
ако колона <0 или колона>=3:
print("Невалидна колона. Моля, изберете число между 1 и 3.")
продължи
ако кула[ред][колона] ==Няма:
print("В тази позиция няма блок. Моля, изберете друга позиция.")
продължи
прекъсвам
блок =кула[ред][колона]
кула[ред][колона] =Няма
връща блок, ред, колона
def атака (блок1, блок2):
print("{} атакува {}!".format(block1, block2))
if block1 =="Optimus Prime":
if block2 =="Megatron":
return "Оптимус Прайм печели!"
иначе:
връщане "Мегатрон печели!"
elif block1 =="Мегатрон":
if block2 =="Оптимус Прайм":
връщане "Мегатрон печели!"
иначе:
return "Оптимус Прайм печели!"
друго:
ако блок1> блок2:
връща "{} печели!".format(block1)
иначе:
връща "{} печели!".format(block2)
def game_over(player1_score, player2_score):
print("Играта приключи!")
ако player1_score> player2_score:
print("Играч 1 печели!")
elif player2_score> player1_score:
print("Играч 2 печели!")
иначе:
print("Вратовръзка!")
def main():
# Постройте кулата
кула =build_tower()
print("Построена кула!")
# Играчи
играч1_резултат =0
играч2_резултат =0
докато е вярно:
# Ред на играч 1
блок1, ред1, колона1 =премахване_блок(кула, 1)
# Проверете за атаки
ако ред1> 0 и кула[ред1 - 1][колона1] !=Няма:
атака (блок1, кула[ред1 - 1][колона1])
играч1_резултат +=1
кула [ред1 - 1][колона1] =Няма
ако ред1 <4 и кула[ред1 + 1][колона1] !=Няма:
атака (блок1, кула[ред1 + 1][колона1])
кула [ред1 - 1][колона1] =Няма
играч1_резултат +=1
ако колона1> 0 и кула[ред1][колона