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

    В номинации:
    За время:
  2. Куча / Говнокод #12760

    +86

    1. 1
    https://github.com/wiistriker/govnokod.ru

    Развлечемся?

    striker, 17 Марта 2013

    Комментарии (56)
  3. Pascal / Говнокод #12564

    +86

    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
    Function TMainForm.PrimGenerateMaze(Width, Height: Integer): Maze;
    
    Type Point = record
      x, y: Integer;
    end;
    
    Var
      TehMaze: Maze;
      Todo: array of Point;
      todonum: integer;
      x,y,n,d: integer;
    
    Const
      dx: array [0..3] of Integer = (0, 0, -1, 1);
      dy: array [0..3] of Integer = (-1, 1, 0, 0);
    
    BEGIN
      SetLength(TehMaze, Width, Height);
      SetLength(Todo, (Width * Height) - 1);
    
      For x:=0 to Width-1 do
        For y:=0 to Height-1 do
          If (x = 0) or (x = Width-1) or (y = 0) or (y = Height-1) then
            TehMaze[x][y]:=32
          Else TehMaze[x][y]:=63;
    
      Randomize;
      x := Random(Width-2)+1;
      y := Random(Height-2)+1;
      todonum := 0;
    
      TehMaze[x][y]:= TehMaze[x][y] and not 48; // Пометить клетку как принадлежащую лабиринту
    
       // Пока не обработаны все клетки
       Repeat
        Begin
           // Занести в список todo все ближайшие необработанные клетки
           For d:=0 to 3 do
               if (TehMaze[x + dx[d]][y + dy[d]] and 16) <> 0 then
               Begin
                 todo[todonum].x := x + dx[d];
                 todo[todonum].y := y + dy[d];
                 Inc(todonum);
                 TehMaze[x + dx[d]][y + dy[d]] := TehMaze[x + dx[d]][y + dy[d]] and not 16;
               End;
    
           // Выбрать из списка todo произвольную клетку
           n:= Random(todoNum);
           x:= ToDo[n].x;
           y:= ToDo[n].y;
    
           // Удалить из списка обработанную клетку
           Dec(todonum);
           ToDo[n]:= todo[todonum];
    
           // Выбрать направление, которое ведет к лабиринту
           Repeat
               d:=Random(4);
           Until ((TehMaze[x + dx[d]][y + dy[d]] and 32) = 0);
    
           // Присоединить выбранную клетку к лабиринту
           TehMaze[x][y] := TehMaze[x][y] and not ((1 shl d) or 32);
           TehMaze[x + dx[d]][y + dy[d]] := TehMaze[x + dx[d]][y + dy[d]] and not (1 shl (d xor 1));
        End;
       Until (todonum = 0);
    
       TehMaze[1][1] := TehMaze[1][1] and -2;                 // начало лабиринта - в левом верхнем углу
       TehMaze[Width-2][Height-2] := TehMaze[Width-2][Height-2] and not 2; // конец лабиринта - в правом нижнем углу
    
       Result := TehMaze;
    END;

    Генерация лабиринтов по алгоритму Прима.

    Govnocoder#0xFF, 10 Февраля 2013

    Комментарии (24)
  4. Java / Говнокод #10314

    +86

    1. 1
    2. 2
    3. 3
       public static String serialize3(IModellingWorkerSetup r) {
            return serialize(serialize(serialize(r)));
        }

    как вы понимаете, есть и обратное преобразование

    ykhrustalev, 17 Мая 2012

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

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    protected void ListViewAlerts_ItemCommand(object sender, ListViewCommandEventArgs e)
            {
                int commandArgument = e.Item.DataItemIndex;
                var listViewDataItem = (HiddenField)ListViewAlertRegistry.Items[commandArgument].Controls[3];
                int id = Convert.ToInt32(listViewDataItem.Value);
    .....
            }

    Из рабочего проекта. Новый способ узнать id item'а listview. Видимо свойство DataKeyNames кодеру незнакомо - id берет из hiddenfield, причем выбирает этот hiddenfield не по его id, а по позиции контрола по счету в строке. Добавляем еще один элемент в listview, и соответственно метод валится.

    _vinka, 16 Мая 2012

    Комментарии (0)
  6. Java / Говнокод #10211

    +86

    1. 1
    2. 2
    3. 3
    int createStageCycles = 0;
    createStageCycles = Integer.parseInt(strCycle);
    int nextVal = new Integer(createStageCycles) + 1;

    int двойного отжима

    zloizerg, 07 Мая 2012

    Комментарии (7)
  7. Java / Говнокод #10185

    +86

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (bindingContext != null && files != null) {
     if (files != null && bindingContext != null) {
      // bla-bla
     }
    }

    I want to be sure!

    Art, 04 Мая 2012

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

    +86

    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
    <?
    
    function anti_sql($expressao)    {
    
        $inject=0;
      $expressao = strtolower($expressao);
    
        //arrays com palavras e caracteres invalidos
        $badword1 = array("' or 0=0 --",'" or 0=0 --',"or 0=0 --","' or 0=0 #","admin'--",'" or 0=0 #',"or 0=0 #","' or 'x'='x",'" or "x"="x',"') or ('x'='x","' or 1=1--",'" or 1=1--',"or 1=1--","' or a=a--",'" or "a"="a',"') or ('a'='a",'") or ("a"="a','hi" or "a"="a','hi" or 1=1 --',"hi' or 1=1 --","hi' or 'a'='a","hi') or ('a'='a",'hi") or ("a"="a',"or '1=1'");
        $badword2 = array("select", " select","select "," insert"," update","update "," delete","delete "," drop","drop "," destroy","destroy ");
    
        for($i=0;$i<sizeof($badword1);$i++) {
            if(substr_count($expressao,$badword1[$i])!=0)
              $inject=1;
           }
    
             for($i=0;$i<sizeof($badword2);$i++)    {
                  if(substr_count($expressao,$badword2[$i])!=0)
                  $inject=1;
             }
    
        $charvalidos = "abcdefghijklmnopqrstuvwxyz0123456789БАГВЗЙИКНМУТФХЪЩЬСбагвзйикнмутфхъщьс!?@#$%&(){}[]:;,.-_ ";
    
         for($i=0;$i<strlen($expressao);$i++)    {
            $char = substr($expressao,$i,1);
                if(substr_count($charvalidos,$char)==0)
                   $inject=1;
             }
    
        return($inject);
    }
    
    
    ?>

    Эх, португальские кодеры...

    killro0000, 01 Мая 2012

    Комментарии (24)
  9. Java / Говнокод #9489

    +86

    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
    @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
    
            Sdbankpd sdbankpd = (Sdbankpd) o;
    
            if (bjbank != null ? !bjbank.equals(sdbankpd.bjbank) : sdbankpd.bjbank != null) return false;
            if (bjbvpd != null ? !bjbvpd.equals(sdbankpd.bjbvpd) : sdbankpd.bjbvpd != null) return false;
            if (bjcncd != null ? !bjcncd.equals(sdbankpd.bjcncd) : sdbankpd.bjcncd != null) return false;
            if (bjcust != null ? !bjcust.equals(sdbankpd.bjcust) : sdbankpd.bjcust != null) return false;
            if (bjcycd != null ? !bjcycd.equals(sdbankpd.bjcycd) : sdbankpd.bjcycd != null) return false;
            if (bjdfin != null ? !bjdfin.equals(sdbankpd.bjdfin) : sdbankpd.bjdfin != null) return false;
            if (bjdnwd != null ? !bjdnwd.equals(sdbankpd.bjdnwd) : sdbankpd.bjdnwd != null) return false;
            if (bjefmt != null ? !bjefmt.equals(sdbankpd.bjefmt) : sdbankpd.bjefmt != null) return false;
            if (bjeyd != null ? !bjeyd.equals(sdbankpd.bjeyd) : sdbankpd.bjeyd != null) return false;
            if (bjhocy != null ? !bjhocy.equals(sdbankpd.bjhocy) : sdbankpd.bjhocy != null) return false;
            if (bjlccy != null ? !bjlccy.equals(sdbankpd.bjlccy) : sdbankpd.bjlccy != null) return false;
            if (bjlcd != null ? !bjlcd.equals(sdbankpd.bjlcd) : sdbankpd.bjlcd != null) return false;
            if (bjmdel != null ? !bjmdel.equals(sdbankpd.bjmdel) : sdbankpd.bjmdel != null) return false;
            if (bjmodt != null ? !bjmodt.equals(sdbankpd.bjmodt) : sdbankpd.bjmodt != null) return false;
            if (bjmrdt != null ? !bjmrdt.equals(sdbankpd.bjmrdt) : sdbankpd.bjmrdt != null) return false;
            if (bjpcfq != null ? !bjpcfq.equals(sdbankpd.bjpcfq) : sdbankpd.bjpcfq != null) return false;
            if (bjpcfu != null ? !bjpcfu.equals(sdbankpd.bjpcfu) : sdbankpd.bjpcfu != null) return false;
            if (bjpeyd != null ? !bjpeyd.equals(sdbankpd.bjpeyd) : sdbankpd.bjpeyd != null) return false;
            if (bjrdnb != null ? !bjrdnb.equals(sdbankpd.bjrdnb) : sdbankpd.bjrdnb != null) return false;
            if (bjsbrc != null ? !bjsbrc.equals(sdbankpd.bjsbrc) : sdbankpd.bjsbrc != null) return false;
            if (bjslcd != null ? !bjslcd.equals(sdbankpd.bjslcd) : sdbankpd.bjslcd != null) return false;
            if (bjsuc != null ? !bjsuc.equals(sdbankpd.bjsuc) : sdbankpd.bjsuc != null) return false;
            if (bjtylc != null ? !bjtylc.equals(sdbankpd.bjtylc) : sdbankpd.bjtylc != null) return false;
            if (bjurpt != null ? !bjurpt.equals(sdbankpd.bjurpt) : sdbankpd.bjurpt != null) return false;
            if (bjzone != null ? !bjzone.equals(sdbankpd.bjzone) : sdbankpd.bjzone != null) return false;
    
            return true;
        }

    Обработка резальтов селекта

    timmson666, 20 Февраля 2012

    Комментарии (11)
  10. Java / Говнокод #8706

    +86

    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
    public void type(char character) {
        	switch (character) {
        	case 'a': doType(VK_A); break;
        	case 'b': doType(VK_B); break;
        	case 'c': doType(VK_C); break;
        	case 'd': doType(VK_D); break;
        	case 'e': doType(VK_E); break;
        	case 'f': doType(VK_F); break;
        	case 'g': doType(VK_G); break;
        	case 'h': doType(VK_H); break;
        	case 'i': doType(VK_I); break;
        	case 'j': doType(VK_J); break;
        	case 'k': doType(VK_K); break;
        	case 'l': doType(VK_L); break;
        	case 'm': doType(VK_M); break;
        	case 'n': doType(VK_N); break;
        	case 'o': doType(VK_O); break;
        	case 'p': doType(VK_P); break;
        	case 'q': doType(VK_Q); break;
        	case 'r': doType(VK_R); break;
        	case 's': doType(VK_S); break;
        	case 't': doType(VK_T); break;
        	case 'u': doType(VK_U); break;
        	case 'v': doType(VK_V); break;
        	case 'w': doType(VK_W); break;
        	case 'x': doType(VK_X); break;
        	case 'y': doType(VK_Y); break;
        	case 'z': doType(VK_Z); break;
        	case 'A': doType(VK_SHIFT, VK_A); break;
        	case 'B': doType(VK_SHIFT, VK_B); break;
        	case 'C': doType(VK_SHIFT, VK_C); break;
        	case 'D': doType(VK_SHIFT, VK_D); break;
        	case 'E': doType(VK_SHIFT, VK_E); break;
    <...>
        	case '$': doType(VK_DOLLAR); break;
        	case '%': doType(VK_SHIFT, VK_5); break;
        	case '^': doType(VK_CIRCUMFLEX); break;
        	case '&': doType(VK_AMPERSAND); break;
        	case '*': doType(VK_ASTERISK); break;
        	case '(': doType(VK_LEFT_PARENTHESIS); break;
        	case ')': doType(VK_RIGHT_PARENTHESIS); break;
        	case '_': doType(VK_UNDERSCORE); break;
        	case '+': doType(VK_PLUS); break;
        	case '\t': doType(VK_TAB); break;
        	case '\n': doType(VK_ENTER); break;
        	case '[': doType(VK_OPEN_BRACKET); break;
        	case ']': doType(VK_CLOSE_BRACKET); break;
        	case '\\': doType(VK_BACK_SLASH); break;
        	case '{': doType(VK_SHIFT, VK_OPEN_BRACKET); break;
        	case '}': doType(VK_SHIFT, VK_CLOSE_BRACKET); break;
        	case '|': doType(VK_SHIFT, VK_BACK_SLASH); break;
        	case ';': doType(VK_SEMICOLON); break;
        	case ':': doType(VK_COLON); break;
        	case '\'': doType(VK_QUOTE); break;
        	case '"': doType(VK_QUOTEDBL); break;
        	case ',': doType(VK_COMMA); break;
        	case '<': doType(VK_LESS); break;
        	case '.': doType(VK_PERIOD); break;
        	case '>': doType(VK_GREATER); break;
        	case '/': doType(VK_SLASH); break;
        	case '?': doType(VK_SHIFT, VK_SLASH); break;
        	case ' ': doType(VK_SPACE); break;
        	default:

    http://stackoverflow.com/questions/1248510/convert-string-to-keyevents
    Конвертируем символы в клавиши.
    Боян, да. Но теперь на джаве. Кстати, автор забыл про toLower и toUpper.

    RaZeR, 01 Декабря 2011

    Комментарии (13)
  11. Java / Говнокод #7786

    +86

    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
    private static void slowDownABit() {
            for (int i = 0; i < 100; i++) {
                new Thread() {
    
                    @Override
                    public void run() {
                        for (int i = 0; i < 10000000; i++) {
                            double d1 = Math.random() + 1;
                            double d2 = Math.random() + 1;
                            double d3 = Math.random() + 1;
                            double d4 = Math.random() + 1;
                            double d = d1 * d2 / d3 / d4 * Math.sin(Math.random());
                        }
                    }
                }.start();
            }
        }

    akkuch, 06 Сентября 2011

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