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

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    const void onForolbergDie(void const * const p) const
    {
      return void();
    };
    
    ...
    
    typedef const void* const tp;
    foralberg.onForolbergDie(tp());

    Код из крупного проекта игры, которая скоро выйдет в свет.
    Не смотря на не соответствие стандарту C++, добрый дядюшка MSVS2010 это компилирует.
    В результате рефакторинга код был удалён.

    Говногость, 31 Июля 2011

    Комментарии (38)
  3. Java / Говнокод #6969

    +77

    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
    public class SomeEntityBean implements javax.ejb.EntityBean {
        private boolean loadMember;
        private Wrapper list;
    
        /* ... */
    
        public void ejbLoad() {
            this.loadMember = false;
            load();
        }
    
        private void load() {
            /* a LOT of code */
            String[] attrList = this.loadMember ?  a.attrListMember() : a.attrList();
            this.list = new Wrapper(attrList);
            /* a LOT of code */
        }
    
        public Something getSomething() {
            /* a LOT of code */
            this.loadMember = true;
            load();
            /* do something with this.list */
            this.loadMember = false;
            return something;
        }
    }

    Имена персонажей были умышленно изменены.
    Разумеется, loadMember больше нигде не используется.
    Яркий пример повторного использования кода.

    roman-kashitsyn, 16 Июня 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    template <class Type, unsigned long Dim> inline MStreamTextIn&
      MStreamTextIn::operator >>(const MMVector<Type, Dim>& o_value)
      {
      for (unsigned long i = 0; i < Dim; i++)
        GetBaseStream() >> i_value[i];
      return *this;
      }

    copy-paste & templates
    o_vlaue == i_value it's magic

    VladislavKurmaz, 06 Июня 2011

    Комментарии (38)
  5. Pascal / Говнокод #6200

    +100

    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
    Procedure TForm1.Button1Click(Sender: TObject);
    Const
      NormText : string = 'АБВГДЕЁЖЗЫИЙКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯ ';
      ObeznogText : string = 'А6ВrДЕЁЖ3ЫNµКЛМН0ПРС†YФXЦ4ШЩЬЪЗЮR ';
    Var
      sText, sBeznogText : String;
      i : Integer;
    BEGIN
     sText := Memo1.Text;
     sText := AnsiUpperCase(sText);
     sBeznogText := '';
     For i := 1 to Length(sText) do
      Begin
       sBeznogText := sBeznogText + (Copy(ObeznogText, Pos(sText[i], NormText), 1));
       If sText[i] = ' ' then
        bEgin
         Randomize;
         Case Random(5) of
          1: begin
              sBeznogText := sBeznogText + 'ДОСМОТ? ';
             End;
          3: begin
              sBeznogText := sBeznogText + 'РYКN ';
             end;
          5: begin
              sBeznogText := sBeznogText + 'БЕЗНОГ? ';
             end;
         End;
        eNd;
      End;
     Memo1.Text := sBeznogText;
    END;

    Автоматическое обезноживание текста. Сплойлер: БЕ3НОГNМ

    Govnocoder#0xFF, 03 Апреля 2011

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

    +134

    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
    using System;
    namespace ConsoleApplication_Square
    {
        class Program
        {
            static void Main()
            {
                var n = Console.ReadLine();
                if (n.Length >= 5)
                {
                    var t = false;
                    for (var i = 0; i < n.Length-4; i++)
                    {
                        if(n[i]=='h')
                        {
                            for (var j = i + 1; j < n.Length-3; j++)
                            {
                                if(n[j]=='e')
                                {
                                    for (var l = j + 1; l < n.Length-2; l++)
                                    {
                                        if(n[l]=='l')
                                        {
                                            for (var m = l + 1; m < n.Length-1; m++)
                                            {
                                                if (n[m]=='l')
                                                {
                                                    for (var o = m + 1; o < n.Length; o++)
                                                    {
                                                        if (n[o]=='o')
                                                        {
                                                            t = true;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }  
                                }
                            }
                        }
                    }
                    Console.Write(t?"YES":"NO");
                }
                else
                {
                    Console.Write("NO");
                }
            }
        }
    }

    Нашел в качестве решения задачи на CodeForces.ru

    http://codeforces.ru/problemset/problem/58/A

    Moldabekov, 21 Марта 2011

    Комментарии (38)
  7. PHP / Говнокод #5730

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $page = $_GET["p"];
    if(!$page) $page="index";
    
    // ===== Собираем страницу =====
    
    readfile("temp/top.html"); // Верхушка шаблона
    readfile("pages/$page.txt"); // Собственно подгружаем контент, в зависимости от значения переменной $page
    readfile("temp/down.html"); // Низ шаблона

    Нано движок на файловой бд

    Мартин, 20 Февраля 2011

    Комментарии (38)
  8. Куча / Говнокод #5702

    +145

    Интересно, а есть тут еще те, которые помнят этого персонажа в футере сайта?
    Вообще, есть ли у кого скриншоты старых версий сайта? Говнопость памяти

    striker, 17 Февраля 2011

    Комментарии (38)
  9. Pascal / Говнокод #5653

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for i:=1 to 100 do
    begin
    for j:=1 to f do
    begin
    ...
    end;
    f:=f+1000;
    end;

    Бедные дельфины, им не повезло с циклами.

    CHayT, 12 Февраля 2011

    Комментарии (38)
  10. JavaScript / Говнокод #5134

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    this.exec = function(code,op){
      op = op || 0;
      for(cp=0;cp<code.length;cp++){
        if(code[cp]=='op'){this.stack.push(op)}
    	else if(code[cp].isNumber){this.stack.push(parseFloat(code[cp]))}
    	else if(this.vars[code[cp]] != undefined){this.stack.push(this.vars[code[cp]])}
    	else if(this.refs[code[cp]] != undefined){this.call(code[cp])}
    	else if(this.mathOp.oneOf(code[cp])){this.mathOp(code[cp])}
    	else if(code[cp] == '->'){cp++;this.vars[code[cp]]=this.stack.pop();}
      }
    }

    Еще один говнокод из моего известного некоторым особо внимательным личностям проекта

    art543484, 02 Января 2011

    Комментарии (38)
  11. Си / Говнокод #4902

    +141

    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
    static int16_t have_upper_dot(cell *c)
    {
     cell *cc;
     int16_t H;
     H=my_bases.ps;
     cc=c->prev;
     if ((cc->flg & c_f_dust) &&
          (c->w>4 && cc->h>=2 && cc->w>=2 &&
    	(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
    	cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
           c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
          cc->row+cc->h-2<=my_bases.b2)
       return 1;
     cc=c->next;
     if ((cc->flg & c_f_dust) &&
          (c->w>4 && cc->h>=2 && cc->w>=2 &&
    	(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
    	cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
           c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
          cc->row+cc->h-2<=my_bases.b2)
       return 1;
     return 0;
    }

    Из одной OCR программы.

    f0ma, 12 Декабря 2010

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