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

    В номинации:
    За время:
  2. Куча / Говнокод #27698

    0

    1. 1
    2. 2
    "Эффективный C. Профессиональное программирование"  Роберт Сикорд.
    Фуфел или новая "белая книга" ?

    gne4do, 02 Октября 2021

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

    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
    -module(pqueue).
    
    -export([ in/3
            , out/1
            , new/0
            , close/1
            ]).
    
    -type prio() :: non_neg_integer().
    
    -record(priority_queue,
            { tab :: ets:tid()
            }).
    
    -define(size, {size, size}).
    -define(seqno(PRIO), {seqno, PRIO}).
    
    -opaque t() :: #priority_queue{}.
    
    -export_type([ prio/0
                 , t/0
                 ]).
    
    -spec new() -> t().
    new() ->
      Tab = ets:new(pqueue_tab, [ordered_set]),
      ets:insert(Tab, {?size, 0}),
      #priority_queue{tab = Tab}.
    
    -spec close(t()) -> ok.
    close(#priority_queue{tab = Tab}) ->
      true = ets:delete(Tab),
      ok.
    
    -spec in(term(), prio(), t()) -> ok.
    in(Val, Prio, #priority_queue{tab = Tab}) when Prio >= 0 ->
      Key = {get_next_seqno(Tab, Prio), Prio},
      true = ets:insert_new(Tab, {Key, Val}),
      ets:update_counter(Tab, ?size, {2, 1}, {?size, 0}),
      ok.
    
    -spec out(t()) -> {value, term()} | empty.
    out(#priority_queue{tab = Tab}) ->
      case ets:first(Tab) of
        Key = {SeqNo, _Prio} when is_integer(SeqNo) ->
          Val = ets:lookup_element(Tab, Key, 2),
          ets:update_counter(Tab, ?size, {2, -1}),
          ets:delete(Tab, Key),
          {value, Val};
        _ ->
          empty
      end.
    
    %% This function generates keys that go in sequence for each
    %% individual priority level, but interleave for different priority
    %% levels. Keys with lower priority are more sparse, so they are
    %% consumed less often in the total sequence
    get_next_seqno(Tab, Prio) ->
      Delta = Prio + 1,
      Key = ?seqno(Prio),
      ets:update_counter(Tab, Key, {2, Delta}, {Key, 0}).

    Творение безумца или гения.

    CHayT, 02 Сентября 2021

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (auto& key : interruptController.hardwareInterrupts | std::views::keys)
    {
    	memory[key * 2    ] = 0xFF;
    	memory[key * 2 + 1] = 0xFF;
    }

    охуенно.

    digitalEugene, 09 Мая 2021

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

    +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
    %% This function is needed as a hack to guide dialyzer into inferring
    %% the correct types.
    -spec id(A) -> A.
    id(A) ->
      A.
    
    %% Где-то в header'е....
    
    -define(deftarget(RECIPE), {RECIPE, fun my_module:id/1}).
    
    %% A horrible, horrible hack to make Dialyzer infer right type of the promise return value
    -define(want(TARGET),
            (fun() ->
                 case TARGET of
                   {_, ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer} ->
                     ___IAmSorryYouHaveToSeeThisWorkaroundForDialyzer(my_module:want(TARGET))
                 end
             end)()).

    Пути статический типизации в Erlang неисповедимы.

    CHayT, 26 Апреля 2021

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

    +1

    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
    // Update is called once per frame
        void Update () {
            if (!isWin && !isFail && !isPaused)
            {
                if (timeForUnhit > 0) //Для состояния восстановления игрока
                {
                    timeForUnhit -= Time.deltaTime;
                    //LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = hitPlayer;
                }
                else if (timeForInvc > 0)
                //Для состояния непобедимости игрока
                {
                    timeForInvc -= Time.deltaTime;
                    //LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = invcPlayer;
                }
    
                else
                {
                    //LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = player;
                    LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[0], 0);
                    if (invc)
                    {
                        
                        MusicManager.Instance.gameObject.GetComponent<AudioSource>().clip = MusicManager.Instance.music[1];
                        MusicManager.Instance.gameObject.GetComponent<AudioSource>().Play();
                    }
                    invc = false;
                    
                }
            }
    
            i = LevelGenerate.Instance.playerY;
            j = LevelGenerate.Instance.playerX;
            
            if (!isWin && !isFail) //Если уровень не завершен
            {
                collideEnemy(); //Обнаружение столкновения с врагом
                collectItem(); //Обнаружения столкновения с собираемым предметом
                genNthOrdColls(2); //Генерация предметов n-ого порядка после сбора предметов (n-1)-ого
                genNthOrdColls(3);
                genNthOrdColls(4);
    
                if (colls[0] == 0 && colls[1] == 0 && colls[2] == 0 && colls[3] == 0 && LevelGenerate.Instance.resLoaded) isWin = true; //Если все предметы собраны, то уровень завершен с прохождением
            }
    
            if (isWin && animationSet == 0) //Меняем спрайт игрока при завершении уровня
            {
                //LevelGenerate.Instance.player.GetComponent<SpriteRenderer>().sprite = winPlayer;
                LevelGenerate.Instance.player.GetComponent<Animator>().CrossFade(animNames[1], 0);
                animationSet++;
                delayTime = 1.5f;
                MusicManager.Instance.gameObject.GetComponent<AudioSource>().mute = true;
                SoundManager.Instance.gameObject.GetComponent<AudioSource>().clip = SoundManager.Instance.sounds[0];
                SoundManager.Instance.gameObject.GetComponent<AudioSource>().Play();
            }
    
            if (isWin && delayTime <= 0)
            {
                //path = Application.dataPath + "\\Levels\\SaveData1";
    
                /*if (Application.platform == RuntimePlatform.WindowsEditor)
                {
                    path = Application.dataPath;
                    path = Path.Combine(path, "Levels");
                }
                else if (Application.platform == RuntimePlatform.Android)
                    path = Application.persistentDataPath;
                
                path = Path.Combine(path, "SaveData1");
                fs = new FileStream(path, FileMode.Open);
                bw = new BinaryWriter(fs);*/
                levelNum = (byte)(Convert.ToByte(LevelGenerate.Instance.levelFile.Substring(5)) - 1);
                levelNum++;
                if (PlayerPrefs.GetInt("maxLevel") == levelNum)
                {
    
    
                    
                    PlayerPrefs.SetInt("maxLevel", (int)levelNum);
                    PlayerPrefs.Save();
                }
                PlayerPrefs.SetInt("level", (int)levelNum);
    
                /*bw.Write(levelNum);
                
                bw.Write("Level" + (levelNum+1).ToString());
                bw.Close();
                fs.Close();*/
                SceneManager.LoadScene("Win");
            } else if (delayTime > 0)
            {
                delayTime -= Time.deltaTime;
            }
            if (isFail && delayTime <= 0)
            {
                //path = Application.dataPath + "\\Levels\\SaveData1";
                /*if (Application.platform == RuntimePlatform.WindowsEditor)
                {
                    path = Application.dataPath;
                    path = Path.Combine(path, "Levels");

    ```
    }
    else if (Application.platform == RuntimePlatform.Android)
    path = Application.persistentDataPath;

    path = Path.Combine(path, "SaveData1");
    fs = new FileStream(path, FileMode.Open);
    bw = new BinaryWriter(fs);

    fs.Seek(1, SeekOrigin.Begin);
    bw.Write(LevelGenerate.Instance.levelFil e);
    bw.Close();
    fs.Close();*/
    PlayerPrefs.SetString("levelFile", LevelGenerate.Instance.levelFile);
    PlayerPrefs.Save();
    SceneManager.LoadScene("Fail");
    } else if (delayTime > 0)
    {
    delayTime -= Time.deltaTime;
    }
    }
    ```

    Самый страшный метод из EventManager-а (модуль который отвечал за все события в игре - коллизию с врагом, таймаут непобедимости и пр.).

    JaneBurt, 24 Апреля 2021

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

    +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
    ?check_trace(
           begin
               %% Inject some orderings to make sure the replicant
               %% receives transactions in all states.
               %%
               %% 1. Commit some transactions before the replicant start:
               ?force_ordering(#{?snk_kind := trans_gen_counter_update, value := 5}, #{?snk_kind := state_change, to := disconnected}),
               %% 2. Make sure the rest of transactions are produced after the agent starts:
               ?force_ordering(#{?snk_kind := subscribe_realtime_stream}, #{?snk_kind := trans_gen_counter_update, value := 10}),
               %% 3. Make sure transactions are sent during TLOG replay:
               ?force_ordering(#{?snk_kind := state_change, to := bootstrap}, #{?snk_kind := trans_gen_counter_update, value := 15}),
               %% 4. Make sure some transactions are produced while in normal mode
               ?force_ordering(#{?snk_kind := state_change, to := normal}, #{?snk_kind := trans_gen_counter_update, value := 25}),
    ...

    Какой тест )))

    CHayT, 24 Марта 2021

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

    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
    def filter_goods(items, date_registered_from=0, date_registered_to=99999999999, from_finished_entries=0, to_finished_entries=99999, views_from=0, views_to=999999, activeGoodsFrom=0, activeGoodsTo=999999, delete_no_delivery=False, delete_comapnies=False, delete_duplicates=False, published_later_then=0):
        ids = []
        q = Queue()
        for i in items:
            if i[0]['date_created'] >= published_later_then:
                if i[1]['date_registered'] >= date_registered_from:
                    if i[1]['date_registered'] <= date_registered_to:
                        if i[1]['prods_sold_cnt'] >= from_finished_entries:
                            if i[1]['prods_sold_cnt'] <= to_finished_entries:
                                if i[0]['views'] >= views_from:
                                    if i[0]['views'] <= views_to:
                                        if i[1]['prods_active_cnt'] >= activeGoodsFrom:
                                            if i[1]['prods_active_cnt'] <= activeGoodsTo:
                                                if delete_no_delivery:
                                                    if i[0]['delivery_enabled'] or delete_no_delivery == False:
                                                        if not (delete_comapnies and i[1]['type'] == 'person'):
                                                            if delete_comapnies == False:
                                                                if delete_duplicates:
                                                                    if i[0]['owner']['id'] not in ids:
                                                                        ids.append(i[0]['owner']['id'])
                                                                        q.put(i[0]['id'])
                                                                else:
                                                                    q.put(i[0]['id'])
                                                        return q

    Стояла задача написать самый длинный if? Человек не знает про and? Этого мы никогда не узнаем.

    katant, 30 Января 2021

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

    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
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    format PE64 GUI 5.0
    include 'win64a.inc'
    entry $
       xor    rdi,rdi
       push   rdi
       push   rdi
       push   rdi;$400000
       push   rdi
       push   rdi
       mov    rax,CW_USEDEFAULT
       push   rax
       push   rax
       push   rax
       push   rax
       push   rdi
       push   rdi
       push   rdi
       push   rdi
       mov    r9,WS_VISIBLE+WS_OVERLAPPEDWINDOW
       mov    r8,_title
       mov    rdx,_class
       mov    rcx,rdi
       call   [CreateWindowEx]
       mov    r8,WindowProc
       mov    rdx,-4
       mov    rcx,rax
       call   [SetWindowLongPtrA]
       mov    qword[_title],rax
       pop    rdi
       mov    rsi,rsp
       xor    rbx,rbx
       mov    bl,40
    @@:sub    rsp,rbx
       xor    r9,r9
       xor    r8,r8
       xor    rdx,rdx
       mov    rcx,rsi
       call   [GetMessage]
       mov    rcx,rsi
       call   [DispatchMessage]
       add    rsp,rbx
       jmp    @b
    WindowProc:
       push   r9
       cmp    rdx,WM_CLOSE
       je     app_close
    defwndproc:
       push   rdi
       push   rdi
       push   rdi
       push   rdi
       mov    r9,r8
       mov    r8,rdx
       mov    rdx,rcx
       mov    rcx,qword[_title]
       call   [CallWindowProc]
       pop    rdi
       pop    rdi
       pop    rdi
       pop    rdi
       pop    rdi
       ret
    app_close:
       call   [exit]
      _title db '1KBytex64',0
      _class db '#32770',0
    data import
      library\
        user32,'USER32.DLL',\
        msvcrt,'msvcrt.dll'
      include 'api\user32.inc'
      import msvcrt,\
        exit,'_exit'
    end data

    Ничего интересного, просто извращённый 1KBytex64

    chiacorp, 17 Января 2021

    Комментарии (3)
  10. 1C / Говнокод #27144

    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
    &НаСервереБезКонтекста
    Функция ПроверкаНаРукожопость1()
    	
    	ГруппаЮзеровРСЧ = Справочники.ГруппыПользователей.НайтиПоНаименованию("Отдел расчёта сотрудников");
    	ЮзерыРСЧ = ГруппаЮзеровРСЧ.Состав.ВыгрузитьКолонку("Пользователь");
    	
    	ТекущийЮзер = Пользователи.ТекущийПользователь();
    	//Если ТекущийЮзер = ЮзерыРСЧ.Найти(ТекущийЮзер) Тогда
    	НайденныеЮзеры = ЮзерыРСЧ.Найти(ТекущийЮзер);
    	Если (НайденныеЮзеры) <> Неопределено Тогда
    		Возврат ИСТИНА;
    	Иначе
    		Возврат ЛОЖЬ;
    	КонецЕсли
    	
    КонецФункции
    
    
    
    &НаКлиенте
    Процедура ПриОткрытииПосле(Отказ)
    	
    	//ПроверкаНаРукожопость(ЭтотОбъект);
    	
    	//Если РольДоступна("Расчетчик") Тогда
    	//	Объект.Дата.Доступность = ЛОЖЬ;
    	//КонецЕсли;
    	
    	Если ПроверкаНаРукожопость1() Тогда
    		ЭтотОбъект.Элементы.Дата.Доступность = ЛОЖЬ;
    		ЭтотОбъект.Элементы.Номер.Доступность = ЛОЖЬ;
    		ЭтотОбъект.Элементы.НомерПриказа.Доступность = ЛОЖЬ;
    	КонецЕсли;
    
    КонецПроцедуры

    Шобы не рукоблудили шелудивые бухгалтерши

    Stipa, 01 Декабря 2020

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

    +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
    $DI_WName = Array('ѕн','¬т','—р','„т','ѕт','—б','¬с');
    	$DI_MName = Array('январь','‘евраль','ћарт','јпрель','ћай','»юнь','»юль','јвгуст','—ент¤брь','ќкт¤брь','Ќо¤брь','ƒекабрь');
    
    	$today = TodayDate();
    	$today = explode(".",$today);
    	$today = $today[2]*10000+$today[1]*100+$today[0];
    
    	$DI_Date = TodayDate();
    	if (isset($_GET["p0"])) $DI_Date = $_GET["p0"];
    	$DI_Date = explode(".",$DI_Date);
    
    	$DI_YY = $DI_Date[2];
    	$DI_LYY = $DI_YY;
    	$DI_NYY = $DI_YY;
    
    	$DI_MM = $DI_Date[1]-1;
    	$DI_LMM = $DI_MM-1;
    	if ($DI_LMM<0) $DI_LMM = 11;
    	$DI_NMM = $DI_MM+1;
    	if ($DI_NMM>11) $DI_NMM = 0;
    
    	if ($DI_MM==0) $DI_LYY = $DI_YY-1;
    	if ($DI_MM==11) $DI_NYY = $DI_YY+1;
    
    	$DI_DD = $DI_Date[0];
    
    	$lastM = $DI_MM-2;
    	$yy = $DI_YY;
    	if ($lastM<1) {
    		$lastM = 12+$lastM;
    		$yy = $yy - 1;
    	}
    	$lastM = $DI_DD.".".$lastM.".".$yy;
    
    	$nextM = $DI_MM+4;
    	$yy = $DI_YY;
    	if ($nextM>12) {
    		$nextM = $nextM-12;
    		$yy = $yy + 1;
    	}
    	$nextM = $DI_DD.".".$nextM.".".$yy;
    
    	$lastY = $DI_DD.".".($DI_MM+1).".".($DI_YY-1);
    	$nextY = $DI_DD.".".($DI_MM+1).".".($DI_YY+1);

    kib0rg, 08 Сентября 2020

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