LINUX.ORG.RU

Вот так пишутся топовые игры (Python)


0

3

лог из жизни программиста большой конторы большой игры

dg>>>>>>>>>>>>>
только это падает



si>>>>>>>>>>>>>
Там такие строчки:

		self.shipUpgradeInfo = gShipUpgradeTree.getShipInfo(self.name)
		if not self.shipUpgradeInfo:
			self.shipUpgradeInfo = ShipInfo(self.name)

То есть, если первая не сможет найти закешированное shipUpgradeInfo  в дереве прокачки, то shipUpgradeInfo все равно будет создано вручную. Поэтому можно, например, первую обернуть в 
try:
  self.shipUpgradeInfo = gShipUpgradeTree.getShipInfo(self.name)
except:
  self.shipUpgradeInfo = None

Либо, другой вариант, в ShipUpgradeTree завести флаг self.isInited, устанавливать его в True в методе Init. А если запрашивают getShipInfo, а isInited == False, то возвращать там None



dg>>>>>>>>>>>>> 
class Singleton(object):
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(
                                cls, *args, **kwargs)
        return cls._instance

if __name__ == '__main__':
    s1=Singleton()
    s2=Singleton()
    if(id(s1)==id(s2)):
        print «Same»
    else:
        print «Different»



si>>>>>>>>>>>>>
Про Singleton - это какой-то вопрос, или случайно вставилось?


Последнее исправление: f1af (всего исправлений: 3)

топовые игры
Python

Ты про это?

Kuzy ★★★
()

И в чем прикол? Типа «смотрите, какие лохе - не знают паттерна Singleton»?

tailgunner ★★★★★
()

Здарова, Димон, когда релизитесь?

x4DA ★★★★★
()

У вас можно сливать инфу? Или это не считается?

amazpyel ★★★
()

Чувствуется рука перловика. Вопрос на засыпку, на кой хрен в интерфейсе вызов и метода и глобальной (или какой-то внешней) функции? Первое, раскрытие жпгшности того, как заполняется информация по кораблю где-то за пределами класса это не про. Второе, проверки, крэш и все остальное связанное с кэшем (или бд, неважно) делать вне класса это не про.

Либо у вас тру-ООП. Либо полное отсутсвие ООП.

Может я что-то не понял и упустил из-за скудности входных данных.

gh0stwizard ★★★★★
()

Леста?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.