1. C++ / Говнокод #9553

    +1001

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    p1=Vec2(cos(pi/180*mParticles[index].mRotation)*1.2f*radius,sin(pi/180*mParticles[index].mRotation)*1.2f*radius)+center+mParticles[index].mPos;
    p2=Vec2(cos(pi+pi/180*mParticles[index].mRotation)*1.2f*radius,sin(pi+pi/180*mParticles[index].mRotation)*1.2f*radius)+center+mParticles[index].mPos;
    DrawLine((int)p1.x,(int)p1.y,(int)p2.x,(int)p2.y);
    p1=Vec2(cos(pi/2+pi/180*mParticles[index].mRotation)*1.2f*radius,sin(pi/2+pi/180*mParticles[index].mRotation)*1.2f*radius)+center+mParticles[index].mPos;
    p2=Vec2(cos(3*pi/2+pi/180*mParticles[index].mRotation)*1.2f*radius,sin(3*pi/2+pi/180*mParticles[index].mRotation)*1.2f*radius)+center+mParticles[index].mPos;
    DrawLine((int)p1.x,(int)p1.y,(int)p2.x,(int)p2.y);

    Запостил: lifemaker, 27 Февраля 2012

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

    • кручу верчу запутать хочу
      Ответить
    • находясь в твёрдом уме... где здесь С++?
      Ответить
      • по коду не очевидно, что Vec2 - это конструирование объекта, а не функция.
        но это действительно не функция
        Ответить
      • даже если Vec2 - не конструктор, а функция, возвращающая struct something (ведь p1.x), затем всё равно идёт "+ center + ..." - в сишечке не срослось бы
        по попытка похвальная, я сам было почти повёлся
        Ответить
        • а всё из-за "шикарного" форматирования
          Ответить
        • Ну почему же? :) Ситуацию еще можно спасти.

          В таком коде вполне можно предположить, что 'Vec2' - это макрос, определенный как
          #define Vec2(x, y) foo(x,y);

          где 'foo' - некая функция, возвращающая наш struct. Ключевой момент здесь то, что макрос содержит ';'.

          Тогда хвост
          +center+mParticles[index].mPos;

          будет просто "безэффектным" выражением, начинающимся с унарного '+'.

          По-моему такой вариант - это первое , что приходит в голову :) Вполне себе С :))
          Ответить
          • Только зачем такая обфускация кода?
            Ответить
            • Дело не в обфускации. TheCalligrapher просто доказал, что при наличии препроцессора всё, что на первый взгляд не является программой на C, тем не менее, может быть программой на C.
              Ответить
              • Сифилия
                Ответить
              • Нет, не всё.
                Ответить
                • Паскаль не может.
                  Ответить
                  • да и лисп врядли удастся препроцессором имитировать.
                    а вот сишку судя по всему прям в лисп запихать вполне реально при наличии нужного макроса
                    Ответить
                  • конечно не сможет
                    никакой препроцессор не поможет осилить уродливые конструкции типа := или понять почему statement то заканчивается точкой с запятой, то не заканчивается (типа если statement перед else)
                    Ответить
    • и все это для того чтобы получить 4?
      Ответить

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