Я впервые играю с 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», чтобы быть уникальным и случайным образом, так что ни один объект не существует больше, чем один раз и впоследствии может быть введен в инвентаре игрока ,
Как это сделать?
Joe
Важно: ваши ** значения ** должны быть уникальными, а не вашими переменными. Переменные - это заполнители в алгоритме. Ваш алгоритм не может функционировать, если его заполнители являются неопределенным беспорядком. Если вам нужно удерживать * несколько значений *, даже случайных, используйте 'list' или' dict'. – deceze
@deceze прав, если вам нужен случайный __name__ для объекта, вы должны рассмотреть его передачу в конструктор класса Class_Item и присвоить его атрибуту экземпляра 'Class_Item'. – Cipher
Или если имя всегда находится в форме «Item X», вы можете сгенерировать это имя в конструкторе, указав, что класс содержит вкладки количества созданных экземпляров. –