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

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

    +16

    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
    char tab1[22][8]={"program","var","begin","end","int","float","bool","if","then","else","for","to","do","while","readln","writeln","as","||","!","&&","true","false"};
    char tab2[18][3]={"==","<",">","+","-","*","/","(",")",".",",",";"," ","!=","<=",">=",10};
    
    //Много кода
    
    if(!strcmp("program",st.top())&&!strcmp("program",&mas[j][0]))
    	{
    		st.pop();
    		j++;
    	}
    	else
    		if(!strcmp("var",st.top())&&!strcmp("var",&mas[j][0]))
    		{
    			st.pop();
    			j++;
    		}
    		else
    			if(!strcmp("begin",st.top())&&!strcmp("begin",&mas[j][0]))
    		{
    			st.pop();
    			j++;
    		}
    		else
    			if(!strcmp("end",st.top())&&!strcmp("end",&mas[j][0]))
    		{
    			st.pop();
    			j++;
    		}
    		else
    			if(!strcmp("int",st.top())&&!strcmp("int",&mas[j][0]))
    		{
    			st.pop();
    			j++;
    		}
    		else
    			if(!strcmp("float",st.top())&&!strcmp("float",&mas[j][0]))
    		{
    			st.pop();
    			j++;
    		}
    
    //Еще строк 200 такого

    Abbath, 14 Февраля 2013

    Комментарии (53)
  3. Objective C / Говнокод #12457

    −101

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    - (void)viewDidLoad
    {
        // ...
        
        float os_verson = [[[UIDevice currentDevice] systemVersion] floatValue];
        NSString* dev_ver_str = [[UIDevice currentDevice] systemVersion];
        
        if (os_verson >= 4 || [dev_ver_str hasPrefix:@"3.2"]) {
            [self viewWillAppear:NO];
            [self viewDidAppear:NO];
        }
    }

    Костыли наше всё

    tyler, 21 Января 2013

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

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for (int i = 0; i < 15; i++) {
        // Прикольное место, надо прокомментировать
        // Если наша функция Fork() вернула true, то мы
        // в дочернем процессе и форкаться больше не надо
        // Форканье - это задача родителя
        // Дети этим заниматься не должны
        if (Fork()) break;
    }

    Создание дочерних процессов. Вот такой костыль. Есть идеи, как улучшить?

    kafeman, 07 Января 2013

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

    +19

    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
    //generate the new objects
        EnterCriticalSection(&csWinEvent);
        value arr = alloc_array(windowStates.size());
        int i=0;
        for(
            std::tr1::unordered_map<int,windowState>::const_iterator it = windowStates.begin();
            it!=windowStates.end();
            ++it )
        {
            value o = alloc_empty_object();
            //int hwnd
            //int x,y,w,h
            //int minimized,maximized,restored,closed
            alloc_field(o, val_id("hwnd"), alloc_int(it->first));
            alloc_field(o, val_id("window"), *(value*)GetWindowLongPtr((HWND)it->first,GWLP_USERDATA)  );
            alloc_field(o, val_id("x"), alloc_int(it->second.x));
            alloc_field(o, val_id("y"), alloc_int(it->second.y));
            alloc_field(o, val_id("w"), alloc_int(it->second.w));
            alloc_field(o, val_id("h"), alloc_int(it->second.h));
            alloc_field(o, val_id("minimized"), alloc_int(it->second.minimized));
            alloc_field(o, val_id("maximized"), alloc_int(it->second.maximized));
            alloc_field(o, val_id("restored"), alloc_int(it->second.restored));
            alloc_field(o, val_id("closed"), alloc_int(it->second.closed));
            val_array_set_i(arr,i,o);
            ++i;
        }
        windowStates.clear();
        LeaveCriticalSection(&csWinEvent);

    Casts ;]

    petersvp, 12 Ноября 2012

    Комментарии (53)
  6. Pascal / Говнокод #11395

    +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
    // Получение имени выполняемого метода, вызывать можно только из Published-методов класса.
    // Для обычных методов: FindClassMethodNames(ClassType()), для статических методов FindClassMethodNames(self).
    {$optimization OFF}
    function FindClassMethodNames(obj: TClass): string;
    var _AdrPtr: Pointer;
    begin
      asm
        mov eax, obj
        mov edx, dword ptr [esp + 272]
        push ebx
        push esi
        push edi
        push $7FFFFFFF
        xor edi, edi
        jmp @@haveVMT
       @@outer:
        mov eax, dword ptr [eax]
       @@haveVMT:
        mov esi, dword ptr [eax].vmtMethodTable
        test esi, esi
        je @@parent
        movzx ecx, word ptr [esi]
        add esi, 2
       @@inner:
        pop ebx
        push edx
        sub edx, dword ptr [esi + 2]
        jl @@no1
        cmp edx, ebx
        jg @@no1
        mov ebx, edx
        mov edx, dword ptr [esi + 2]
        mov edi, edx
       @@no1:
        pop edx
        push ebx
        movzx ebx, word ptr [esi]
        add esi, ebx
        dec ecx
        jnz @@inner
       @@parent:
        mov eax, dword ptr [eax].vmtParent
        test eax, eax
        jne @@outer
        mov _AdrPtr, edi
        pop edi
        pop esi
        pop ebx
      end;
      Result := obj.MethodName(_AdrPtr);
    end;
    {$optimization ON}
    
    // пример использования
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(FindClassMethodNames(ClassType()));
    end;

    А есть нормальный способ получить имя выполняемого метода, и строку кода заодно?

    ctm, 11 Июля 2012

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

    −51

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    void a() 
    {
    }
     
    void b()
    {
      return a();
    }

    Компилится.
    http://ideone.com/8eP1w

    HaskellGovno, 13 Июня 2012

    Комментарии (53)
  8. JavaScript / Говнокод #10503

    +152

    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
    String.prototype.startsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        for(var a=0;a<b.length;++a){
    	if(this.charAt(a)!==b.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.endsWith=function(b){
        if(this.length<b.length){
    	return false
        }
        var c=b.length-1;
        for(var a=this.length-1;a>this.length-1-b.length;--a){
    	if(b.charAt(c--)!==this.charAt(a)){
    	    return false
    	}
        }
        return true
    };
    
    String.prototype.contains=function(a){
        return this.indexOf(a)!==-1
    };
    
    String.prototype.LastIndexOf=function(d,c){
        if(this.length===0||d===null){
    	return -1
        }
        if(d.length>this.length){
    	return -1
        }
        if(isNaN(c)){
    	c=this.length-d.length
        }
        var a=false;
        for(var b=c;b>=0;--b){
    	a=true;
    	for(var e=0;e<d.length;++e){
    	    if(this.charAt(b+e)!==d.charAt(e)){
    		a=false;
    		break
    	    }
    	}
    	if(a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.LastIndexOf_char=function(a){
        for(var b=this.length-1;b>=0;--b){
    	if(this.charAt(b)===a){
    	    return b
    	}
        }
        return -1
    };
    
    String.prototype.setCharAt=function(b,a){
        if(b>this.length-1){
    	return str
        }
        return this.substr(0,b)+a+this.substr(b+1)
    };
    
    String.prototype.countCharAppearances=function(a){
        var b=0;
        for(var c=0;c<this.length;++c){
    	if(this.charAt(c)==a){
    	    ++b
    	}
        }
        return b
    };

    Сорри, что много буков, но тут каждую функцию можно воспринимать как отдельное произведение.
    Разбираю бред какого-то безымянного идиота :(

    wvxvw, 31 Мая 2012

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

    −43

    1. 1
    int eger;

    dos_, 30 Мая 2012

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

    +972

    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
    private static void Main(string[] args)
    {
    Label_0000:
        Console.ForegroundColor = ConsoleColor.Green;
        Console.Title = "Inside Attack By XCrackers, Flood And Crash System!!";
        Console.Write("*******************************************************************************\nINSIDE ATTACK , CHECK SYSTEM , FLOOD FIREWALL AND SERVER , CRASH THE SYSTEM\nINSIDE ATTACK , CHECK SYSTEM , FLOOD FIREWALL AND SERVER , CRASH THE SYSTEM\nINSIDE ATTACK , CHECK SYSTEM , FLOOD FIREWALL AND SERVER , CRASH THE SYSTEM\n\n\nBY XCR, AND SYSTEMCHECH GLOBALS\nBY XCR, AND SYSTEMCHECH GLOBALS\nBY XCR, AND SYSTEMCHECH GLOBALS\n\n\nFOR CONTACT:\n\nSKYPE: roeeko10\n\nMSN: [email protected]\n\nSimple, Just Add Me For New UPDATE....\n*******************************************************************************\n\n");
        Console.Write("\n1) Inside.Attack, Flooding\n2) Exit\n\n");
        Console.Write("Your Choise : ");
        switch (int.Parse(Console.ReadLine()))
        {
            case 1:
            {
                Console.Write("\nEnter IP Address : ");
                string ipString = Console.ReadLine();
                Console.Write("\nPort : ");
                int port = int.Parse(Console.ReadLine());
                Console.Write("\nProtocol Tcp/Udp : ");
                Console.ReadLine();
                Console.Write("\nHow Much Request ? : ");
                int num3 = int.Parse(Console.ReadLine());
                byte[] bytes = Encoding.ASCII.GetBytes("abcdefghlkmnopzrstws!!$@$545$%2d21df3s");
                try
                {
                    for (int i = 0; i < num3; i++)
                    {
                        sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse(ipString), port);
                        sck.SendTimeout = 1;
                        sck.Connect(remoteEP);
                        sck.SendTo(bytes, remoteEP);
                        Console.WriteLine("[*]Inside.Attack, Syn Request : {0} Data Bytes : 1956 BYTE Every 0.3 Sec ", i);
                    }
                }
                catch
                {
                    Console.WriteLine("Cannot Connected To The Host ......");
                    Console.ReadLine();
                }
                Console.WriteLine("[+]Inside Attack Sucsess.!! All The Syn Request And The Data Byte Was Sent !! <ANT KEY FOR CONTINUE>");
                Console.ReadKey();
                goto Label_0000;
            }
            case 2:
                return;
        }
        Console.Clear();
        Console.WriteLine("Incorrect Choose!! . Please Choose 1/2.\n\n");
        goto Label_0000;
    }

    Код 13-и летнего кулхацкера. "Это ДДОС посоны".

    cthulhu25, 20 Января 2012

    Комментарии (53)
  11. Assembler / Говнокод #9059

    +149

    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
    org 100h
    Begin:
    call FPU_init
    fild [Number]	   ;сложение
    fidiv [Number2]    ;деление
    frndint 	   ;округление (в сторону нуля-
    call Ar_prog	   ;т. к. регистр RC установлен в 11)
    fimul [Number2]
    fild [Number]
    fisub [Number10]
    fidiv [Number3]
    frndint
    call Ar_prog
    fimul [Number3]
    fild [Number]
    fidiv [Number4]
    frndint
    call Ar_prog
    fimul [Number4]
    fincstp
    fincstp
    fadd st0, st2
    fsub st0, st6
    fist [Number9]
    call FPU_init
    fild [Number5]
    xor cx,cx
    Out1:
    fild [Number9]	   ;помещаем значение, полученное после вычитания
    inc cx		   ;увеличиваем cx
    fcom st1	   ;сравниваем значение с 10
    fstsw [Number14]
    mov ax, [Number14]
    sahf
    jb Out2 	   ;если меньше 10, перейти к Out2
    fdiv st0,st1	   ;делим на 10
    frndint 	   ;округляем
    fistp [Number12]   ;результат - в Number12
    fild [Number9]	   ;снова загружаем
    fprem		   ;остаток от деления на 10
    fiadd [Number15]   ;прибавляем 30h
    fistp [Number13]   ;выгружаем в память
    push [Number13]    ;толкаем в стек
    fild [Number12]    ;результат деления - в Number9
    fistp [Number9]
    jmp Out1	   ;цикл
    Out2:
    mov di, String	   ;записываем смещение строки
    fiadd [Number15]
    fist [Number13]
    push [Number13]
    Out3:
    pop dx		   ;выталкиваем коды цифр, начиная с конца
    mov [di],dl	   ;записываем их в строку
    inc di		   ;увеличиваем смещение
    loop Out3	   ;повторяем это
    mov [di], byte 24h ;записываем код конца строки для вывода
    mov dx, String	   ;записываем смещение строки в
    mov ah, 09h	   ;вызываем прерывание
    int 21h
    int 20h
    Ar_prog:
    fist [Number9]
    fimul [Number9]
    fild [Number9]
    fadd st0,st1
    fidiv [Number8]
    frndint
    ret
    FPU_init:
    finit		   ;инициализация сопроцессора
    fstcw [Number6]    ;получение контрольного слова
    mov ax, [Number7]  ;установка десятого и одиннадцатого
    or [Number6], ax   ;битов слова в 11 (можно две команды bts)
    fldcw [Number6]    ;загрузка контрольного слова в FPU
    ret
    Number dw 1000d
    Number2 dd 3d
    Number3 dw 5d
    Number4 dw 15d
    Number5 dw 10d
    Number6 dw ?
    Number7 dw 0c00h
    Number8 dw 2d
    Number9 dd ?
    Number10 dw 1d
    Number11 db 30h
    Number12 dd ?
    Number13 dw ?
    Number14 dw ?
    Number15 dd 0030h
    String db ?

    Первый в жизни осмысленный код. Я нормален?

    evgraf-klimov, 09 Января 2012

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