Итак, вот мой следующий вопрос с одним из кода моего ученика в его текстовой игре. Идея в том, что в игре вы можете взять предмет и поместить его в выбранный карман. Проблема в том, что, когда он запускает этот код, он получает приглашение выбрать карман для ввода элемента, но затем приглашение ввода просто контует с тем же вопросом о том, где положить элемент.Проблемы с текстовыми играми в Python. Запрос ввода петли
Идеи?
class grab():
#Checks the player's pockets for items.
def pocket_check(inventory, pocket, thing, input, state, list, room):
if inventory[pocket] != None:
print("You find that your %s is stuffed full.")%(input)
if inventory[pocket] == None:
inventory[pocket] = thing
del room["Items"][thing]
state["Strain"] += list[thing]["Weight"]
print("You put the %s in your %s.")%(thing, input)
#Takes items and putting them in the player's inventory
def grab(inventory, thing, list, state, room):
go = True
while go:
if list != "WEAPON" and state["Strain"]+list[thing]["Weight"] <= state["Strength"]:
inp = input("Where will you put it?").lower()
inp_broke = inp.split(" ")
if inp_broke[0] == "stop":
go = False
elif inp_broke[0] != "put":
inp = input("Where will you PUT it?").lower()
inp_broke = inp.split(" ")
elif inp_broke[0] == "put":
if inp_broke[1:3] == "shirt pocket":
pocket_check(inventory, "Shirt Pocket", thing, "shirt pocket", state, list, room)
if inp_broke[1:4] == "left front pocket":
pocket_check(inventory, "Left Front Pocket", thing, "left front pocket", state, "ITEM", room)
if inp_broke[1:4] == "right front pocket":
pocket_check(inventory, "Right Front Pocket", thing, "right front pocket", state, "ITEM", room)
if inp_broke[1:3] == "back pocket":
pocket_check(inventory, "Back Pocket", thing, "back pocket", state, "ITEM", room)
Будьте осторожны при расщеплении пространства: 'inp.split (" ")'. Любое (случайное) двойное пространство приведет к пустому значению в 'inp_broke'. Вместо этого используйте разделение пробелов по умолчанию: 'inp_broke = inp.split()'. – Evert
Вы должны поощрять стандарты именования PEP 8 - например, имена классов, начинающиеся с заглавной буквы. – wwii
Вы должны позволить игроку использовать кокос в качестве кармана. Затем позже дайте ему лайм. Достижение Получите: Налейте известь в кокосовый орех. – mbomb007