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

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

    +264.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    for($i=0;$i<10;$i++) {
    	for($i=0;$i<5;$i++) {
    		echo 'Какого х** зацикливает!!!!!!!';
    	}
    }
    ?>

    Каждый наверное наступал на эти грабли :)

    guest, 23 Января 2009

    Комментарии (51)
  3. Assembler / Говнокод #5500

    +263

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    :start
    call lol
    jmp start
    
    :lol
    push 9
    ret
    
    :test
    ...

    Не очевидная альтернатива jmp test

    rofl, 02 Февраля 2011

    Комментарии (18)
  4. PHP / Говнокод #726

    +262.7

    1. 1
    2. 2
    3. 3
    if (!session_start()) {
    		$_SESSION["error"] = "Couldn't start session <br />";
    	}

    guest, 17 Марта 2009

    Комментарии (9)
  5. Си / Говнокод #20860

    +262

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #define e if
    #define h while
    #define s return
    #define v NULL
    #define r else
    #define u case
    #define C switch
    #define D for
    #define L0 typedef
    #define L int
    L0 char S;L0 S*Z;L0 Z*U;L0 double N;
    L0 struct Q{L Z;union{N b;S c;}M;struct Q*w;struct Q*q;}Q;
    Q*K(L w){Q*n=(Q*)malloc(sizeof(Q));e(v==n)exit(1);n->Z=w;s n;}
    void A(Z g,U t){h(' '==*g)g++;*t=g;}
    Q*V(Z g,U t){Q*n=K(2);n->M.b=strtod(g,t);s n;}
    Q*I(Z g,U t){e('+'!=*g)s v;Q*n=K(1);n->M.c='+';++*t;s n;}
    Q*W(Z g,U t){e('x'!=*g)s v;Q*n=K(20);g++;e(*g<'0'||*g>'9'){n->M.b=1;*t=g;}r{n->M.b=strtod(g,t);e(*t==g)n->M.b=1;}s n;}
    Q*J(Z g,U t){Q*n,*p=v;h(*g){A(g,&g);Q*l=V(g,&g);A(g,&g);Q*m=W(g,&g);Q*o;e(v==m)o=l;r{o=K(1);o->M.c='*';o->w=l;o->q=m;}e(v==p)n=o;r{p->w=n;p->q=o;n=p;}A(g,&g);p=I(g,&g);e(v==p){*t=g;s n;}}}
    Q**E(Z g){L n=1,i;Z t=g;h(*t){e(';'==*t)n++;t++;}Q**R=(Q**)malloc((n+1)*sizeof(Q*));e(v==R)s v;D(i=0;i<n;++i){R[i]=J(g,&g);e(*g!=';'&&*g!=0)s v;e(v==R[i])s v;g++;}R[n]=v;s R;}
    N P(Q*I,N a){C(I->Z){u 1:C(I->M.c){u '+':s P(I->w,a)+P(I->q,a);u '*':s P(I->w,a)*P(I->q,a);u '/':s P(I->w,a)/P(I->q,a);u '-':s P(I->w,a)-P(I->q,a);}u 2:s I->M.b;u 20:s pow(a,I->M.b);}}
    N O(Q*I){N x=0,y=1,z=2,Z=P(I,x),X=P(I, y),H=P(I,z),j=1e-10;L i;D(i=0;i<100&&fabs(z-y)>j&&fabs(x-y)>j&&fabs(X)>j;i++){e(Z*X<0){z=y;H=X;}r e(H*X<0){x=y;Z=X;}r{N d=z-x;x=x-d;z=z+d;Z=P(I,x);X=P(I,y);}y=(z+x)/2;X=P(I,y);}s y;}
    Z B(Q**A){L n=0,i,j,d=0;D(;A[n]!=v;n++);Z M=(Z)malloc(n*10+1);e(v==M)s v;D(i=0;A[i]!=v;i++)D(j=0;j<10;j++){
      M[i*10+j-d]=(S)fmod(12.51*O(A[i])+j*17,256);
    e(!M[i*10+j-d])d++;}M[n*10-d]=0;s M;}
    L T(Z g,Z M){Z k=M;h(*g){*g++^=*k++;e(!*k)k=M;}s(0);}
    L main(void){
        Q**n=E("2.0x5+6.2x2+7;0.3x6.1+6x5+1");
        L i;
        Z k=B(n);
        S w[]={-91,-35,97,113,89,37,113,32,28,-10,124,67,93,32,123,70,63,-19,-71,-123,-114,45,109,64,96,57,13,7,-91,0};
        T(w,k);
        printf("%s\n",w);
    }

    Nastenka1998, 19 Августа 2016

    Комментарии (41)
  6. Си / Говнокод #20703

    +261

    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
    /* load config */
            for (i = 0; ; i++) {
                    conf[0] = '\0';
                    switch (i) {
                    case 0:
                            /* ~ */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE);
                            break;
                    case 1:
                            /* global */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE);
                            break;
                    case 2:
                            /* ~ compat */
                            snprintf(conf, sizeof conf, "%s/.%s",
                                pwd->pw_dir, SWM_CONF_FILE_OLD);
                            break;
                    case 3:
                            /* global compat */
                            snprintf(conf, sizeof conf, "/etc/%s",
                                SWM_CONF_FILE_OLD);
                            break;
                    default:
                            goto noconfig;
                    }
    
                    if (strlen(conf) && stat(conf, &sb) != -1)
                            if (S_ISREG(sb.st_mode)) {
                                    cfile = conf;
                                    break;
                            }
            }

    Вот так spectrwm грузит конфиги.

    codemonkey, 15 Августа 2016

    Комментарии (4)
  7. Assembler / Говнокод #2617

    +260.9

    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
    7855BD60 55               push        ebp  
    7855BD61 8B EC            mov         ebp,esp 
    7855BD63 56               push        esi  
    7855BD64 33 C0            xor         eax,eax 
    7855BD66 50               push        eax  
    7855BD67 50               push        eax  
    7855BD68 50               push        eax  
    7855BD69 50               push        eax  
    7855BD6A 50               push        eax  
    7855BD6B 50               push        eax  
    7855BD6C 50               push        eax  
    7855BD6D 50               push        eax  
    7855BD6E 8B 55 0C         mov         edx,dword ptr [ebp+0Ch] 
    7855BD71 8D 49 00         lea         ecx,[ecx] 
    7855BD74 8A 02            mov         al,byte ptr [edx] 
    7855BD76 0A C0            or          al,al 
    7855BD78 74 09            je          7855BD83 
    7855BD7A 83 C2 01         add         edx,1 
    7855BD7D 0F AB 04 24      bts         dword ptr [esp],eax 
    7855BD81 EB F1            jmp         7855BD74 
    7855BD83 8B 75 08         mov         esi,dword ptr [ebp+8] 
    7855BD86 8B FF            mov         edi,edi 
    7855BD88 8A 06            mov         al,byte ptr [esi] 
    7855BD8A 0A C0            or          al,al 
    7855BD8C 74 0C            je          7855BD9A 
    7855BD8E 83 C6 01         add         esi,1 
    7855BD91 0F A3 04 24      bt          dword ptr [esp],eax 
    7855BD95 73 F1            jae         7855BD88 
    7855BD97 8D 46 FF         lea         eax,[esi-1] 
    7855BD9A 83 C4 20         add         esp,20h 
    7855BD9D 5E               pop         esi  
    7855BD9E C9               leave            
    7855BD9F C3               ret

    чудеса оптимизации

    GovnocoderJr, 14 Февраля 2010

    Комментарии (30)
  8. Assembler / Говнокод #970

    +253.5

    1. 1
    0871    jmp 0x0871

    Прислали после дизассемблирования:))

    guest, 28 Апреля 2009

    Комментарии (55)
  9. Assembler / Говнокод #599

    +252

    1. 1
    2. 2
    3. 3
    <Ponchik> Передавайте преведы
    <Hormold> Привет античату!
    <%luz3r> h1

    Превееееед

    guest, 23 Февраля 2009

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

    +251

    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
    use32
    kernel:
      mov ax,0x8
      mov es,ax
      mov ds,ax
      mov ss,ax
      mov esp,0x10000
      
      
      macro SetPixel x,y
      {
        mov ebx,x
        mov eax,y
        call GSetPixel
      }
      
      mov esi,0xA0000
      xor ecx,ecx
      @@:
      mov eax,dword[charH+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0006
      xor ecx,ecx
      @@:
      mov eax,dword[charE+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA000C
      xor ecx,ecx
      @@:
      mov eax,dword[charL+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0012
      xor ecx,ecx
      @@:
      mov eax,dword[charL+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      mov esi,0xA0018
      xor ecx,ecx
      @@:
      mov eax,dword[charO+ecx*4]
      mov dword[esi],eax
      add esi,320
      inc ecx
      cmp ecx,7
      jb @b
      
      jmp $
      
    charH dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F0F0F0F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
    charE dd 0x0F0F0F0F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
    charL dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0000000F
          dd 0x0F0F0F0F
    charO dd 0x000F0F00
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x0F00000F
          dd 0x000F0F00

    Раскопал в старых файлах. Выводит на экран незамысловатое слово HELLO
    На World у меня бы одного бут-сектора не хватило.

    Ivan0x32, 24 Июня 2010

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

    +249

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    mov     ecx, [eax+374h] 
    xor     edx, edx
    test    ecx, ecx
    jg      short loc_17BE80
    mov     ecx, edx 
    loc_17BE80:
    mov     [eax+374h], ecx
    mov     eax, [ebp+360h]
    mov     edx, [eax+374h]
    cmp     edx, [eax+102Ch]
    ;...

    Какой интересный способ обнуления ecx избрал компилятор...

    gost, 27 Апреля 2015

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