我是第一次玩Python和任何编程语言,所以请多多包涵。我两周前开始在线课程,但尝试在旁边开发一个小游戏以学习更快(玩得开心)。这是一次文字冒险,但应随机遇到并与具有随机装备的敌人战斗,然后玩家可以掠夺它们。
这是我的问题:如果我为随机遇到的对象创建随机对象/武器,则需要确保该对象具有唯一的名称。从理论上讲,关卡的设计方式可以是无数个对象(它可以是开放式的,遇到时会弹出)。
这是我到目前为止的方法
class Item_NPCs: #create objects for NPCs
def__init__(self, item_type, item_number):
# e.g. item_type 1 = weapons, item_type2 = potions, etc.
if item_type == 1 and item number == 1:
self.property1 = 5
self.property2 = 4
if item_type == 1 and item_number ==2:
# etc. :)
def prepare_encounter():
inventory_NPC = [] # empty list for stuff the NPC carries around
XXX = Class_Item(item_type, item_number) # I might randomize the arguments.
重要的是,我希望“ XXX”是唯一且随机的,因此没有对象存在一次以上,以后可以放入播放器的清单中。
该怎么做?
乔
为什么您需要随机的?您可以简单地使用一个列表,然后将每个新对象附加到列表中,其索引为其唯一标识符:
items = []
items.append( Class_Item(item_type, item_number) )
但是如果您确实需要随机标识符,也许您可以使用字典:
items = dict()
items[random_id] = Class_Item(item_type, item_number)
这要求random_id是可散列的(但如果是数字或字符串,则应为散列。)>
我不知道为什么其他人没有想到这一点: