1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #12468

    +21

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    #define SWITCH(str)  switch(str_hash_for_switch(str))
    #define CASE(str)    static_assert(str_is_correct(str) && (str_len(str) <= MAX_LEN),\
    "CASE string contains wrong characters, or its length is greater than 9");\
    case str_hash(str, str_len(str))
    #define DEFAULT  default
    
    typedef unsigned char uchar;
        typedef unsigned long long ullong;
    
        const uchar MAX_LEN = 9;
        const ullong N_HASH = static_cast<ullong>(-1);
    
        constexpr ullong raise_128_to(const uchar power)
        {
            return 1ULL << 7 * power;
        }
    
        constexpr bool str_is_correct(const char* const str)
        {
            return (static_cast<signed char>(*str) > 0) ? str_is_correct(str + 1) : (*str ? false : true);
        }
    
        constexpr uchar str_len(const char* const str)
        {
            return *str ? (1 + str_len(str + 1)) : 0;
        }
    
        constexpr ullong str_hash(const char* const str, const uchar current_len)
        {
            return *str ? (raise_128_to(current_len - 1) * static_cast<uchar>(*str) + str_hash(str + 1, current_len - 1)) : 0;
        }
    
        inline ullong str_hash_for_switch(const char* const str)
        {
            return (str_is_correct(str) && (str_len(str) <= MAX_LEN)) ? str_hash(str, str_len(str)) : N_HASH;
        }
    
        inline ullong str_hash_for_switch(const std::string& str)
        {
            return (str_is_correct(str.c_str()) && (str.length() <= MAX_LEN)) ? str_hash(str.c_str(), str.length()) : N_HASH;
        }

    Запостил из-за ошибки на некоторых платформах и компиляторах.

    LispGovno, 23 Января 2013

    Комментарии (37)
  3. C++ / Говнокод #12453

    +21

    1. 1
    angle_in_radians = acos(dot(normalize(o-a), normalize(o-b)));

    Векторы такие сложные, а операции с ними так трудно запомнить, что даже игроделы не могут это сделать.

    TarasB, 20 Января 2013

    Комментарии (237)
  4. C++ / Говнокод #12160

    +21

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    //Было:
    int foo()//                              ;
    {                                        ;  
        int a                                ;
        float b                              ; //В правой части старые 
        typedef int testing                  ; //полезные комментарии
        std::cout << "Ho-ho-ho"              ;
        a=0                                  ;
        b=1.0f                               ;
        if (a==b)//                          ;
        {                                    ;
            std::cout <<"Yet another caption";
            std::cout <<"Hi-hi-hi"           ;
            bar()                            ;
                                             ;
        }                                    ;
        using namespace std                  ;
        for (int i =0;i<10;i++)//            ;
        {                                    ;
                                             ;
            std::cout <<"Hello, world!"      ;
            std::cout <<"Yet another line"   ;
        }                                    ;
        return 0                             ;
                                             ;
    }                                        ;
    
    //Кто-то что-то решил поменять
    //Стало:
    int foo()//                              ;
    {                                        ;  
        int a                                ;
        float b                              ; //В правой части старые 
        typedef int testing                  ; //полезные комментарии
        std::cout << "Ho-ho-ho"              ;
        a=0                                  ;
        b=1.0f                               ;
        if (a==b)//                          ;
        {                                    ;
            std::cout <<"Yet another caption";
            std::cout <<"Hi-hi-hi"           ;
            bar()                            ;
                                             ;
        }                                    ;
        double c;
        //Слева комментарии требующие
        //проверки. Wtf???Зачем здесь с???    
        using namespace std                  ;
        for (int i =0;i<10;i++)//            ;
        {                                    ;
                                             ;
            std::cout <<"Hello, world!"      ;
            std::cout <<"Yet another line"   ;
        }                                    ;
        return 6666                             ;
                                             ;
    }                                        ;
    
    //Быстро определили по линии из точек c
    //запятой место в котором произошло изменение.
    //Если согласились с ним восстанавливаем линию.

    Бесплатная распределенная говносистема контроля версий. Git и SVN нервно курят в сторонке.

    igumnovf, 20 Ноября 2012

    Комментарии (41)
  5. C++ / Говнокод #12116

    +21

    1. 1
    2. 2
    3. 3
    extern struct BloodRainPersonage
    {
    } bloodRainPersonage, * pBloodRainPersonage;

    Мне даже нечего сказать...

    LispGovno, 13 Ноября 2012

    Комментарии (18)
  6. C++ / Говнокод #11962

    +21

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main()
    {
        unsigned int input[65536];
        int counter=0;
        while(scanf("%u", &(input[counter++])) != EOF);
        while (counter-- > 0) printf("%.4f\n", sqrt((double)(input[counter])));
        return 0;
    }

    Реализация задачи http://acm.timus.ru/problem.aspx?space=1&num=1001

    kganker, 19 Октября 2012

    Комментарии (51)
  7. C++ / Говнокод #11913

    +21

    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
    16. 16
    if(m_bitRate < DSS_LOW_RATE/1000000.)
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }
    else if(m_bitRate > DSS_HIGH_RATE/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else if(m_bitRate > (.5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE)/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }

    умиляет. ну хотя бы, упростить .5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE) до (DSS_HIGH_RATE + DSS_LOW_RATE)/2 -- понятнее, да? тогда и if(m_bitRate > DSS_HIGH_RATE/1000000.) можно убрать за ненадобносью (ибо число которое больше чем максимальное из двух точно больше чем среднее из этих жвух), и самое верхнее if(m_bitRate < DSS_LOW_RATE/1000000.) можно убрать ибо в else у нас то же самое произойдет - и сразу как бы читаестя с ходу и понимается, не надо напрягаться.
    Боже, как я люблю крупные проприетарные проекты написанные людьми выбравшими для себя не свою профессию разработчика софта...

    Pencioner, 11 Октября 2012

    Комментарии (16)
  8. C++ / Говнокод #11817

    +21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    unsigned i=Facts.size();
    optimized=false;
    Facts.push_back(fact);
      
    if(Facts.size()>i)
       return i;
       else
       return -1;

    Обмазываем push_back рет-кодом.

    Try, 21 Сентября 2012

    Комментарии (15)
  9. C++ / Говнокод #11367

    +21

    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
    16. 16
    template <typename T> 
    void sort( T array[], size_t length ) {
    	size_t left_index = 0;
    	size_t right_index = length - 1;
    
    	while ( left_index < right_index ) {
    		size_t min_index = min( array, left_index, right_index );
    		swap( array, min_index, left_index );
    
    		size_t max_index = max( array, left_index, right_index );
    		swap( array, max_index, right_index );
    
    		left_index++;
    		right_index--;
    	}
    }

    Fai, 05 Июля 2012

    Комментарии (13)
  10. C++ / Говнокод #295

    +21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for(int i=0;i<m_tabWidget->count();i++){
    		textEdit = (TextEdit*)m_tabWidget->widget(i);
    		if( textEdit && textEdit->close()){
    			delete textEdit;
    			textEdit = 0;
    		}
                    else break;
    	}

    Часто забывают, что количество элементов в списке изменяется при удалении из него.

    guest, 26 Декабря 2008

    Комментарии (3)
  11. PHP / Говнокод #280

    +21

    1. 1
    2. 2
    3. 3
    <?php
      if(!$boss && ($time > 9) && ($time < 18))do_nothing($me);
    ?>

    guest, 25 Декабря 2008

    Комментарии (4)