1. Список говнокодов пользователя Govnocoder#0xFF

    Всего: 47

  2. Pascal / Говнокод #12107

    +99

    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
    Procedure TForm1.CreateObjects(Column, Row: Integer); // Процедура создания кнопок (ячеек).
    Var
      i, j, iLeft, iTop, iRow : Integer; // Переменные, отвечающие за расположение ячеек на форме. (Кроме iRow, она содержит номер ячейки по горизонтали.)
      SpeedButton : array of TSpeedButton; // Собственно, сам массив с ячейками.
      cColumn : Char; // Номер ячейки по вертикали.
      iMine : ShortInt; // Дополнительная переменная кол-ва бомб на поле.
    BEGIN
    {Присваиваем начальные значения переменным. :7:}
      iLeft := 0; // Начальная позиция по горизонтали.
      iTop := 5; // Начальная позиция по вертикали.
      iRow := 1; // Номер ячейки по горизонтали.
      iMine := MineCount; // Кол-во мин на поле.
      cColumn := 'A'; // Номер ячейки по вертикали.
      SetLength(SpeedButton, Row+1); // Массив с ячейками.
    {------------------------------------------ :7:}
    
    {Создаём новые списки. :8:}
      FObjectList := TObjectList.Create; // Список с объектами.
      Form2.FMineList := TStringList.Create(); // Список с номерами мин на поле.
    {--------------------- :8:}
    
    {Главный цикл создания игрового поля :9:}
      For i := 1 to Column do // Запускаем цикл создания по вертикали.
       Begin
        For j:=1 to Row do // Теперь тоже самое по горизонтали.
         bEgin
           SpeedButton[j] := TSpeedButton.Create(Self); // Создаём очередную ячейку на поле.
           SpeedButton[j].Parent := GamePanel; // Этим параметром указываем, что ячейка принадлежит первой форме.
           SpeedButton[j].Top := iTop; // Задаём расположение ячейки по вертикали.
           SpeedButton[j].Name := cColumn + IntToStr(iRow); // Задаём имя ячейки.
           SpeedButton[j].Flat := True; // Используем св-во кнопок не отображаться на рисунке.
           SpeedButton[j].Font.Color := clBlue; // Делаем цвет текста синим.
           SpeedButton[j].Font.Style := [fsBold]; // Делаем шрифт жирным.
           SpeedButton[j].OnClick := SpeedButton1.OnClick; // Указываем, какая процедура будет вызываться при клике на ячейку.
           SpeedButton[j].OnMouseDown := SpeedButton1.OnMouseDown; // Указываем, какая процедура будет вызываться при нажатии на ячейку.
           SpeedButton[j].Left := iLeft+8; // Задаём расположение ячейки по горизонтали, смещая её на 8 пикселей вправо.
           {Устанавливаем бомбу в ячейку. :10:}
             If (iMine <> 0) and (SpeedButton[j].Name <> 'A1') then // Если кол-во бомб не превышено, то...
              beGin
               Randomize; // Генерируем список ПСЧ.
               SpeedButton[j].Tag := Random(2); // Случайным образом задаём, будет ли бомба находится в ячейке.
               If SpeedButton[j].Tag = 1 then
                begin
                 Form2.FMineList.Add(SpeedButton[j].Name); // Добавляем новую запись в массив бомб.
                 Dec(iMine); // Уменьшаем счетчик мин на единицу.
                end;
              enD;
           {----------------------------- :10:}
             FObjectList.Add(SpeedButton[j]);// Добавляем новую запись в массив ячеек.
             iLeft := iLeft + 24; //Увеличиваем расстояние между ячейками.
             If iRow = Row then iRow := 1 // Если номер следующей ячейки по горизонтали неправильный, то меняем его на 1.
              Else Inc(iRow); // Иначе увеличиваем номер.
         eNd;
        cColumn := Char(Ord(cColumn) + 1); // Увеличиваем номер ячейки по вертикали.
        iTop := iTop + 24; // Увеличиваем положение ячейки по вертикали.
        iLeft := 0; // Обнуляем позицию ячейки по горизонтали.
       End;
    {----------------------------------- :9:}
    
      ImageList1.GetBitmap(0, (FindComponent('A1') as TSpeedButton).Glyph); // Загружаем спрайт в первую ячейку.
      Form2.FMineList.SaveToFile('OUTPUT.TXT'); // Сохраняем расположение мин в файл.
      MineCountLabel.Caption := IntToStr(Form2.FMineList.Count); // Показываем колво мин на поле.
    END;
    
    Function TForm1.CheckMove(X,Y : ShortString): Boolean; // Функция проверки валидности ячейки. Она должна находится рядом с текущей.
    Var
     iXod, iAlf : Integer; // Вспомогательные переменные.
    BEGIN
     result := false; // Презумпция вины :)
     iXod := Abs(StrToInt(Y) - StrToInt(dPos.yInt)); // Получаем расстояние до текущей ячейки по горизонтали.
     iAlf := Abs(Ord(dPos.xChr) - Ord(X[1])); // Получаем расстояние до текущей ячейки по вертикали.
     If ((iXod <= 1) and (iAlf <= 1)) and ((iXod <> 0) or (iAlf <> 0)) then result := true; // И если оно не больше одного, то разрешаем ход.
    END;
    
    Procedure TForm1.SpeedButton1Click(Sender: TObject); // Главная процедура нажатия на кнопку(ячейку).
    Var
      i : Integer; // Счётчик цикла.
      cObject : TSpeedButton; // Сам объект.
      Str, j : String; // Вспомогательная переменная имени ячейки.
      Count : Integer; // Вспомогательная переменная. (стр. 160)
    BEGIN
    {Подготавливаем переменные :1:}
      cObject := TSpeedButton(Sender); // Получаем ячейку, на которую кликнули.
      Str := cObject.Name; // Присваиваем вспомогательной переменной имя задействованной ячейки.
      dClick.xAlf := Str[1]; // Присваиваем переменной первый символ задействованной ячейки по вертикали.
      dClick.yFlt := Copy(Str, 2, Length(Str)); // Получаем номер ячейки по горизонтали.
    {------------------------- :1:}
    ...

    По просьбам желающих. Код некогда созданной мною игрушки Сапёр. Отдельный прикол, это как потом все эти кнопки удаляются.

    Govnocoder#0xFF, 12 Ноября 2012

    Комментарии (149)
  3. Python / Говнокод #9636

    −103

    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
    def sun(i):
        s = str(i)
        c = 0
        for j in range(0,3):
            if s[j] == '0': return False
            c += int(s[j])
        if c == 10: return True
        return False
    
    
    i = 1
    count = 0
    for i in range(118,812):
        if sun(i):
            print i
            count += 1
    print 'Total: ' + str(count)

    Программа выводит трёхзначные числа, не содержащие нуля и сумма которых равна десяти. А также их количество.

    Govnocoder#0xFF, 10 Марта 2012

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    //Функция
     }
    return (s1.compareTo("") != 0 ? s1 + (s.compareTo("") != 0 ? GlomoConfig.distInfo.smsCustomTailSeparator() + s : "") : "").toLowerCase();
    }

    Взято из декомпилированного кода java-игрушки.

    Govnocoder#0xFF, 30 Января 2012

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

    +181

    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
    <!--Начало сценария
    
    var res="23342142"
    
    function check_me()
    {
    	var count=0
    	with(document.test)
    	{
    		if (!Q1[0].checked&&!Q1[1].checked&&!Q1[2].checked&&!Q1[3].checked) {count+=1};
    		if (!Q2[0].checked&&!Q2[1].checked&&!Q2[2].checked&&!Q2[3].checked) {count+=1};
    		if (!Q3[0].checked&&!Q3[1].checked&&!Q3[2].checked&&!Q3[3].checked) {count+=1};
    		if (!Q4[0].checked&&!Q4[1].checked&&!Q4[2].checked&&!Q4[3].checked) {count+=1};
    		if (!Q5[0].checked&&!Q5[1].checked&&!Q5[2].checked&&!Q5[3].checked) {count+=1};
    		if (!Q6[0].checked&&!Q6[1].checked&&!Q6[2].checked&&!Q6[3].checked) {count+=1};
    		if (!Q7[0].checked&&!Q7[1].checked&&!Q7[2].checked&&!Q7[3].checked) {count+=1};
    		if (!Q8[0].checked&&!Q8[1].checked&&!Q8[2].checked&&!Q8[3].checked) {count+=1};
    		if (count>0) {alert("Вы выполнили не все задания. Проверьте себя.")} 
    		else answer()
    	}
    }
    
    function control(k,f1,f2,f3,f4,f5,f6,f7,f8)
    {
    	if (k==1&&f1.checked) return true;
    	if (k==2&&f2.checked) return true;
    	if (k==3&&f3.checked) return true;
    	if (k==4&&f4.checked) return true;
    	if (k==5&&f5.checked) return true;
    	if (k==6&&f6.checked) return true;
    	if (k==7&&f7.checked) return true;
    	if (k==8&&f8.checked) return true;
    	return false;
    }
    
    function answer()
    {
    	answ="";
    	with(document)
    	{
    		answ+=control(res.charAt(0),test.Q1[0],test.Q1[1],test.Q1[2],test.Q1[3])?"1":"0"
    		answ+=control(res.charAt(1),test.Q2[0],test.Q2[1],test.Q2[2],test.Q2[3])?"1":"0"
    		answ+=control(res.charAt(2),test.Q3[0],test.Q3[1],test.Q3[2],test.Q3[3])?"1":"0"
    		answ+=control(res.charAt(3),test.Q4[0],test.Q4[1],test.Q4[2],test.Q4[3])?"1":"0"
    		answ+=control(res.charAt(4),test.Q5[0],test.Q5[1],test.Q5[2],test.Q5[3])?"1":"0"
    		answ+=control(res.charAt(5),test.Q6[0],test.Q6[1],test.Q6[2],test.Q6[3])?"1":"0"
    		answ+=control(res.charAt(6),test.Q7[0],test.Q7[1],test.Q7[2],test.Q7[3])?"1":"0"
    		answ+=control(res.charAt(7),test.Q8[0],test.Q8[1],test.Q8[2],test.Q8[3])?"1":"0"
    		showResult();
    	}
    }
    
    function showResult()
    {
    	var nok=0;
    	var i,s;
    	for (i=0;i<answ.length;i++) {nok+=answ.charAt(i)=="1"?1:0;}
                      if(nok<4) s='"НЕУДОВЛЕТВОРИТЕЛЬНО"';
                      if(nok==4) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    	if(nok>4 && nok<6) s='"УДОВЛЕТВОРИТЕЛЬНО"';
    	if(nok==6) s='"ХОРОШО"';
    	if(nok>6 && nok<8) s='"ХОРОШО"';
    	if(nok==8) s='"ОТЛИЧНО"';
    	document.test.s1.value="Количество правильных ответов "+nok+". Ваша оценка "+s+". Загляните в окно рядом с номером задания. Если ответ правильный, то там (+). Если Вы ошиблись, там (-).";
    	with(document.test)
    	{
    		if (answ.charAt(0)=="1") {T1.value=" +"} else {T1.value=" -"};
    		if (answ.charAt(1)=="1") {T2.value=" +"} else {T2.value=" -"};
    		if (answ.charAt(2)=="1") {T3.value=" +"} else {T3.value=" -"};
    		if (answ.charAt(3)=="1") {T4.value=" +"} else {T4.value=" -"};
    		if (answ.charAt(4)=="1") {T5.value=" +"} else {T5.value=" -"};
    		if (answ.charAt(5)=="1") {T6.value=" +"} else {T6.value=" -"};
    		if (answ.charAt(6)=="1") {T7.value=" +"} else {T7.value=" -"};
    		if (answ.charAt(7)=="1") {T8.value=" +"} else {T8.value=" -"};
    	}
    }

    http://www.junior.ru/wwwexam/t_gig.htm
    Тест по информатике.

    Govnocoder#0xFF, 15 Декабря 2011

    Комментарии (24)
  6. ActionScript / Говнокод #8623

    −92

    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
    var num = 100000;
    function setArray(num){
        var arr = new Array();
        var i:Number = 0;
        for (i=0;i<num;i++){
            arr[i] = 'ytrjnjht pyfxtybt';
        }
    }// 422
    function setArray2(num){
        for (i=0;i<num;i++){
            arr[i] = 'ytrjnjht pyfxtybt';
        }
    }//562
    function setArray3(num){
        for (var i=0;i<num;i++){
            arr[i] = 'ytrjnjht pyfxtybt';
        }
    }//344
    function setArray4(num){
        var arr:Array = new Array();
        var i:Number = 0;
        for (i=0;i<num;i++){
            arr.push('ytrjnjht pyfxtybt');
        }
    }//516
    function setArray5(num){
        var arr:Array = new Array();
        for (var i=0;i<num;i++){
            arr.push('ytrjnjht pyfxtybt');
        }
    }//531
    function setArray6(num){
        for (var i=0;i<num;i++){
            arr.push('ytrjnjht pyfxtybt');
        }
    }//188
    function setArray7(num){
        arr = null;
        for (var i=0;i<num;i++){
            arr.push('ytrjnjht pyfxtybt');
        }
    }//141

    Любопытный тест производительности.

    Govnocoder#0xFF, 23 Ноября 2011

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

    +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
    var s: string;
        res: string; 
    begin
      readln(s);
      res := 'Слишком большая строка';
      if length(s) = 0 then res := s;
      if length(s) = 1 then res := s;
      if length(s) = 2 then res := s;
      if length(s) = 3 then res := s;
      if length(s) = 4 then res := s[0] + ' ' + s[1] + s[2] + s[3];
      if length(s) = 5 then res := s[0] + s[1] +' ' + s[2] + s[3] + s[4];
      if length(s) = 6 then res := s[0] + s[1] + s[2] +' ' + s[3] + s[4] + s[5];
      if length(s) = 7 then res := s[0] + ' ' + s[1] + s[2] + s[3] +' ' + s[4] + s[5] + s[6];
      if length(s) = 8 then res := s[0] + s[1] + ' ' + s[2] + s[3] + s[4] +' ' + s[5] + s[6] + s[7];
      if length(s) = 9 then res := s[0] + s[1] + s[2] + ' ' + s[3] + s[4] + s[5] +' ' + s[6] + s[7] + s[8];
      writeln(res);
    end.

    Код масштабируемый - сейчас он обрабатывает строки, в которые можно записать от нуля до девяти символов, но его прозрачно можно смасштабировать до обработки хоть 20, хоть 50 символов.
    Кроме того, тут не используются платформозависимые API.

    Govnocoder#0xFF, 22 Ноября 2011

    Комментарии (26)
  8. Pascal / Говнокод #8434

    +92

    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
    Program gg;
    Uses crt;
    Var a,b,c,d,k,m,n,p,q:integer;
    Begin
    b:=a mod 100000;
    c:=a mod 1000;
    c:=c div 100;
    d:=a mod 10;
    d:=d div 10000;
    K:=b+c+d;
    m:=a mod 10000;
    m:=m div 10;
    n:=a mod 100;
    n:=n div 1000;
    p:=a div 100000;
    q:=m+n+p; 
    // И так далее...

    http://otvet.mail.ru/question/66333085/?point=2
    Ответы.Маил.ру
    nuff said.

    Govnocoder#0xFF, 06 Ноября 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    procedure TForm1.GoBtnClick(Sender: TObject);
    BEGIN
     If GoBtn.Enabled = false then Exit;
     GoBtn.Enabled := false;
    // Some code
    END;

    Вот что бывает, когда не продумаешь весь проект до конца.

    Govnocoder#0xFF, 28 Июля 2011

    Комментарии (22)
  10. Pascal / Говнокод #7345

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    procedure TForm1.Image1Click(Sender: TObject);
    begin
     sPictureName := Label2.Caption;
     Form2.Show;
    end;
    
    procedure TForm1.Image2Click(Sender: TObject);
    begin
     sPictureName := Label3.Caption;
     Form2.Show;
    end;

    Знаю конечно что уныло, но по моему делать одну процедуру из-за этого слишком геморройно. С тем же массивом из 2-х элементов хотя бы. Говно ли?

    Govnocoder#0xFF, 26 Июля 2011

    Комментарии (57)
  11. Pascal / Говнокод #7253

    +94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var s:string;
    begin
    cs.Active:=true; //Коннектимся
    if cs.Socket.Connected=true then begin //Если подключились то
    memo1.lines.add('Соединение установленно...'); //пишим в memo
    end else //в противном случае пишим это
    memo1.lines.add('Соединение неустановленно...'); //<--вот это :)

    >теперь у формы в событии OnGreate пишим
    Это капец....
    http://forum.hackforce.ru/thread1685.html#post405879

    Govnocoder#0xFF, 15 Июля 2011

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