Время от времени мне нравится отдыхать от других моих проектов, пытаясь сделать классическую приключенческую текстовую игру (на этот раз на Python) забавным проектом, но у меня всегда есть проблемы с дизайном, реализующие система предметов.
Я бы хотел, чтобы предметы в игре происходили из одного базового Item
класса, содержащего некоторые атрибуты, которые есть у каждого предмета, такие как урон и вес. Мои проблемы начинаются, когда я пытаюсь добавить некоторые функции к этим элементам. Когда урон предмета превышает порог, он должен быть уничтожен. И в этом заключается моя проблема: я действительно не знаю, как этого добиться.
Поскольку del self
не будет работать по миллиону различных причин, (Правка: я намеренно предоставляю использование del как нечто, что, как я знаю, неправильно. Я знаю, что такое сборка мусора и как это не то, что я хочу.) как мне это сделать (и другие подобные задачи)? Должен ли каждый элемент содержать какую-либо ссылку на его контейнер (игрок, я думаю) и «попросить» удалить себя?
Первое, что приходит на ум, - это большой словарь, содержащий каждый элемент в игре, и каждый объект будет иметь ссылку на этот список, и оба будут иметь и знать свой собственный уникальный идентификатор. Мне вообще не нравится это решение, и я не думаю, что это правильный путь. У кого-нибудь есть предложения?
РЕДАКТИРОВАТЬ: Я вижу много людей, которые думают, что я беспокоюсь о сборке мусора. Я имею в виду не сборку мусора, а удаление объекта из игрового процесса. Я не уверен, какие объекты должны инициировать удаление и т. Д.