#python
#python
Вопрос:
я создаю пошаговую игру, в которой я хочу, чтобы пользователь1 мог выбрать число, и независимо от того, чему соответствует это число, должно быть напечатано, что это такое, а затем пользователь2 должен иметь возможность сделать это снова и прерваться, когда были выбраны 2 карты
import random
class Pokemon():
def __init__(self,name,stage,atk_type,hp):
self.name = name
self.stage = stage
self.atk_type = atk_type
self.hp = hp
def __str__(self):
return(f"name: {self.name}nstage: {self.stage}natk_type: {self.atk_type}nhp: {self.hp}n")
def menu():
print("Pick Your Pokemon:n 1. Squirtlen 2. Charizardn 3. Exit")
choice = input("Pick Your Pokemon! : ")
Charizard = Pokemon("Charizard", "Stage 2 ", ["atk_type - Fire", "Attacks - Flamethrower, Ember, Fire Blast , Damage 12"], 120)
print(Charizard)
Squirtle = Pokemon("Squirtle", "Basic", ["atk_type - Water", "Attacks - Bubble, Tackle, Water Pulse, AQUA Jet, Damage 3"], 60)
print(Squirtle)
Charmander = Pokemon("Charmander","Basic", ["atk_type - Fire ", "Attacks - Ember, Scratch, Fire Punch, Tackle, Damage 4"], 60)
print(Charmender)
if __name__ == "__main__":
menu()
я перепробовал много решений, но он продолжает зацикливаться, может кто-нибудь помочь с простым кодом. Спасибо!
Комментарии:
1. Мне кажется, что вы хотите реагировать на
choice
переменную, которая задается пользовательским вводом. Если это так, вам может быть полезно взглянуть на документацию для pythons if / else-statement . Вероятно, вы хотите что-то вроде:if choice == "2":
затем следует действие, которое нужно предпринять.
Ответ №1:
Я думаю, это то, что вы хотели сделать :
import random
class Pokemon():
def __init__(self,name,stage,atk_type,hp):
self.name = name
self.stage = stage
self.atk_type = atk_type
self.hp = hp
def __str__(self):
return(f"name: {self.name}nstage: {self.stage}natk_type: {self.atk_type}nhp: {self.hp}n")
def menu():
count = 0
while(count<2):
print("Pick Your Pokemon:n 1. Squirtlen 2. Charizardn 3. Exit")
choice = input("Pick Your Pokemon! : ")
Charizard = Pokemon("Charizard", "Stage 2 ", ["atk_type - Fire", "Attacks - Flamethrower, Ember, Fire Blast , Damage 12"], 120)
Squirtle = Pokemon("Squirtle", "Basic", ["atk_type - Water", "Attacks - Bubble, Tackle, Water Pulse, AQUA Jet, Damage 3"], 60)
if(choice=="1"):
print(Squirtle)
count = 1
elif(choice=="2"):
print(Charizard)
count = 1
elif(choice=="3"):
break
else:
continue
if __name__ == "__main__":
menu()
Пожалуйста, скажите мне, если это то, что вам нужно.
По сути, вам нужно проверить, что вводит пользователь, используя переменную «выбор», и в зависимости от того, чему равна переменная, вывести правильный объект.
Увеличивайте переменную count на 1 после каждого выбора, чтобы цикл останавливался после 2 вариантов.
Объяснение переменной count:
На первом шаге говорится, что count равно нулю: count = 0
затем вы помещаете основной цикл в цикл while с условием, что цикл начнется только в том случае, если значение count меньше значения count : while(count<2):
таким образом, он запускается один раз, поскольку значение count равно нулю.
Затем, всякий раз, когда пользователь делает правильный выбор, вы говорите, что количество должно увеличиваться. (это означает, что он должен добавить его к себе) вот так: count = 1
Поэтому, когда были сделаны два выбора, переменная выбора равна двум, и цикл останавливается.
Комментарии:
1. Пожалуйста, добавьте объяснение к вашему ответу.
2. yh работает отлично, вы видите, как вы добавили count, что это делает, почему вы использовали это, я новичок, и я хочу знать, что он делает в программе.