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

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

    +964

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    [Flags]
        public enum ColumnState
        {
            Exist = 1,
            NotExist = 2
        }

    Большинство енумов у нас помечено именно так.

    Irdis, 07 Октября 2011

    Комментарии (58)
  3. Куча / Говнокод #7892

    +74

    1. 1
    Ваш пароль должен состоять из 6-12 букв или цифр нормальной толщины шрифта.

    Не говнокод, но...

    7ion, 18 Сентября 2011

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

    +165

    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
    97. 97
    // header
    
        struct TMWFeatureSet
        {        
            TMWFeatureSet();
            ~TMWFeatureSet();
            
            enum TFeatureSetBitMask
            {
                EBackUpBitMask = 1, 
                ERestoreBitMask = 1 << 1, 
                EWipeBitMask = 1 << 2, 
                ELockBitMask = 1 << 3, 
                ELocateBitMask = 1 << 4, 
                EMessageBitMask = 1 << 5, 
                EScreamBitMask = 1 << 6, 
                EPrintBitMask = 1 << 7, 
                EShareBitMask = 1 << 8
            };
            
            enum TFeatureSet
            {
                EBackUp = 0, 
                ERestore, 
                EWipe, 
                ELock, 
                ELocate, 
                EMessage, 
                EScream,
                EPrint, 
                EShare,
                         
                ECount
            };
            
            
            void SetFeatureAttr( TInt iIndex, TBool aValue );
            
            void Reset( void );
             
            void ExternalizeL( RWriteStream & aOutputStream );
            
            void InternalizeL( RReadStream & aInputStream );
            
            RArray<TFeatureSetBitMask> iBitMasks;
            
            TFixedArray<TBool,ECount> iFeatureSetArr;       
        };        
    
    // implementation
    
        TMWFeatureSet::TMWFeatureSet()
        {
            iBitMasks.Append( EBackUpBitMask );
            iBitMasks.Append( ERestoreBitMask );
            iBitMasks.Append( EWipeBitMask );
            iBitMasks.Append( ELockBitMask );
            iBitMasks.Append( ELocateBitMask );
            iBitMasks.Append( EMessageBitMask );
            iBitMasks.Append( EScreamBitMask );
            iBitMasks.Append( EPrintBitMask );
            iBitMasks.Append( EShareBitMask );         
        }
        
        TMWFeatureSet::~TMWFeatureSet()
        {
            iBitMasks.Close();
        }
        
        void TMWFeatureSet::SetFeatureAttr( TInt iIndex, TBool aValue )
        {
            iFeatureSetArr[ iIndex ] = aValue;
        }
    
        void TMWFeatureSet::Reset( void )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                SetFeatureAttr( i, EFalse );
            }
        }
    
        void TMWFeatureSet::ExternalizeL( RWriteStream & aOutputStream )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                aOutputStream.WriteUint8L((TUint)iFeatureSetArr[ i ]);
            }
        }
    
        void TMWFeatureSet::InternalizeL( RReadStream & aInputStream )
        {
            for( TInt i = ( TInt ) TMWFeatureSet::EBackUp; i < ( TInt ) TMWFeatureSet::ECount; i++ )
            {
                iFeatureSetArr[ i ] = (TBool) aInputStream.ReadUint8L();
            }
        }

    Это реализация битовой маски и по шаблону Simpleton: реализация простейшей функциональности самым сложным способом известным разработчику.
    По идее надо было как то так:
    int mask;
    .....
    bool IsFeatureAvailable( feature )
    {
    return ( ( mask & feature ) == feature );
    }

    zurg, 12 Мая 2011

    Комментарии (58)
  5. Куча / Говнокод #5120

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Уважаемые коллеги!
    Вот и наступает Новый Год!
    Пускай в новом году у каждого будет как можно меньше сбоев и багов!
    Пусть будет профессиональный рост идти по экспоненте! 
    А тем, кто уже профессионалы своего дела - не останавливаться на достигнутом!
    Желаю меньше говнокода в программах, пусть даже с бодуна и на больную голову будет писаться код!
    
    Всех с наступающим, хорошего настроения и веселого празднования!

    1_and_0, 31 Декабря 2010

    Комментарии (58)
  6. PHP / Говнокод #4959

    +163

    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
    <?php
    // Заменить значния, выделенные жирным на действительные
    // Соединяемся с "Мускулом"
     define("MYSQL_HOST","myhost.ru",true);
     define("MYSQL_USER","username",true);
     define("MYSQL_PASS","userpass",true);
     define("MYSQL_DB_N","userdb",true);
     define("MYSQL_DB_N","userstable",true);
     $_MYSQL_CONNECT = false; $_MYSQL_ERROR = -1;
     if ($_MYSQL_CONNECT = @mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS))
     {
      if (mysql_select_db(MYSQL_DB_N,$_connect))
      {
       $_MYSQL_ERROR = 0; define("MYSQL_CONNECTED",true,true);
      } else { $_MYSQL_ERROR = 2; define("MYSQL_CONNECTED",false,true); }
     } else { $_MYSQL_ERROR = 1; define("MYSQL_CONNECTED",false,true); }
    // Проверяем значение
    // Определяем список разрешённых неалфавитноцифровых символов
     $_SRCH[0] = '.'; $_SRCH[1] = '_'; $_SRCH[2] = '-'; $_SRCH[3] = ' ';
     if (isset($_POST['user']))
     {
      $_tmp = iconv("UTF-8","CP1251//IGNORE",urldecode($_POST['user']));
      if (ctype_alnum(str_replace($_SRCH,'',$_tmp)) && (strlen($_tmp) < 33))
      {
       if (MYSQL_CONNECTED)
       {
        $_query = 'SELECT * FROM '.MYSQL_US_N." WHERE nick='".$_tmp."'";
        if ($_result = mysql_query($_query,$_MYSQL_CONNECT))
        {
         if ($_row = mysql_fetch_assoc($_result))
         {
          define("_RESULT","RES_EX",true);
         } else { define("_RESULT","RES_OK",true); }
        } else { define("_RESULT","RES_MYSQL_BQ",true); }
       } else { define("_RESULT","RES_MYSQL_NC",true); }
      } else { define("_RESULT","POST_IN",true); }
     } else { define("_RESULT","POST_NS",true); }

    qbasic, 17 Декабря 2010

    Комментарии (58)
  7. Perl / Говнокод #4506

    −126

    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
    sub Tgetent {
        local($TERM) = @_;
        local($TERMCAP,$_,$entry,$loop,$field);
    
        # warn "Tgetent: no ospeed set" unless $ospeed;
        foreach $key (keys %TC) {
    	delete $TC{$key};
        }
        $TERM = $ENV{'TERM'} unless $TERM;
        $TERM =~ s/(\W)/\\$1/g;
        $TERMCAP = $ENV{'TERMCAP'};
        $TERMCAP = '/etc/termcap' unless $TERMCAP;
        if ($TERMCAP !~ m:^/:) {
    	if ($TERMCAP !~ /(^|\|)$TERM[:\|]/) {
    	    $TERMCAP = '/etc/termcap';
    	}
        }
        if ($TERMCAP =~ m:^/:) {
    	$entry = '';
    	do {
    	    $loop = "
    	    open(TERMCAP,'<$TERMCAP') || die \"Can't open $TERMCAP\";
    	    while (<TERMCAP>) {
    		next if /^#/;
    		next if /^\t/;
    		if (/(^|\\|)${TERM}[:\\|]/) {
    		    chop;
    		    while (chop eq '\\\\') {
    			\$_ .= <TERMCAP>;
    			chop;
    		    }
    		    \$_ .= ':';
    		    last;
    		}
    	    }
    	    close TERMCAP;
    	    \$entry .= \$_;
    	    ";
    	    eval $loop;
    	} while s/:tc=([^:]+):/:/ && ($TERM = $1);
    	$TERMCAP = $entry;
        }
    
        foreach $field (split(/:[\s:\\]*/,$TERMCAP)) {
    	if ($field =~ /^\w\w$/) {
    	    $TC{$field} = 1;
    	}
    	elsif ($field =~ /^(\w\w)#(.*)/) {
    	    $TC{$1} = $2 if $TC{$1} eq '';
    	}
    	elsif ($field =~ /^(\w\w)=(.*)/) {
    	    $entry = $1;
    	    $_ = $2;
    	    s/\\E/\033/g;
    	    s/\\(200)/pack('c',0)/eg;			# NUL character
    	    s/\\(0\d\d)/pack('c',oct($1))/eg;	# octal
    	    s/\\(0x[0-9A-Fa-f][0-9A-Fa-f])/pack('c',hex($1))/eg;	# hex
    	    s/\\(\d\d\d)/pack('c',$1 & 0177)/eg;
    	    s/\\n/\n/g;
    	    s/\\r/\r/g;
    	    s/\\t/\t/g;
    	    s/\\b/\b/g;
    	    s/\\f/\f/g;
    	    s/\\\^/\377/g;
    	    s/\^\?/\177/g;
    	    s/\^(.)/pack('c',ord($1) & 31)/eg;
    	    s/\\(.)/$1/g;
    	    s/\377/^/g;
    	    $TC{$entry} = $_ if $TC{$entry} eq '';
    	}
        }
        $TC{'pc'} = "\0" if $TC{'pc'} eq '';
        $TC{'bc'} = "\b" if $TC{'bc'} eq '';
    }

    Гениальный код.

    Arigato, 01 Ноября 2010

    Комментарии (58)
  8. Си / Говнокод #4029

    +144

    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
    #include <stdio.h>
    
    main()
    {
        char old[1000];
        char new[1000];
        int i;                      /*счетчик цикла длинны массива */
        int z;                      /*счетчик нового массива */
        int l;                      /*длинна массива */
        int c;                      /*член массива */
        l = 0;
        z = 0;
    
        printf
            ("программа удаления повторяющихся символов\n");
        printf
            ("введите последовательности символов, из которых нужно удалить повторяющиеся, по окончании вводна нажмите Ctrl+D \n");
    
    
        while ((c = getchar()) != EOF) {
            old[l] = c;
            l++;
        }
        old[l] = 0;
    
        printf
            ("Введите символ, который нужно удадить как повторяющийся\n");
        c = getchar();
    
    
        for (i = 0; i < l; i++) {
    
            if (old[i] != c) {
                new[z] = old[i];
                z++;
            } else if (old[i] == c && old[i + 1] != c) {    /*один символ из повторяющихся */
                new[z] = old[i];
                z++;
            }
    
        }
        new[z] = 0;
        printf("%s\n", new);
        printf("*end");
    }

    Сорри за флуд, но тут форматирование полутше.

    killer1804, 19 Августа 2010

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

    +189

    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
    for (int y=0; y<height; ++y)
    	{
    		int x=0;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + srcp[x+1]*28830 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + srcp[x+2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + srcp[x+3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x+4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16;
    		for (x=4; x<width-4; ++x)
    		{
    			dstp[x] = ((srcp[x-4]+srcp[x+4])*339 + (srcp[x-3]+srcp[x+3])*1951 + 
    					(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    					srcp[x]*18508 + 32768)>>16;
    		}
    		dstp[x] = (srcp[x-4]*678 + (srcp[x-3]+srcp[x+3])*1951 + 
    				(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    				srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + 
    			(srcp[x-2]+srcp[x+2])*6809 + (srcp[x-1]+srcp[x+1])*14415 + 
    			srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x+3]*3902 + srcp[x-2]*13618 + 
    			(srcp[x-1]+srcp[x+1])*14415 + srcp[x]*18508 + 32768)>>16; ++x;
    		dstp[x] = (srcp[x-4]*678 + srcp[x-3]*3902 + srcp[x-2]*13618 + 
    			srcp[x-1]*28830 + srcp[x]*18508 + 32768)>>16;
    		srcp += pitch;
    		dstp += pitch;
    	}

    вот он - бесконстантый код

    3.14159265, 29 Июня 2010

    Комментарии (58)
  10. Куча / Говнокод #3509

    +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
    52. 52
    53. 53
    54. 54
    [BITS 16]
    [ORG 7C00h]
    main:
    
    mov ah,0Eh
    mov al,'B'
    int 10h
    
    mov ah,0Eh
    mov al,'o'
    int 10h
    
    mov ah,0Eh
    mov al,'l'
    int 10h
    
    mov ah,0Eh
    mov al,'g'
    int 10h
    
    mov ah,0Eh
    mov al,'e'
    int 10h
    
    mov ah,0Eh
    mov al,'n'
    int 10h
    
    mov ah,0Eh
    mov al,'O'
    int 10h
    
    mov ah,0Eh
    mov al,'S'
    int 10h
    
    mov ah,0Eh
    mov al,' '
    int 10h
    
    mov ah,0Eh
    mov al,'2'
    int 10h
    
    mov ah,0Eh
    mov al,'.'
    int 10h
    
    mov ah,0Eh
    mov al,'0'
    int 10h
    
    times 510-($-$$) db 0
    dw 0xAA55

    Так будет выглядеть бутлоадер BolgenOS 2.0

    Запускать с:

    nasm os.asm -o os.bin
    dd if=os.bin of=os.img bs=512
    kvm os.img

    Webkill, 18 Июня 2010

    Комментарии (58)
  11. PHP / Говнокод #3315

    +167

    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
    <?
    error_reporting(0);
    $b=array("Калининград","Вологда","Далматово","Дмитров","Архангельск","Владивосток","Краков");
    
    //конкурсный код:
    //begin
    for($i=0;$i<7;$i++){$s.="for(\$z[$i]=0;\$z[$i]<7;\$z[$i]++)";$n.="\$z[$i],";$q.="\$b[\$z[$i]],";}$f='for($i=0;$i<7;$i++){$l[$i]=strlen($b[$i])-1;$c[$i]=strtolower($b[$i]);for($j=0;$j<7;$j++)if($i!=$j&&$b[$i][$l[$i]]==strtolower($b[$j][0]))$e[$i]=true;}'.$s.'{$y=array('.$n.');sort($y);if($y==array(0,1,2,3,4,5,6)){$d=true;for($i=0;$i<6;$i++)if($d&&$c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0]&&($e[$z[$i]]||$c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))$d=!$d;if($d)$a=array('.$q.');}}';eval($f);
    //end
    print_r($a);
    
    
    
    echo "<br />";
    echo "<br />";
    
    
    
    //тоже самое в нормальном виде:
    
    for($i=0;$i<7;$i++)
    {
      $l[$i]=strlen($b[$i])-1;
      $c[$i]=strtolower($b[$i]);
      for($j=0;$j<7;$j++)  
      {
        if($i!=$j && $b[$i][$l[$i]]==strtolower($b[$j][0]))
        {
          $ecantUsePrelast[$i] = true;
        }
      }
    };
     
      for($z[0]=0;$z[0]<7;$z[0]++)
        for($z[1]=0;$z[1]<7;$z[1]++)
          for($z[2]=0;$z[2]<7;$z[2]++)
            for($z[3]=0;$z[3]<7;$z[3]++)
              for($z[4]=0;$z[4]<7;$z[4]++)
                for($z[5]=0;$z[5]<7;$z[5]++)
                  for($z[6]=0;$z[6]<7;$z[6]++)
                  {
                    $y=array($z[6],$z[5],$z[4],$z[3],$z[2],$z[1],$z[0]);
                    sort($y);
                    if($y==array(0,1,2,3,4,5,6))
                    {
                      $dcorrect=true;
                      for($i=0;$i<6;$i++)                    
                        if($dcorrect && $c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0] && ($ecantUsePrelast[$z[$i]] || $c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))
                          $dcorrect=!$dcorrect;
                      if($dcorrect)
                      {
                        $a=array($b[$z[0]],$b[$z[1]],$b[$z[2]],$b[$z[3]],$b[$z[4]],$b[$z[5]],$b[$z[6]]);
                      }
                    }
                  }    
           
     
    print_r($a);
    
    ?>

    Чтобы немного развеять "академическую" атмосферу на сайте, мы решили провести конкурс в стиле Code Golf (написать программное решение задачи, использовав минимальное количество символов)

    Задание: написать программу для игры «в города».

    На вход подается массив вида

    [Калининград, Вологда, Алматы, Дмитров, Архангельск, Тобольск, Краков]

    На выходе.

    [Архангельск, Краков, Вологда, Алматы , Тобольск, Калининград, Дмитров]

    xytop, 26 Мая 2010

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