1. Куча / Говнокод #2471

    +124.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    MAIN_RULES ()
    {
        IF ((Tour==2) && (Time>105) {
            Competition_Failed();
            Test_System_Down();
        }
        IF 
            (smoking==true)
            or
            (alcohol==true)
            or
            (Come_Home>23:00)
        THEN
            Break_The_Competition!
    }

    Листовки, расклеенные в профилактории, где квартировались участники KPI-OPEN'09. Этот контест также отметился эпичным падением системы в основном туре соревнований, что отразилось на их содержании ;) Так что первый if - поздняя вставка за авторством участников контеста.
    Алсо, на бредовость синтаксиса уже давно обратили внимание. И попытки его пригладить к стандартам какого-либо языка уже проводились (наиболее частое решение - довольно увесистая пачка сишных дефайнов). Хотя можете высказывать и свои идеи на этот счет, будет интересно)

    Запостил: uncle Lem, 21 Января 2010

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

    • Эх, забыл закрывающую скобку в первом ветвлении :(
      Ответить
    • Где здесь С++?
      Ответить
      • Бот вышел из своей ветки! Он учится! Аааа!!!!11
        Ответить
        • Есть предложение банить за такое. А для фильтра можно взять одно из творений вебкилла =)
          Ответить
          • Ага. То есть я вижу "Где здесь C++, Altravert?!" над полем ввода и прощаюсь с сайтом.
            А, еще можно в пунтосвичер какой-нибудь встроить проверялку на ключевые слова и если че чтобы сжигал сетевуху.
            Какие сумбурные мысли.
            Ответить
        • Искуственный интелект.
          Ответить
    • были мы на этом KPI-OPEN)

      наиболее частым решением было исправление авторучкой - попыткой привести к С++
      define-ми исправляла только наша team

      код только немного отличался - скобки объединяющие условия точно были и операторные скобки вроде Pascal-style
      мы в общем-то обработали всё, кроме восклицательного знака - как его без правок убрать не придумали, если кто знает - пишите )

      #define MAIN_RULES void main
      #define IF if
      #define or ||
      #define Come_Home getTime()
      #define Break_The_Competition fBreak_The_Competition();//
      #define THEN
      #define true 1
      #define : *3600+60*
      
      int Tour = 1;
      int Time = 0;
      int smoking=0;
      int alcohol=0;
      
      void Competition_Failed() {};
      void Test_System_Down() {};
      void fBreak_The_Competition() {Competition_Failed(); }
      int getTime() { return 0; }


      как-то так
      Ответить
      • дефайнить true 1 как-то бессмысленно. А что за команда?
        Ответить
        • мы приводили к С
          в С нету типа bool

          [color=silver]
          3 C:\Work\Dev-Cpp\kpi2.c `true' undeclared (first use in this function)
          [/color]
          вот что говорит нам нормальный (Gnu C) компилятор

          команда KITOS (Харьков))
          в этом году RKITS будем, если организаторы решатся проводить ещё раз после прошлогоднего фейла
          Ответить
          • Ну, про С ничего сказано не было. Если так, то не спорю. Привет от DonNU_MathFac! Я слышал, что проводить будут, но уже на ejudge. Хотя если у них и он упадет, я не сильно удивлюсь.
            Ответить

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