Так что у меня возникла небольшая проблема с текстовой игрой, которую я делал. Игра работает, принимая команду, которая ссылается на функцию, затем функция ищет то, что ищет игрок. Например, «исследовать элемент1» будет печатать описание элемента1 из словаря местоположения.
Проблема, с которой я столкнулся, заключается в том, что я не могу установить местоположение игрока с моим текущим расположением. Я хочу, чтобы игрок начинал в пещере, вводил go to forest
и местоположение персонажа устанавливалось на forest
. Однако до этого не доходит, потому что независимо от того, в каком направлении я объявляю два, я нажимаю на NameError. Я хочу иметь возможность перемещаться между двумя.
cave = location(
name = "CAVE NAME",
desc = "It's a cave, there's a forest.",
objects = {'item1' : item1, 'item2' : item2, 'item3' : item3},
adjacentLocs = {'forest' : forest}
)
forest = location(
name = "The Central Forest",
desc = "It's very woody here. There's a cave.",
objects = {},
adjacentLocs = {'cave' : cave}
)
Вот моя goTo()
функция:
def goTo():
target = None
#Check inventory
for key in pChar.inventory:
if key.name.lower() in pChar.lastInput:
print("\nThat's an object in your inventory. You won't fit in your backpack.")
target = key
break
#Check scene objects
if target == None:
for key, loc in pChar.charLocation.objects.items():
if key in pChar.lastInput:
print("\nThat's a nearby object. You have essentially already gone to it.")
target = key
break
#Check location list
if target == None:
for key, loc in pChar.charLocation.adjacentLocs.items():
if key in pChar.lastInput:
pChar.charLocation = loc
print("\nYou amble on over to the {}.".format(pChar.charLocation.name))
target = key
break
if target == None:
print("That place doesn't exist.")
Как мне лучше всего сослаться на два класса друг в друге?