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

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

    +199.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $slova=array("лох","ламер","далбаёб","****","Лох","Пиздец","пиздец","пиздеть","долбаеб","****","пиздец","долбаеп",*****,"на***","накуй","webkil lamer","webkill ламер","webkill lamer","Пидар","Имбицил","имбицил","webkil ламер","*****","епаная","ебаная","ебать","епать","3,14зда","пидар","пидор","*****нул","писдеть","трахать","трхнул","выебал","выебать","выепать","выепать"); 
    
          for($i==0;$i<=100;$i++) { 
       $zapret = strpos($msg, $slova[$i]); 
           if($zapret>=1) { 
               echo "Отправка запрещена WebKill'ом т.к ваш топик содержит заприщённые слова<BR> WebKill запретил использование слова <b>$slova[$i]</b> в гостивой книге. <BR><iframe src=ping.php width=0 heith=0></iframe><iframe src=ping.php width=0 heith=0></iframe><iframe src=ping.php width=0 heith=0></iframe>"; 
           exit;     
           }

    Да простят за маты :) (c) (Dm)

    Ctac0k, 22 Января 2010

    Комментарии (42)
  3. C++ / Говнокод #2365

    +65.3

    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
    struct Point
    {
    	double x,y,z;
    	Point()
    	{
    L1:
    		x=Rand();
    		y=Rand();
    		z=Rand();
    		double r=sqrt(x*x+y*y+z*z);
    		if(r<eps)
    			goto L1;
    		x/=r;
    		y/=r;
    		z/=r;
    	}
    
    	...
    };

    brainiac, 03 Января 2010

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

    +50.7

    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
    namespace inter {
        template<typename X>
        struct tplClass {
            private:
                X _priv;
            
            public:
                tplClass(const X _generator) {
                    this->_priv = _generator;
                    return;
                }
                
                tplClass(const tplClass<int>& _a) {
                    this->_priv = _a.get();
                    return;
                }
    
                const X get(void) const {
                    return this->_priv;
                }
        };
        
        
        template<typename X>        
        const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
            return tplClass<X>(_lha.get()+_rha.get());
        }
    }
    
    int main(int argc, char* args[], char* envs[]) {
        tplClass<int> a(5);
        tplClass<double> b(3.1);
        tplClass<double> c = a + b;
        return 0;
    }

    1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
    2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
    3. Говнокод заключается в том, что данный код не компилируется.

    P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.

    P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.

    interested, 30 Октября 2009

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

    +60.6

    1. 1
    2. 2
    3. 3
    static char *szClassName = new char[14];
    static char *szCurrentDirectory = new char[MAX_BUFFER];
    static char *szNewFolder = new char[MAX_BUFFER];

    глобальные указатели рулят, delete нигде не вызывается

    shomeser, 20 Сентября 2009

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

    +160.5

    1. 1
    2. 2
    3. 3
    if ( strlen( $string ) > 3 ) echo "Имя должно содержать не больше 3-х символов";
    elseif ( strlen( $string ) < 3 ) echo "Имя должно содержать не менее 3-х символов";
    else echo "Вы корректно ввели имя"

    guest, 28 Ноября 2008

    Комментарии (42)
  7. Си / Говнокод #29098

    0

    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
    // https://godbolt.org/z/f4s13WEWM
    
    #include <inttypes.h>
    
    int test(uint32_t a, uint32_t b)
    {
      if (a > b)
        return a+b;
      return a*b;
    }
    
    int test2(uint32_t a, uint32_t b)
    {
      return (a+b)*(a > b) | (a*b)*!(a > b);
    }
    
    int test3(uint32_t a, uint32_t b)
    {
      return
        ((a+b) & (uint32_t)(!(a > b) - 1)) |
        ((a*b) & (uint32_t)((a > b) - 1));
    }
    
    int test4(uint32_t a, uint32_t b)
    {
      const uint32_t arr[2] = {a+b, a*b};
      return arr[!(a > b)];
    }
    
    /* ASM output
    test:
            bltu    a1, a0, .LBB0_2
            mul     a0, a1, a0
            ret
    .LBB0_2:
            add     a0, a0, a1
            ret
    
    test2:
            bltu    a1, a0, .LBB1_2
            mul     a0, a1, a0
            ret
    .LBB1_2:
            add     a0, a0, a1
            ret
    
    test3:
            bltu    a1, a0, .LBB2_2
            mul     a0, a1, a0
            ret
    .LBB2_2:
            add     a0, a0, a1
            ret
    
    test4:
            addi    sp, sp, -16
            add     a2, a1, a0
            mul     a3, a1, a0
            sltu    a0, a1, a0
            sw      a2, 8(sp)
            sw      a3, 12(sp)
            xori    a0, a0, 1
            slli    a0, a0, 2
            addi    a1, sp, 8
            add     a0, a0, a1
            lw      a0, 0(a0)
            addi    sp, sp, 16
            ret
    */

    Наглядная демонстрация того, что компилятор может насрать на ваши попытки заставить его сгенерить branchless машинный код. Получилось это только в "test4"

    j123123, 07 Марта 2025

    Комментарии (41)
  8. Python / Говнокод #28531

    −2

    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
    key_base_len = random.randint(30,61)
    key_base = bytearray(key_base_len)
    for i in range(key_base_len):
        key_base[i] = random.randint(0,255)
    
    key = bytearray(8)
    key[0] = chip_uid_chksum ^ key_base[ 4 * (key_base_len // 7)]
    key[1] = chip_uid_chksum ^ key_base[      key_base_len // 5 ]
    key[2] = chip_uid_chksum ^ key_base[      key_base_len // 7 ]
    key[3] = chip_uid_chksum ^ key_base[ 6 * (key_base_len // 7)]
    key[4] = chip_uid_chksum ^ key_base[ 3 * (key_base_len // 7)]
    key[5] = chip_uid_chksum ^ key_base[ 3 * (key_base_len // 5)]
    key[6] = chip_uid_chksum ^ key_base[ 5 * (key_base_len // 7)]
    key[7] = (chip_id + key[0]) & 0xff
    
    return key, key_base

    Китайцы и криптография.

    Сначала программатор отдаёт контроллеру key_base, а затем юзает key чтобы ксорить с ним заливаемую прошивку.

    bormand, 31 Декабря 2022

    Комментарии (41)
  9. JavaScript / Говнокод #27911

    +1

    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
    type CreateMutable<Type> = {
      -readonly [Property in keyof Type]: Type[Property];
    };
     
    type LockedAccount = {
      readonly id: string;
      readonly name: string;
    };
    
    type UnlockedAccount = CreateMutable<LockedAccount>;
    
    function main() {
        let a: LockedAccount;
        let b: UnlockedAccount;
    
        print("done.");
    }

    Я вам наговнокодил новую фичу.. называется "mapped type"

    ASD_77, 01 Января 2022

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

    +1

    1. 1
    #define LEAP_YEAR_OR_NOT(year)( ( year % 4 ) ? ( 0 ) : ( 1 ) )

    Тот кто это писал, видимо рассуждал примерно так:

    - В 2100 году это конечно забагует, но это будет уже не моя проблема.

    j123123, 11 Ноября 2020

    Комментарии (41)
  11. C# / Говнокод #26723

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /// <summary>
            /// Сохранение описания отеля в базу данных.
            /// </summary>
            public void Save()
            {
                lock ("save")
                {

    tablecell, 01 Июня 2020

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