用Python制作一个开放世界、选择你自己的冒险的基于文本的游戏。对 python 有点陌生,所以我不确定最好的方法是什么。我想存储有关许多不同物品的信息,例如盔甲、武器等。我还想存储有关不同城镇及其中的 NPC 的信息。我如何以易于使用、排序的方式存储这些信息,所有这些信息都有自己的子数据,例如剑的伤害?
我的第一个想法是使用类。这样我就可以做类似的事情
class goblin:
health = 10
class items:
class weapons:
class ironSword:
damage = 1
goblin.health -= items.weapons.ironSword
但我认为这行不通,因为我需要可以访问这些项目,比如变量。这是因为我正在为玩家使用一个类,其中有一个库存列表。我希望能够将这些项目存储在上述列表中,但我不确定如何处理类。
您在课堂上组织数据的方法很好。但是您正在以相当复杂的方式定义类。更好的选择是使用
inheritence
。如果您不熟悉 inheritence
或 subclasses
的概念,您可以观看 Corey Schafer 制作的这段精彩视频。
你可能想做这样的事情:
class Item:
def __init__(self, name, description):
self.name = name
self.description = description
class Weapon(Item):
def __init__(self, name, description, damage):
super().__init__(name, description)
self.damage = damage
class Armor(Item):
def __init__(self, name, description, defense):
super().__init__(name, description)
self.defense = defense
然后您可以从这些类中创建任意数量的
objects
(您的项目),如下所示:
iron_sword = Weapon("Iron Sword", "A basic iron sword.", damage=10)
machine_gun = Weapon("Machine Gun", "An automatic assault rifle.", damage=90)
leather_armor = Armor("Leather Armor", "Light armor made of leather.", defense=5)