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

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

    +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
    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
    int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b)
    {
    	int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left;
    	int k;
    	
    	if (iNumber > 0)
    	{
    		// SPR_Draw 100's
    		if (iNumber >= 100)
    		{
    			 k = iNumber/100;
    			SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
    			x += iWidth;
    		}
    		else if (iFlags & (DHN_3DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw 10's
    		if (iNumber >= 10)
    		{
    			k = (iNumber % 100)/10;
    			SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    			SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
    			x += iWidth;
    		}
    		else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw ones
    		k = iNumber % 10;
    		SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
    		SPR_DrawAdditive(0,  x, y, &GetSpriteRect(m_HUD_number_0 + k));
    		x += iWidth;
    	} 
    	else if (iFlags & DHN_DRAWZERO) 
    	{
    		SPR_Set(GetSprite(m_HUD_number_0), r, g, b );
    
    		// SPR_Draw 100's
    		if (iFlags & (DHN_3DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
    		{
    			//SPR_DrawAdditive( 0, x, y, &rc );
    			x += iWidth;
    		}
    
    		// SPR_Draw ones
    		
    		SPR_DrawAdditive( 0,  x, y, &GetSpriteRect(m_HUD_number_0));
    		x += iWidth;
    	}
    
    	return x;
    }
    
    int CHud::GetNumWidth( int iNumber, int iFlags )
    {
    	if (iFlags & (DHN_3DIGITS))
    		return 3;
    
    	if (iFlags & (DHN_2DIGITS))
    		return 2;
    
    	if (iNumber <= 0)
    	{
    		if (iFlags & (DHN_DRAWZERO))
    			return 1;
    		else
    			return 0;
    	}
    
    	if (iNumber < 10)
    		return 1;
    
    	if (iNumber < 100)
    		return 2;
    
    	return 3;
    
    }

    Программишка, я тут тебе принёс ещё кода из Half-Life 1.
    https://github.com/ValveSoftware/halflife/blob/master/cl_dll/hud_redraw.cpp#L252

    Собственно, что код-то делает? Рисует спрайты с циферками. Те, что показывают текущее количество HP, брони, амуниции.

    a1batross, 11 Мая 2016

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

    −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
    bool* sdvig_vpravo(bool* mas) {
    	if (mas[0] == 1 && mas[1] == 0 && mas[2] == 0) {
    		mas[0] = 0;
    		mas[1] = 1;
    		mas[2] = 0;
    	}
    	else if (mas[0] == 0 && mas[1] == 1 && mas[2] == 0) {
    		mas[0] = 0;
    		mas[1] = 0;
    		mas[2] = 1;
    	}
    	else if (mas[0] == 0 && mas[1] == 0 && mas[2] == 1) {
    		mas[0] = 1;
    		mas[1] = 0;
    		mas[2] = 0;
    	}
    	return mas;
    }

    Кольцевой сдвиг на один элемент булевского массива размерности 3. Возможно удивитесь, но этот великий костыль я сотворил на полном серьезе.

    petr_koshka23, 12 Апреля 2016

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

    +5

    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
    Action doItWrong;
    var filename = "sdf";
    using (var fileStream = new FileStream(filename,FileMode.Create))
    {
    	doItWrong=()=>
    	{
    		for(int i = 0; i < 10; i++)
    		{
    			fileStream.WriteByte(255);
    		}
    	};
    }
    doItWrong();

    Интересно, почему такое вообще не запрещают компилировать?

    tucvbif, 11 Апреля 2016

    Комментарии (16)
  5. PHP / Говнокод #19644

    +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
    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
    //получаем Элемент 
    $resource = CIBlockElement::GetByID($Bid);
    if ($ob = $resource->GetNextElement())
    {
        //вытягиваем поля, свойства
        $arFields = $ob->GetFields();
        $arFields['PROPERTIES'] = $ob->GetProperties();
    	
        // удаляем все поля, нахрен мы их вообще выдергивали
        $arFieldsCopy = $arFields;
    	unset(
    		$arFieldsCopy['ID'], 
    		$arFieldsCopy['~ID'], 
    		$arFieldsCopy['IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['~IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['TIMESTAMP_X'], 
    		$arFieldsCopy['~TIMESTAMP_X'], 
    		$arFieldsCopy['ACTIVE_TO'], 
    		$arFieldsCopy['~ACTIVE_TO'], 
    		$arFieldsCopy['DATE_ACTIVE_TO'], 
    		$arFieldsCopy['~DATE_ACTIVE_TO'], 
    		$arFieldsCopy['PREVIEW_PICTURE'], 
    		$arFieldsCopy['~PREVIEW_PICTURE'], 
    		$arFieldsCopy['PREVIEW_TEXT'], 
    		$arFieldsCopy['~PREVIEW_TEXT'], 
    		$arFieldsCopy['DETAIL_PICTURE'], 
    		$arFieldsCopy['~DETAIL_PICTURE'], 
    		$arFieldsCopy['DETAIL_TEXT'], 
    		$arFieldsCopy['~DETAIL_TEXT'], 
    		$arFieldsCopy['XML_ID'], 
    		$arFieldsCopy['~XML_ID'], 
    		$arFieldsCopy['EXTERNAL_ID'], 
    		$arFieldsCopy['~EXTERNAL_ID'], 
    		$arFieldsCopy['TMP_ID'], 
    		$arFieldsCopy['~TMP_ID'], 
    		$arFieldsCopy['CODE'], 
    		$arFieldsCopy['~CODE'], 
    		$arFieldsCopy['SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['~SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['~WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['WF_COMMENTS'], 
    		$arFieldsCopy['~WF_COMMENTS'], 
    		$arFieldsCopy['WF_DATE_LOCK'], 
    		$arFieldsCopy['~WF_DATE_LOCK'], 
    		$arFieldsCopy['WF_LOCKED_BY'], 
    		$arFieldsCopy['~WF_LOCKED_BY'], 
    		$arFieldsCopy['WF_NEW'], 
    		$arFieldsCopy['~WF_NEW'], 
    		$arFieldsCopy['WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['~WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['SHOW_COUNTER'], 
    		$arFieldsCopy['~SHOW_COUNTER'], 
    		$arFieldsCopy['TAGS'], 
    		$arFieldsCopy['~TAGS'], 
    		$arFieldsCopy['LOCKED_USER_NAME'], 
    		$arFieldsCopy['~LOCKED_USER_NAME'], 
    		$arFieldsCopy['SHOW_COUNTER_START'],
    		$arFieldsCopy['~SHOW_COUNTER_START']
    	);
           
         
            $arFieldsCopy['ACTIVE']='N';
    	$arFieldsCopy['ACTIVE_FROM']=date('d.m.Y');
           /*... тра тра та заполняю я поля ....*/ 
    
         $arFieldsCopy['PROPERTY_VALUES'] = [
           /* ... тра та та, 
                         тра та та,
                            заполняю свойства я  
                ...
          */
         ];
           /*
               ... Продолжая песню петь
                       удалю я все теперь 
               ...
           */
    	unset($arFieldsCopy['PROPERTIES']);
       // кульминация пьесы, добавление нового Элемента 
        $el = new CIBlockElement();
        $NEW_BID_ID = $el->Add($arFieldsCopy);
    }

    Эм.... толи память экономит, то ли оплата за код построчно ....

    BroadcastAddress, 16 Марта 2016

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

    −99

    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
    КолонкаTMCID=ТаблицаСЗаказ.колонки.TMCID;
    	КолонкаTMCID.ТекстШапки				= "№ тов.";
    	КолонкаTMCID.толькоПросмотр			= Истина;
    	КолонкаTMCID.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаType=ТаблицаСЗаказ.колонки.Type;
    	КолонкаType.ТекстШапки				= "Тип этикетки";
    	КолонкаType.толькоПросмотр			= Истина;
    	КолонкаType.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаName=ТаблицаСЗаказ.колонки.Name;
    	КолонкаName.ТекстШапки				= "Наименование";
    	КолонкаName.толькоПросмотр			= Истина;
    	КолонкаName.Ширина					= Окр(ШиринаТаблицы * 0.3, 0);
    	
    	КолонкаКод=ТаблицаСЗаказ.колонки.Kod_et;
    	КолонкаКод.ТекстШапки				= "Код этикетки";
    	КолонкаКод.толькоПросмотр			= Истина;
    	КолонкаКод.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    		
    	//КолонкаSpecif=ТаблицаСЗаказ.колонки.Specif;
    	//КолонкаSpecif.ТекстШапки			= "Спецификация заказа";
    	//КолонкаSpecif.толькоПросмотр		= Истина;
    	//КолонкаSpecif.Ширина				= Окр(ШиринаТаблицы * 0.11, 0);
    	
    	КолонкаUnit=ТаблицаСЗаказ.колонки.Unit;
    	КолонкаUnit.ТекстШапки				= "Ед.изм";
    	КолонкаUnit.толькоПросмотр			= Истина;
    	КолонкаUnit.Ширина					= Окр(ШиринаТаблицы * 0.08, 0);
    	
    	КолонкаГород = ТаблицаСЗаказ.колонки.НаправлениеНамоткиГород;
    	КолонкаГород.ТекстШапки				= "Город";
    	КолонкаГород.толькоПросмотр			= Истина;
    	КолонкаГород.Ширина					= Окр(ШиринаТаблицы * 0.12, 0);
    	
    	КолонкаАдрес = ТаблицаСЗаказ.Колонки.АдресДоставки;
    	КолонкаАдрес.ТекстШапки				= "Адрес Доставки";
    	КолонкаАдрес.толькоПросмотр			= Истина;
    	КолонкаАдрес.Ширина					= Окр(ШиринаТаблицы * 0.12, 0);

    Ну вот не в падлу людям такой код писать... Подумаешь +-10 ненужных переменных. Какой-там нахрен рефакторинг?! Делать больше нечего рефакторингом всяким занниматься. Про повторное использование кода слышали? Так вот взяли код, скопировали, вставили - там самым повторно использовали. Горите в аду, копипастеры!

    levxxx, 02 Марта 2016

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    wire tsun = clk | (~dere);
    wire dere = clk | (~tsun);
    
    always @(posedge clk) rnd <= dere;

    Интересно, будет ли этот код работать как TRNG?

    P.S. Узнаем на выходных, когда приедет Циклоняшка.

    bormand, 25 Января 2016

    Комментарии (16)
  8. PHP / Говнокод #19346

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    //Китайский цЫрк
    if ($fileField = isset($this->params[0]) ? $this->params[0] : false){
    
    }

    lol)

    progsmile, 24 Января 2016

    Комментарии (16)
  9. Си / Говнокод #19161

    +14

    1. 1
    integerValue *= 0;

    не обнулил, а на ноль умножил

    besprincypniycentner, 09 Декабря 2015

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

    +8

    1. 1
    if(copytype==WHOLE_FILE) //whole file

    О пользе комментариев

    absolut, 12 Ноября 2015

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

    +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
    if ($this->getShowTemplateHints()) {
        echo <<<HTML
    <div style="position:relative; border:1px dotted red; margin:6px 2px; padding:18px 2px 2px 2px; zoom:1;">
    <div style="position:absolute; left:0; top:0; padding:2px 5px; background:red; color:white; font:normal 11px Arial;
    text-align:left !important; z-index:998;" onmouseover="this.style.zIndex='999'"
    onmouseout="this.style.zIndex='998'" title="{$fileName}">{$fileName}</div>
    HTML;
        if (self::$_showTemplateHintsBlocks) {
            $thisClass = get_class($this);
            echo <<<HTML
    <div style="position:absolute; right:0; top:0; padding:2px 5px; background:red; color:blue; font:normal 11px Arial;
    text-align:left !important; z-index:998;" onmouseover="this.style.zIndex='999'" onmouseout="this.style.zIndex='998'"
    title="{$thisClass}">{$thisClass}</div>
    HTML;
        }
    }

    Правильная реализация hover эффекта. Яркости для картины добавляет то, что это все написано в блоке MVC модели и понятное дело, на живом проекте.

    bayanets, 05 Ноября 2015

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