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

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

    +98

    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
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    Сижу такой набираю код
    
    program Project6;
    
    {$APPTYPE CONSOLE}
    var i,j: integer;
    
    begin
      repeat
        readln(j);
        i := 0;
        if (j=0) then
          i := 1
        else
          break;
        Writeln(i);
      until false;
    end.
    [Hint] : Value assigned to 'i' never used
    
    Ну ладно, похер, уберу
    
    program Project6;
    
    {$APPTYPE CONSOLE}
    var i,j: integer;
    
    begin
      repeat
        readln(j);
       // i := 0;
        if (j=0) then
          i := 1
        else
          break;
        Writeln(i);
      until false;
    end.
    [Warning] : Variable 'i' might not have been initialized
    
                                                                                    
                                                                                    
                                                                                    
                                                                                    
                                 _________________                                  
                     g@@@@@44444*********9444@@@@@@@@@@@Mggg__                      
                   g@M"         _an**"""""""**Vw=G______"%%@@@@@gg_                 
                 ,@@`        a^"  __a=~v-vvv~~,___         _____`"*@gg_             
                a@@       _M" _m*"` _______     `""""""""""`    "   "9@g_           
                @@      a" ,m"_ar*"'`     -,         ,amv****-~,       9@g          
               @@        .* u"              C         ,~        "\       @          
              d@           '    __gg____              `                  @y         
             g@             ,g@@@@@@@@4@@gg_          C   ______         9@g        
           g@@.>~.     __  a@""@@@@@@__  "9@g         ,g@@@@**4@@_        "@g_      
         g@"$-*"""     *Y, @@@@*""**4@@@g__$@C     ggg@@@@@@@@@@*" "'" ""Mg`8@g     
       g@",`  ,g@@@@@@@g_       _g@     ""@M"      `"@@"                *n_"C"@@    
      g@'    p@"    ,`"@@@ggggg@@"                   8]      ,_  _gM@@@@g ' 'C8@    
      @@    j@     8@_    `"""'                      8@g_    3@g@@@`,  `"    ][@    
      @L    8@  _g@@@@@gg_              _gMMy         "9@g_    `""' 8L       j8@    
      @k    3@ d@@@@   "@@@gg_   *""""" @"``___         '@@g_       @@C  n"  Q@     
      "@C $  9k    @@_    "8@@@@gg_     @g_fM4@@M      g@""" "n.   a@@@  _m*3@"     
       "@g N,      9@@gg_  8@ `""9@@@gg__"         8gg@M        _g@@@d@k   a@%      
        "@@g_'      "@@@@@@@@g_     `"8@@@@ggg____  ""`   ___gg@@@@ 8@@@   @@       
          "@g_       '@g `"@@@@gg__   @L  `"""4@@@@@@@@@@@@@@@@"  @C @@@  3@        
            9@_       `@g  3@"9@@@@@@g@        [@     @@     4@y  @kg@@@  [@        
             9@         8@gd@   '"9@@@@@@@gggggd@gggggd@gggggg@W@@@@@@@@  [@        
              8g         "@@g        @""9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F  [@        
               @g          "@@g_    d@     '""@@@@@@@@@@@@@@@@@@@@@@@$@   3@        
               `@g_          "@@@g_j@'        @C  ``"3@@"""8@""j@'j@g@@   3@        
                 9@g_ ~__ ~._  `"@@@@g_       @C     8@   g@^ p@^ "@@M     @C       
                   "@@g "9m_ "Nq_  "*@@@@ggggg@______@____@@gg@@@@@M"      @L       
                     "9@@g_`"Mm_`"Nq_   """"*4@@@@@@@@@@M@@4*"""'          8k       
                        "9@@g_ ""Mm_"*w__       ~~~~ aaa~~        _/       $@       
                           `"@@gg_  "*WG_"*w~.____          ___am*"    /   [@       
                               "*@@gg    `"*-~<.__         `       __M"    3@       
                                   "9@gg_         `""'** ------**""`       d@       
                                      `"@@ggggg__                        ,d@        
                                          ""9@@@@@gg__                __g@"         
                                                 `""*4@@@@MggggggggM@@@@"           
                                                         `""""""""""'

    TarasB, 24 Января 2013

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

    +922.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    __declspec(noreturn) int FastAdd(const int a, const int b)
    {
      __asm mov eax, a;
      __asm mov ebx, b;
      __asm add eax, ebx;
    };

    Встречаеться множество подобных функций в одном С++ проекте, который в данный момент разгребаю. Хочеться что-нибудь сказать автору. Например: "на XYZ"?

    Говногость, 08 Января 2010

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

    0

    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
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    #include <iostream>
    using namespace std;
    const char _Arr_Digit [] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'},
        _Arr_Mantissa [] = {'e', 'E'},
        _Arr_Sign [] = {'-', '+'},
        _Arr_Dot[] = {'.'},
        _Arr_Combo[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.'};
    const bool DIGIT = false, SIGN = false, OTHER = true;  
    bool _Call_Mantissa = false,  _flag_dot = false, _flag_mant = false;
    int _position_mant;
    bool Parse_symbol (char _symb, const char* _Arr, int _size_arr);
    bool Parse_full_string (string _checking, int _offset, int _amount, bool _sec_cond, const char* _Arr, int _size_arr, bool _Drive);   
    bool Parse_the_first_symbol (string _checking);
    bool Parse_the_second_symbol (string _checking);
    bool Control_result (int i, string _checking);
    bool Parse_mantissa (string _checking);
    bool Parse_full_string_before_mantissa (int i, string _checking);
    bool Parse_the_first_symbol_after_mantissa (string _checking);
    bool Parse_full_string_after_mantissa (string _checking);
    long double Questioning (char s);
    long double Questioning (char s) {
        string _checking;
        while (true) {  
            cout << "Введите значение " << s << ": ";
            getline(cin, _checking);  
            if (_checking.length() == 0) 
                cout << "Вы не ввели значение!" << endl;   
            else if (!Parse_the_first_symbol(_checking)) 
                cout << "Некорректное значение!" << endl;  
            else return strtold(_checking.c_str(), nullptr); }}
    bool Parse_symbol (char _symb, const char* _Arr, int _size_arr) {
        for (int i = 0; i <= _size_arr; i++)  
            if (_symb == _Arr[i]) return true;
        return false; }
    bool Parse_full_string (string _checking, int _offset, int _amount, bool _sec_cond, const char* _Arr, int _size_arr, bool _Drive) {  
        bool _parse_flag;
        int _parse_count = 0;
        for (int j = _offset; j < _amount; j++) {
            if (Parse_symbol(_checking[j], _Arr, _size_arr)) {
                _parse_count++;
                if (_sec_cond) return false;
                if (_Drive) {
                    if (_Call_Mantissa)
                        _sec_cond = (j == (_amount-1));
                    if (_parse_flag) return false;
                    _parse_flag = true;
                    if (_Call_Mantissa) {
                        _flag_mant = _parse_flag;
                        _position_mant = j; 
                    }
                }
            }
        }
       if (!_Drive) { 
           if ((_amount - _offset) == _parse_count) return true;
           else return false; 
        }
       else return true; 
    }
    bool Parse_the_first_symbol (string _checking) {
      int LENGTH = _checking.length();
      bool _parse_cond = (LENGTH < 2);
      if (Parse_full_string (_checking, 0, 1, _parse_cond, _Arr_Sign, 1, SIGN)) 
          return Parse_the_second_symbol (_checking);
      else if (Parse_full_string (_checking, 0, 1, false, _Arr_Digit, 9, DIGIT))
          return Control_result (0, _checking);
      else return false; }
    bool Parse_the_second_symbol (string _checking) {
        if (Parse_full_string (_checking, 1, 2, false, _Arr_Digit, 9, DIGIT)) 
            return Control_result (1, _checking);
        else return false; }
    bool Control_result (int i, string _checking) {    
        if (!Parse_mantissa (_checking)) return false;    
        else if (_flag_mant) {
            string _before_mantissa = _checking.substr(0, _position_mant);
            string _after_mantissa = _checking.substr(_position_mant + 1);
            return (Parse_full_string_before_mantissa (i, _before_mantissa)
                    && Parse_the_first_symbol_after_mantissa (_after_mantissa)); } 
        else return Parse_full_string_before_mantissa (i, _checking); }
    bool Parse_mantissa (string _checking) {
        int LENGTH = _checking.length();
        _Call_Mantissa = true;   
        bool cash = Parse_full_string (_checking, 0, LENGTH, false, _Arr_Mantissa, 1, OTHER);
        _Call_Mantissa = false;
        return cash; }
    bool Parse_full_string_before_mantissa (int i, string _checking) { // but the first symbol  
        int LENGTH = _checking.length();
        return Parse_full_string (_checking, i, LENGTH, false, _Arr_Dot, 0, OTHER) &&
            Parse_full_string (_checking, i, LENGTH, false, _Arr_Combo, 10, DIGIT); }
    bool Parse_the_first_symbol_after_mantissa (string _checking) {
        int LENGTH = _checking.length();
        bool _parse_cond = (LENGTH < 2);
        if ((Parse_full_string (_checking, 0, 1, _parse_cond, _Arr_Sign, 1, SIGN)) ||
            (Parse_full_string (_checking, 0, 1, false, _Arr_Digit, 9, DIGIT)))
            return Parse_full_string_after_mantissa (_checking);
        else return false; }
    bool Parse_full_string_after_mantissa (string _checking) {
        int LENGTH = _checking.length();
        return Parse_full_string (_checking, 1, LENGTH, false, _Arr_Digit, 9, DIGIT); }

    Очередная говнопопытка оптимизации алгоритма.

    Westnik_Govnokoda, 30 Декабря 2020

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

    0

    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
    template <typename T, typename OUT_T = uint8_t> 
    OUT_T subdecoder_nbt::extract_bits(T bits, uint8_t pos, uint8_t end)
    {
        auto invert_bytes = [](T bytes) -> T
        {
            auto *p     = reinterpret_cast<uint8_t*>(&bytes), 
                 *p_end = reinterpret_cast<uint8_t*>(&bytes) + sizeof(bytes) - 1; 
            for(; p < p_end; ++p, --p_end)
            {
                *p = *p ^ *p_end;
                *p_end = *p ^ *p_end;
                *p = *p ^ *p_end;
            }
    
            return bytes;
        };
    
        bits = invert_bytes(bits);
    
        bits <<= pos;
        bits >>= (sizeof(bits) * 8 - (end - pos) - 1);
    
        return (OUT_T)bits;
    }

    Как правильно доставать биты из промежутка из стандартных типов C++ на x86.
    Изучал эту проблему в сумме почти сутки.

    А всё потому, что x86 хранит байты в Little-Endian, из-за чего при сдвиге биты окажутся не там, где ожидаешь.

    YpaHeLI_, 23 Октября 2020

    Комментарии (146)
  6. Куча / Говнокод #25024

    −6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    "Сайт о прыщах, 9858 руб./месяц, 1000+ чел/сутки":
    
    https://telderi.ru/ru/viewsite/1356387
    
    "Продам сайт о прыщах, выписано 156 статей, можно собрать СЯ и полностью охватить тему, сайт любит и Гугл и Яндекс, трафик идет одинаково.
    Монетизация под эту нишу может быть офферная - с неё я думаю доходы будут выше, чем 10 000 руб. в месяц, я к сожалению опыта работы с офферами не имею, в принципе как и времени на этот проект.
    Просадка трафика на графике связана с фильтром от гугла: ранее сайт стоял с неоформленными статьями (без картинок, с битыми ссылками на видео), все переоформили и фильтр был снят. Я тут этот сайт
    и купил, пока он был под фильтром.
    Ссылки не закупались, но они и не нужны - гугл хорошо ранжирует сайт. Можно сделать перелинковку для увеличения позиций и трафика".

    0BEH, 26 Октября 2018

    Комментарии (146)
  7. JavaScript / Говнокод #17265

    +169

    1. 1
    this.value = this.value.replace(/./g, '');

    //гениальное обнуление строки

    garapup, 06 Декабря 2014

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

    +4

    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
    struct ServiceProvider1
    {
      ServiceProvider1(Service2& service1, Service3& service2, Service3& service3, Service4& service4, Service5& service5):
        service1(service1),
        service2(service2),
        service3(service3),
        service4(service4),
        service5(service5),
     {}
    
      fun<Service1> service1;//fun - функциональный объект (operator() перегружен), хранящий ссылку на сервис, чтобы не писать кроме членов ещё и две функции - константную и не константную.
      fun<Service2> service2;
      fun<Service3> service3;
      fun<Service4> service4;
      fun<Service5> service5;
    };
    
    class Service1
    {
    public:
      template<class ServiceProvider> 
      Service1(ServiceProvider serviceProvider):
        service2(serviceProvider.service2()),//Ссылки на сервисы получаем.
        service3(serviceProvider.service3()),
        myMember1(serviceProvider),//эти мемберы сами внутри воспользуются провайдерами зависимостей
        myMember2(serviceProvider),
        myMember3(),
        myMember4(myServiceProviderGeter<ServiceProvider>()),//Этому мембору понадобились новые зависимости, часть тех, что хранятся в ServiceProvider, а часть новых среди членов Service1.
        myMember5(myServiceProviderGeter<ServiceProvider>())
        myMember6(myServiceProviderGeter<ServiceProvider>())
      {}
      ...
    private:
      template<class BaseServiceProvider>
      struct MyServiceProvider: BaseServiceProvider
        {
           MyServiceProvider(BaseServiceProvider baseServiceProvider, Service6& service6, Service7& service7):
             BaseServiceProvider(baseServiceProvider),
             service6(service6),
             service7(service7)
           {}
           
           fun<Service6> service6;
           fun<Service7> service7;
        };
    
      template<class BaseServiceProvider> MyServiceProvider<BaseServiceProvider> myServiceProviderGeter(BaseServiceProvider baseServiceProvider) const
      {
        return MyServiceProvider<BaseServiceProvider>(baseServiceProvider, this->myMember2, this->myMember3);
      }
    };
    ...
    ServiceProvider1 sp(...);
    Servive1 service1(sp);
    Service8 service8(sp);
    Service9 service9(sp);
    ...

    оттуда

    LispGovno, 31 Января 2014

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

    +25

    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
    template <typename T> struct Pool { static std::vector<T> data; };
    
    std::vector<tbphys::Body> Pool<tbphys::Body>::data;
    std::vector<Ball>         Pool<Ball>        ::data;
    std::vector<Wall>         Pool<Wall>        ::data;
    std::vector<Bat>          Pool<Bat>         ::data;
    std::vector<Brick>        Pool<Brick>       ::data;
    
    template <typename T, typename U> struct List
    {
    	typedef T Head;
    	typedef U Tail;
    };
    
    struct End {};
    
    typedef List<tbphys::Body, List<Brick, List<Bat, List<Ball, List<Wall, End> > > > > Components;
    typedef List<Brick, List<Bat, List<Ball, List<Wall, End> > > > DrawableComponents;
    typedef List<Brick, List<Ball, List<Bat, End> > > MovableComponents;
    
    const size_t badindex = size_t(-1);
    
    struct GameBody
    {
    	size_t self,body,bat,brick,wall,ball;
    
    	template <typename T> size_t& IndexOf ();
    	template <> size_t& IndexOf <tbphys::Body> () {return body;}
    	template <> size_t& IndexOf <Bat  >        () {return bat;}
    	template <> size_t& IndexOf <Brick>        () {return brick;}
    	template <> size_t& IndexOf <Wall >        () {return wall;}
    	template <> size_t& IndexOf <Ball >        () {return ball;}
    
    	template <typename T>
    	T& AddComponent ()
    	{
    		size_t index = Pool<T>::data.size();
    		Pool<T>::data.resize(index+1);
    		T& result = Pool<T>::data[index];
    
    		result.hostIndex = self;	
    		IndexOf<T>() = index;
    		return result;
    	}
    
    	template <typename T> void SetBadIndex ()
    	{
    		IndexOf<T::Head> () = badindex;
    		SetBadIndex<T::Tail> ();
    	}
    	template <> void SetBadIndex <End> () {}
    };

    Сколько тут говнопаттернов крестоблядского крестоязыка?

    TarasB, 22 Октября 2012

    Комментарии (146)
  10. Python / Говнокод #26782

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    import json
    a = {}
    b = {}
    for i in xrange(128): a[str(i)] = i
    for i in a: b[i] = a[i]
    print a == b
    print json.dumps(a) == json.dumps(b)

    Результат:
    True
    False

    Почему не True True ?

    a02810, 30 Июня 2020

    Комментарии (145)
  11. Куча / Говнокод #25588

    −2

    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
    * * u n s k i l l * * u n s k i l l * * u n s k i l l * *
    u                                                       u
    n                   _,,,-------,, ,-----,,_             n
    s                ,''             `         ``,          s
    k              ,'               /\           ',         k
    i            ,'             ,-''  ``-,          \       i
    l           /          ,,--'          `-,        |      l
    l          /      ,--''                  `-,      |     l
    *         |      |   -,___          ___,-  |     |      *
    u        |      |    _____`-,    ,-'____    |     |     u
    n        |     |    /     \        /    \   |     |     n
    s        |     |   |    O  |   \  |   O  |  |     |     s
    k       |      |    \_____/     \  \____/   |     |     k
    i       |      |                 \          |     |     i
    l      |       |                  \         |     |     l
    l     /         |              ---`         |      |    l
    *    |           \     `:---______---:`     |      |    *
    u    |            \     `,| |  |  | |'     |       |    u
    n   |              \      ``''''''''      /         |   n
    s   |               ',,                ,,'          |   s
    k  |                   ''------------''              |  k
    i  |                     |          |                |  i
    l |                      |          |                 | l
    l |                     |            |                | l
    * * u n s k i l l * * u n s k i l l * * u n s k i l l * *

    AHCKujlbHblu_netyx, 04 Мая 2019

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