Примечание: я относительно новичок в Python и кодировании. Я создаю текстовую RPG, следуя инструкциям в книге под названием Make Your Own Python Text Adventure авторства Phillip Johnson . Я завершил книгу и теперь прислушиваюсь к ее советам, чтобы настроить свою игру и создать свои собственные объекты и классы.
Я пытаюсь создать плитку карты под названием LootTile, которая позволяет игроку подбирать предмет добычи под названием Fancy Chocolate и автоматически хранить его в своем инвентаре. Однако я продолжаю получать разные ошибки относительно добычи. Первый, самый большой, который я не знаю, как исправить, - это AttributeError
.
Я знаю, что мне, вероятно, придется создать атрибут добычи в классе Player, но я не уверен, как это сделать. Приветствуются любые указатели. Я размещу здесь свой Traceback и связанный с ним код.
Traceback
Traceback (most recent call last):
File "C:\Users\Timothy Hall\Desktop\Yradel_Game\Yradel_Game5.py", line 102, in <module>
main()
File "C:\Users\Timothy Hall\Desktop\Yradel_Game\Yradel_Game5.py", line 49, in main
room.modify_player(player)
File "C:\Users\Timothy Hall\Desktop\Yradel_Game\world.py", line 132, in modify_player
player.loot = player.loot + self.loot
AttributeError: 'Player' object has no attribute 'loot'
player.py
class Player:
def __init__(self):
self.inventory = [items.Dagger(), items.BreadRoll(), items.Potion()]
self.x = world.start_tile_location[0]
self.y = world.start_tile_location[1]
self.hp = 100
self.gold = 100
self.victory = False
# self.loot = ?
world.py
class LootTile(MapTile):
def __init__(self, x, y):
self.loot = items.FancyChocolate
self.loot_claimed = False
def modify_player(self, player):
if not self.loot_claimed:
self.loot_claimed = True
player.loot = player.loot + self.loot
print("You've retrieved a Fancy Chocolate!")
def intro_text(self):
if self.loot_claimed:
return """The underbrush looks the same here, time to move on!"""
else:
return """There is a tree stump with a yummy looking piece of chocolate on it."""