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

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

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    procedure PP.Execute;
    begin inherited;
    (Sender as TIndusImage).KOT;
    end;

    В Delphi XE, не знаю с какой версии начиная (в XE7 и XE8 точно) крупные проблемы с TGifImage, а если точнее - если быстро и много их менять, то рано или поздно вываливается тупо всё вместе с интерфейсом (100% где-то в потоках налажали), причем если быстро менять BMP, то всё ОК.

    Пришла в голову идея в потоке самому менять кадры анимации, подгружая их как BMP, и дабы затестить сработает ли вообще, начал писать тестовую прогу.

    Писал особо не заботясь ни о чем, а потом заметил вот таких индусских котов.

    KOTOM, 03 Августа 2015

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

    +1000

    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
    int cutNCountLt3(char *in, char *out, long min) {
        int lt3 = 0;
        char *i = in, *j = in, *k = out;
    
        while (*j && *i) {
            j = i;
            while (*j != ' ' && *j)
                *k++ = *j++;
    
            *k++ = *j;
    
            int len = j - i;
            lt3 += len < 3;
    
            if (len < min)
                *(k -= len + 1) = '\0';
    
            i = j + 1;
        }
    
        return lt3;
    }

    К #9911
    А конкретнее http://govnokod.ru/9911#comment295215

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

    Elvenfighter, 03 Августа 2015

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

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    uint16_t swap_bytes(uint16_t a){
      uint16_t tmp = *((uint8_t*)&a+1);
      *(((uint8_t*)&tmp)+1) = *((uint8_t*)&a);
      return tmp;
    }

    radmir, 28 Июля 2015

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

    +1000

    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
    template<class THTTPServerSettings_>
    	class TSettingsApplyer: public TAbstractSettingsApplyer
    	{
    	private:
    		enum
    		{
    			RESPONSE_BUFFER_SIZE=THTTPServerSettings_::ResponseBufferSize>THTTPServerSettings_::FullBufferedResponseSize?THTTPServerSettings_::ResponseBufferSize:THTTPServerSettings_::FullBufferedResponseSize
    		};
    		char _requestBuffer[THTTPServerSettings_::RequestBufferSize];
    		char _responseBuffer[RESPONSE_BUFFER_SIZE];
    		char _requestHeaderBuffer[THTTPServerSettings_::RequestHeaderBufferSize];
    		char _responseHeaderBuffer[THTTPServerSettings_::ResponseHeaderBufferSize];
    		
    	public:
    		TSettingsApplyer(void);
    		virtual void* const GetRequestBuffer(void) const;
    		virtual void* const GetRequestHeaderBuffer(void) const;
    		virtual void* const GetResponseBuffer(void) const;
    		virtual void* const GetResponseHeaderBuffer(void) const;
    		virtual const size_t GetPort(void) const;
    		virtual const size_t GetRequestBufferSize(void) const;
    		virtual const size_t GetRequestHeaderBufferSize(void) const;
    		virtual const size_t GetResponseBufferSize(void) const;
    		virtual const size_t GetResponseHeaderBufferSize(void) const;
    	};
    //...
    template<class TSettings>
    	THTTPServer( TSettings settings ):
    		_SettingsApplyer(*(::new TSettingsApplyer< TSettings >)),

    Говногость, 16 Апреля 2012

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

    +1000

    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
    // Array below is for faster processing of variable length fields with ascii length.
    // Varbuut sho var arii initcializeet dinamiski. 
    char an[1000][3] = 
    {
    	{'0','0','0'},{'0','0','1'},{'0','0','2'},{'0','0','3'},{'0','0','4'},{'0','0','5'},{'0','0','6'},{'0','0','7'},{'0','0','8'},{'0','0','9'},
    	{'0','1','0'},{'0','1','1'},{'0','1','2'},{'0','1','3'},{'0','1','4'},{'0','1','5'},{'0','1','6'},{'0','1','7'},{'0','1','8'},{'0','1','9'},
    	{'0','2','0'},{'0','2','1'},{'0','2','2'},{'0','2','3'},{'0','2','4'},{'0','2','5'},{'0','2','6'},{'0','2','7'},{'0','2','8'},{'0','2','9'},
    	{'0','3','0'},{'0','3','1'},{'0','3','2'},{'0','3','3'},{'0','3','4'},{'0','3','5'},{'0','3','6'},{'0','3','7'},{'0','3','8'},{'0','3','9'},
    // 84 lines deleted
    	{'8','8','0'},{'8','8','1'},{'8','8','2'},{'8','8','3'},{'8','8','4'},{'8','8','5'},{'8','8','6'},{'8','8','7'},{'8','8','8'},{'8','8','9'},
    	{'9','0','0'},{'9','0','1'},{'9','0','2'},{'9','0','3'},{'9','0','4'},{'9','0','5'},{'9','0','6'},{'9','0','7'},{'9','0','8'},{'9','0','9'},
    // 6 lines deleted
    	{'9','7','0'},{'9','7','1'},{'9','7','2'},{'9','7','3'},{'9','7','4'},{'9','7','5'},{'9','7','6'},{'9','7','7'},{'9','7','8'},{'9','7','9'},
    	{'9','8','0'},{'9','8','1'},{'9','8','2'},{'9','8','3'},{'9','8','4'},{'9','8','5'},{'9','8','6'},{'9','8','7'},{'9','8','8'},{'9','8','9'}
    };
    
    			int ll = f->cfg.len_len;
    			long dl = f->data_len;
    			// Prepare length
    			if ( NULL == dst )
    			{
    				dst_len = f->data_len + ll + 1 ;
    				dst = (char*) malloc ( dst_len );
    			}
    			else
    			//if( dst_len < ll + dl )
    			if( dst_len < (unsigned) (ll + dl) )
    			{
    				// TO DOO - error should be processed
    				break;
    			}
    			long i2;
    			if ( ll < 2 )
    			{
    				dst[0]=an[dl][2];
    			}
    			else if ( ll < 3 )
    			{
    				dst[0]=an[dl][1];
    				dst[1]=an[dl][2];
    			}
    			else if ( ll < 4 )
    			{
    				dst[0]=an[dl][0];
    				dst[1]=an[dl][1];
    				dst[2]=an[dl][2];
    			}
    			else if ( ll < 5 )
    			{
    				i2 = dl / 1000;
    				dst[0]=an[i2][2];
    				i2 = dl % 1000;
    				dst[3]=an[i2][2];
    				dst[2]=an[i2][1];
    				dst[1]=an[i2][0];
    			}
    			else if ( ll < 6 )
    			{
    				i2 = dl / 1000;
    				dst[0]=an[i2][1];
    				dst[1]=an[i2][2];
    				i2 = dl % 1000;
    				dst[4]=an[i2][2];
    				dst[3]=an[i2][1];
    				dst[2]=an[i2][0];
    			}
    			else
    			{
    				// General case
    				for ( int k = ll  ; k > 0  ; k-- )
    				{
    					dst[k-1] ='0' + dl % 10;
    					dl/=10;
    				}
    			}
    
    			dst[dl]=0;

    This is a faster version of itoa() or sprintf(str,"%d",value)...
    Unfortunately it has a bug - lines of array with numbers 890-899 and 990-999 is missing.

    wtfcode, 21 Марта 2012

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

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    enum IsHaveItem{
    //...
    switch(Havelo)
        {
            case IsHaveItem::Have: have();
            case IsHaveItem::Havent: haveOrNotHave();break;
            default:assert(false&&"Признай, что ты идиот и это не лечится!");
        }

    Нашёл в проекте. Нет, ни тогда, когда сработал ассерт.

    Говногость, 28 Февраля 2012

    Комментарии (14)
  8. C++ / Говнокод #9486

    +1000

    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
    void drawFigure()
    {
    	for(int i=0;i<figMaxI;i++)
    		for(int j=0;j<figMaxY;j++)
    			if(figure.space[i][j].wut==1)
    			{
    				if(figure.y+i>=2)
    					if(figureEffekt == 1)
    					{
    						engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34)-effekt[0].x, gameSpace.y+((figure.y+i)*34)-effekt[0].y, 34, 34, 0.4, 0, 0);
    						engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34)+effekt[0].y, gameSpace.y+((figure.y+i)*34)+effekt[0].x, 34, 34, 0.8, 0, 0);
    						engine->print(fontAlphabet,0, figure.space[i][j].letter , gameSpace.x+((figure.x+j)*34)+6+effekt[0].y,gameSpace.y+((figure.y+i)*34)+4+effekt[0].x,1,0,2);
    					}
    					else
    					{
    						engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34), gameSpace.y+((figure.y+i)*34), 34, 34, 1, 0, 0);
    						engine->print(fontAlphabet,0, figure.space[i][j].letter , gameSpace.x+((figure.x+j)*34)+6,gameSpace.y+((figure.y+i)*34)+4,1,0,2);
    					}
    			}
    }

    великое и могучее ООП в действии

    -ggorky, 19 Февраля 2012

    Комментарии (8)
  9. C++ / Говнокод #9303

    +1000

    1. 1
    2. 2
    3. 3
    4. 4
    while (cin >> v1 >> v2 >> t >> f >> c)
    {
        ...
    }

    Олимпиадная задачка, на вход подается всего 5 чисел. Все решение находится внутри вышеприведенного while'а.

    haskile, 02 Февраля 2012

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

    +1000

    1. 1
    2. 2
    3. 3
    QString dump_str = "dump";
    log4cplus::tstring tdump = (std::wstring((wchar_t*)dump_str.unicode(), dump_str.length()));
    XLogger::dumper = log4cplus::Logger::getInstance(std::wstring(tdump));

    Мой "шедевр"
    Три преобразования подряд
    Если кто подскажет как это по человечески приписать буду благодарен.

    ir4y, 02 Февраля 2012

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

    +1000

    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
    if(m_numberColors>1)
    	{
    		m_colorComboColor2.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor2.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>2)
    	{
    		m_colorComboColor3.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor3.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>3)
    	{
    		m_colorComboColor4.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor4.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>4)
    	{
    		m_colorComboColor5.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor5.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>5)
    	{
    		m_colorComboColor6.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor6.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>6)
    	{
    		m_colorComboColor7.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor7.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>7)
    	{
    		m_colorComboColor8.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor8.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>8)
    	{
    		m_colorComboColor9.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor9.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>9)
    	{
    		m_colorComboColor10.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor10.ShowWindow(SW_HIDE);
    	}

    Есть десять элементов!
    Нужно в зависимости от числа управлять видимостью.
    Страшно подумать если бы их было 1000!!!!

    alex_devel, 31 Января 2012

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