1. Python / Говнокод #19661

    −47

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if not self.squad:
    			magus = Magus(0, 0)
    			ranger = Ranger(12, 18)
    			knight = Knight(32, 11)
    			sage = Sage(21, 26)
    			self.squad = [magus, ranger, knight, sage]
    AttributeError: 'GameWindow' object has no attribute 'squad'
    ...
        if self.selection.actions < self.active_skill.actions:
    AttributeError: 'WardSigil' object has no attribute 'actions'
    ...

    Посоны, суть такова. На один буржуйский конкурс пришла игра, а я в жюри. Игра вроде бы классная (новый xcom+ascii графон+инквизиция), но есть проблема - автор почему-то считает что питон должен на несуществующие поля возвращать nil\false\0, а у меня python 2.7 просто падает с приведенной ошибкой. Ну а питон 3 ругается на print, т.е. игра явно на питоне 2.х.
    В общем может есть какая-нибудь опция, старая версия питона которая так себя вела или какой-нибудь хак, чтоб заставить питон вести себя как у автора? Иначе придется 1 балл ставить, автор на связь не выходит а игр еще сотни.
    Да, он еще написал что тестировал только на MacOS - там какая версия по дефолту стоит?

    Запостил: kipar, 20 Марта 2016

    Комментарии (19) RSS

    • А это точно питон, а не что-то ещё питоноподобное?
      Ответить
    • Это точно питон, файлы называются py, используют байндинги питона к libtcod и игра в общем запустилась, только половина скиллов не работает.
      Ответить
    • На последних маках по дефолту стандартный 2.7.
      Раз автор не позаботился о совместимости(описании как запускать поделку), то его надо покарать, имхо.
      Ответить
    • напиши себе кроссверсионный транспайлер для питона
      Ответить
    • Magus(0, 0)

      Маг-то днище.

      И почему не Mage? Или это именно что волхв?
      Ответить
      • магус видимо потому что инквизиция, с демонами воюем. а цифры это координаты. если что, игра вот: https://geekanddad.wordpress.com/2016/03/13/7drl-challenge-2016-arcana-command/
        Ответить
        • Я только исходники нашел. Там экзешник есть что ты гамануть ?
          Ответить
          • Экзешник есть. Но он для какой-то 3_14дарской операционки.
            Ответить
            • а я так хотел побыть донным магусом(((

              придется быть альфасамцом и мачо в реальности
              Ответить
              • Игра запускается в Винде, но нужен Питон и библиотека отсюда:
                https://bitbucket.org/libtcod/libtcod/downloads

                libtcodpy.py, dll-файлы, libtcod.cfg и директорию data нужно скопировать в директорию с игрой.

                Но игра тут же обламывается в точке, указанной топикстартером.
                Ответить
                • У меня нет питона и желания с ним ипаться. Умерла так умерла.
                  Ответить
                  • Что ж, если нет желания душить змейку, остаётся только быть мачо...
                    Ответить
                • Если запускать не aracanacommand a MAIN то эту точку проходит и в принципе HQ и прочее работает. Падает только половина скиллов, но игру можно и без них оценить
                  Ответить
    • Я о такой опции не слышал. Должно быть кривая инициализация объекта.
      А вообще, если нужны хитровыебанные опции, то автор должен был сказать об этом заранее, ну или хотя б протестировать на чистой установке. Иначе ССЗБ.
      Ответить
    • object.__metaclass__ = что-то ловящее обращения к __attr__ не покатит?
      Ответить
    • Если в ините класса или где-нибудь еще не установился атрибут, то естественно падает такая ошибка. Никогда не видел, чтобы питон жевал такое.

      Прописать так, и все
      if not getattr(self, 'squad', None):


      Впрочем, возможно ошибка как раз в том, что атрибут должен быть установлен ранее, но по какой-то причине не установился. В этом и баг
      Ответить
    • Нету никакой, питон это не луа.
      Ответить
    • юз сикс, люк
      Ответить

    Добавить комментарий