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

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

    +66

    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
    // генрация паролей
    function generatePassword($l = 8) {
    	function make_seed() {
    		list($usec, $sec) = explode(' ', microtime());
    		return (float) $sec + ((float) $usec * 100000);
    	}
    	$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
    	$password = '';
    	while (strlen($password)<$l) {
    		srand(make_seed());
    		$rnd = rand(0, count($le)-1);
    		$password.=$le[$rnd];
    	}
    	return $password;
    }

    Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!

    SunnyMagadan, 15 Января 2013

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

    +998

    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
    private static int[] p = {
            151,160,137,91,90,15,
            131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,
            190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,
            88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166,
            77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,
            102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196,
            135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123,
            5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,
            223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9,
            129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228,
            251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107,
            49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254,
            138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180};

    Заполнение массива случайными числами от 0 до 360

    Torvald, 17 Ноября 2011

    Комментарии (73)
  4. ActionScript / Говнокод #8486

    −113

    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
    var _str = ""
    	var _a_=""
    	_a_ = KID_DANGER_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_DANGER_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_EAT_pos.toString(16);	if (_a_.length < 2) { _str += "0" };_str += _a_;_a_ = KID_EAT_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_PLAY_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_PLAY_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_WASH_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_;	_a_ = KID_WASH_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_SLEEP_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_SLEEP_cnt.toString(16); if (_a_.length < 2) { _str += "0" };_str += _a_
    	_a_ = KID_EDU_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_EDU_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_STREET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_STREET_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_CLEAN_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_;	_a_ = KID_CLEAN_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_GARBAGE_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_GARBAGE_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_TOILET_pos.toString(16); if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = KID_TOILET_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KID_HEALTH_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = KID_HEALTH_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = KAT_event_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = KAT_event_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = DOG_event_pos.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_; _a_ = DOG_event_cnt.toString(16);	if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = FISH_event_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = FISH_event_cnt.toString(16); if (_a_.length < 2) { _str += "0" };	_str += _a_
    	_a_ = BIRD_event_pos.toString(16);	if (_a_.length < 2) { _str += "0" }; _str += _a_; _a_ = BIRD_event_cnt.toString(16);if (_a_.length <2) { _str+="0" };	_str += _a_

    Эмм, работа со строками...

    kyzi007, 11 Ноября 2011

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

    +146

    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
    я придумал отличную идею для нового языка программирования.
    это будут смешанные присваивания.
    можно будет писать например так:
    x <- y (тоже самое что и x = y)
    или
    x -> y ( y = x)
    также обмен значений:
    x <-> y
    паралельное присваивание (для обоих видов):
    a,b,c -> x,y,z (x = a,y =b, z =c)
    множественное присваивание:
    a -> b -> c ( b = a, c = a)
    a <- b <- c ( a = b, b = c)
    и их комбинации
    x, y, z <- a,b,c <- i,j,k <- 1,2,3 -> d,e,f
    правда круто?

    Последняя строчка кода как мне кажется будет пользоваться бешеной популярностью.
    Постоянно похожий код приходится писать.

    Fai, 02 Сентября 2011

    Комментарии (73)
  6. Куча / Говнокод #6666

    +67

    Адский пони

    Corpus edimus, sanguis bibumus!

    Lure Of Chaos, 14 Мая 2011

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

    +153

    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
    function checkTags(object, numberOfTags) {
        var tags = object.value.split(",");
        var k = tags.length;
        var tmp = new Array();
        for (var i = 0; i < k; ++i) {
            var temp = tags[i].replace(/(^\s+)|(\s+$)/g, '');
            temp = temp.replace(/[\s]{2,}/g, ' ');
            if (temp != '') { // отсеиваем пустые
                temp = temp.toLowerCase(); // переводим в нижний регистр
                // Первую букву в верхний регистр(захотелось мне так!!!)
                temp = temp.match(/(.{1})/g);
                temp[0] = temp[0].toUpperCase();
                temp = temp.join("");
                if (tmp.length > 0 && in_array(temp, tmp)) { // отсеиваем повторяющиеся
                    continue;
                }
                tmp.push(temp);
                if (tmp.length == numberOfTags) { // отсеиваем те что превышат лимит
                    break;
                }
            }
        }
        tags = tmp;
        $('entryTagsLeft').innerHTML = numberOfTags - tags.length;
        object.value = tags.join(', ');
    }

    Функция для проверки меток вводимых пользователем. Убираем лишние пробелы, переводить все символы в нижний регистр, переводит первую букву в верхний, удаляет повторы, отсеивает лишние метки(лимит на количество меток нужен так как они добавляются в цикле) в случае использования

    komprenda, 20 Декабря 2010

    Комментарии (73)
  8. Куча / Говнокод #28851

    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
    import std.stdio;
    
    interface Pethu {
        final void Say() {
            writeln("Hrueeee");
        }
    }
    
    void SayTwice(Pethu pethu) {
        pethu.Say();
        pethu.Say();
    }
    
    class PethuImpl : Pethu { }
    
    void main() {
        auto pethu = new PethuImpl();
        pethu.SayTwice();
    }

    Desktop, 19 Сентября 2023

    Комментарии (72)
  9. Куча / Говнокод #27379

    +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
    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
    (set-logic UF)
    ; https://smtlib.cs.uiowa.edu/logics.shtml
    ; UF for the extension allowing free sort and function symbols 
    
    (set-option :produce-proofs true)
    
    (declare-sort M_wff)
    
    
    ; AND2
    (declare-fun M_a2 (M_wff M_wff) M_wff)
    
    ; AND3
    (declare-fun M_a3 (M_wff M_wff M_wff) M_wff)
    
    
    
    ; (AND2 a b) <=> (AND2 b a)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_a2 a b)
          (M_a2 b a)
        )
      )
    )
    
    
    
    ; (AND2 a a) <=> a
    
    (assert 
      (forall ( (a M_wff) )
        (=
          (M_a2 a a)
          a
        )
      )
    )
    
    
    
    ; (AND2 a (AND2 b c)) <=> (AND3 a b c)
    
    (assert 
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a2 a (M_a2 b c))
          (M_a3 a b c)
        )
      )
    )
    
    
    
    ; (AND3 a b c) <=> (AND3 b a c)
    
    (assert
      (forall ( (a M_wff) (b M_wff) (c M_wff) )
        (=
          (M_a3 a b c)
          (M_a3 b a c)
        )
      )
    )
    
    
    
    ; IMPL - implication
    (declare-fun M_impl (M_wff M_wff) M_wff)
    
    
    
    ; http://us.metamath.org/ileuni/ax-1.html
    ; Axiom Simp
    ; (IMPL a (IMPL b a)) <=> (AND2 a b)
    
    (assert
      (forall ( (a M_wff) (b M_wff) )
        (=
          (M_impl a (M_impl b a))
          (M_a2 a b)
        )
      )
    )
    
    ...

    Весь код не влазит.

    https://rise4fun.com/Z3/GnfIH
    https://paste.debian.net/hidden/38ef8493/ (запасная ссылка)

    Переписывал Metamath на язык из SMT солверов https://smtlib.cs.uiowa.edu/language.shtml
    Z3 даже умеет доказывать какую-то питушню там.

    j123123, 28 Апреля 2021

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

    +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
    int main()
    {
        using Human = NamedTuple<
            Field<"name", std::string>,
            Field<"age", int>
        >;
        using User = NamedTuple<
            Field<"login", std::string>,
            Field<"password", std::string>
        >;
    
        Human vasya{ "Vasya", 16 };
        vasya.get<"age">() = 17;
    
        User user{ "xXxBaCRHxXx", "p4ssword" };
    
        auto vasyaMerged = mergeNamedTuples(vasya, user);
    
        std::cout << vasyaMerged.get<"name">() << " is " << vasyaMerged.get<"age">() << " years old!" << std::endl;
        std::cout << "Login is " << vasyaMerged.get<"login">() << " and password is " << vasyaMerged.get<"password">() << std::endl;
    }

    Как похорошел C++ при C++20!

    https://wandbox.org/permlink/llpXuy7IOSugtxHo

    PolinaAksenova, 18 Апреля 2021

    Комментарии (72)
  11. Куча / Говнокод #27062

    +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
    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
    include std/socket.e as s
    include std/error.e as err
    
    constant PORT = 5050
    constant BACKLOG = 5
    
    procedure die(object result, sequence action) 
    	printf(2, "Error %d in %s", {result, action})
    	err:crash(action)
    end procedure
    
    procedure ensure_zero(integer result, sequence action)
    	if result != 0 then
    		die(result, action)
    	end if 
    end procedure
    
    function ensure_seq(object result, sequence action)
    	if atom(result) then
    		die(result, action)
    	end if
    	return result
    end function
    
    enum SOCKET, READ, WRITE, ERROR
    constant PHRASE = "Hello from Euphoria\n"
    
    procedure client_proc(sequence socket)
    while 1 do
    		for i = 1 to length(PHRASE) do
    			sequence result = s:select({}, socket, {}, 0, 100)
    			sequence result_s = result[1]
    			if result_s[WRITE] = 1 then
    				s:send(socket, {PHRASE[i]}, 0)
    			end if 
    			task_yield()
    		end for
    end while
    end procedure
    
    constant client_proc_id = routine_id("client_proc")
    
    sequence server = ensure_seq(s:create(s:AF_INET, s:SOCK_STREAM, 0), "create")
    ensure_zero(s:bind(server, "127.0.0.1", PORT), "bind")
    ensure_zero(s:listen(server, BACKLOG), "listen")
    
    while 1 do
    	sequence listen_result = s:select(server, {}, {}, 0, 100)
    	if listen_result[1][READ] = 1 then
    		sequence client = ensure_seq(s:accept(server), "accept")
    		printf(1, "Here comes %s\n", {client[2]})
    		atom task = task_create(client_proc_id, {client[1]})
    		task_schedule(task, {0.5, 0.5})
    	end if
    	task_yield()
    end while

    MAKAKA, 27 Октября 2020

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