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

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

    +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
    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
    93. 93
    <table cellspacing="0" id="captcha"><tbody><tr><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td><div> </div></td>
    <td><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td><td><table cellspacing="0">
    <tbody><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td><div> </div></td>
    <td><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr><tr>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    <td class="fill"><div> </div></td>
    </tr>
    </tbody></table>
    </td></tr></tbody></table>

    Реализация капчи на сайте http://rus.in.ua/
    class="fill" - чёрный фон
    Парсить HTML в автоматическом режиме ещё проще, чем картинки распознавать.

    chubatyj, 06 Апреля 2011

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

    +171

    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
    ...
    
    bool GameLocations::checkButtonsEnabled() const
    {
    	GameClassT& gc = GameClass::instance();
    	return
    		!gc.getCurrentLocationPopup() &&
    		!gc.getHud().getCurrentWindowFore() &&
    		!gc.isMenuOpen() &&
    		!gc.isEndOfDay() &&
    		!GameClass::instance().isMouseConsumedThisFrame();
    }
    
    ...
    
    void LocationPopupBase::update(float dt)
    {
    	...
    
    	const bool inputEnabled =
    		m_isActive &&
    		!m_talentUsedWindowActive &&
    		!m_dialogueManager.isVisible() &&
    		!GameClass::instance().getHud().getCurrentWindowBack() &&
    		!GameClass::instance().getHud().getCurrentWindowFore() &&
    		(!m_currentAction ||
    		 ((*m_currentActionPhase == AP_Finalize) && !m_currentAction->m_immediateFinalize)) &&
    		 m_actionSequenceCallbacks.empty();
    
    	setInputEnabled(inputEnabled);
    }
    
    ...

    Вот во что со временем превращаются игровые проекты, в которых нет никакой стейт-машины или хоть какого-нибудь её аналога.

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

    Kirinyale, 06 Апреля 2011

    Комментарии (12)
  4. PHP / Говнокод #6220

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $query = 'SELECT `views` FROM `'.PREFIX.'_newsi` WHERE `id` = '.$item["id"];			
    $result = $kernel->runSQL($query);
    $count;
    if (mysql_num_rows($result)) {
        $count = mysql_result($result,"views");				
        $query = 'UPDATE `'.PREFIX.'_newsi` SET `views` = "'.++$count.'" WHERE `id` ='.$item["id"];
        $kernel->runSQL($query);
    }

    Увеличиваем счетчик количества просмотров новости

    gorky, 05 Апреля 2011

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

    +113

    1. 1
    Говнокод поломался. Гуесты теперь везде.

    Vasiliy, 01 Апреля 2011

    Комментарии (12)
  6. PHP / Говнокод #6100

    +149

    1. 1
    $txt['aeva_gallery'] = isset($txt['aeva_gallery']) ? $txt['aeva_gallery'] : 'Media';

    Кусочек языкового файла модуля медиагалереи

    prodigy, 27 Марта 2011

    Комментарии (12)
  7. bash / Говнокод #6070

    −126

    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
    #!/bin/bash
    
    sed -e 's/й/y/g' -i $1
    sed -e 's/ц/c/g' -i $1
    sed -e 's/у/u/g' -i $1
    sed -e 's/к/k/g' -i $1
    sed -e 's/е/e/g' -i $1
    sed -e 's/н/n/g' -i $1
    sed -e 's/г/g/g' -i $1
    sed -e 's/ш/sh/g' -i $1
    sed -e 's/щ/sch/g' -i $1
    sed -e 's/з/z/g' -i $1
    sed -e 's/х/h/g' -i $1
    sed -e 's/ф/f/g' -i $1
    sed -e 's/ы/i/g' -i $1
    sed -e 's/в/v/g' -i $1
    sed -e 's/а/a/g' -i $1
    sed -e 's/п/p/g' -i $1
    sed -e 's/р/r/g' -i $1
    sed -e 's/о/o/g' -i $1
    sed -e 's/л/l/g' -i $1
    sed -e 's/д/d/g' -i $1
    sed -e 's/ж/j/g' -i $1
    sed -e 's/э/e/g' -i $1
    sed -e 's/я/ya/g' -i $1
    sed -e 's/ч/ch/g' -i $1
    sed -e 's/с/s/g' -i $1
    sed -e 's/м/m/g' -i $1
    sed -e 's/и/i/g' -i $1
    sed -e 's/т/t/g' -i $1
    sed -e 's/б/b/g' -i $1
    sed -e 's/ю/yu/g' -i $1

    Перевод в английские буквы

    AliceGoth, 23 Марта 2011

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

    +134

    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
    /// <summary>
            /// попытка парсинга потока в bool {true,false,1,0} поддерживатеся любой регистр 
            /// </summary>
            /// <param name="lpwcstr">указатель текущую позицию потока</param>
            /// <param name="result">результат</param>
            /// <returns>см. ParseSucces</returns>
            static public ParseSuccess TryParse(ref char* lpwcstr, out bool result)
            {
                char* cur = lpwcstr;
            to_begin:
                switch (*cur++)
                {
                    case ' ':
                    case '\t':
                    case '\n':
                    case '\r':goto to_begin;
                    case '0': lpwcstr = cur; goto to_fail;
                    case '1': lpwcstr = cur; result = true; return ParseSuccess.Success;
                    case 't':
                    case 'T':
                        switch (*cur++)
                        {
                            case 'r':
                            case 'R': switch (*cur++)
                                {
                                    case 'u':
                                    case 'U': switch (*cur++)
                                        {
                                            case 'e':
                                            case 'E': lpwcstr = cur; result = true; return ParseSuccess.Success;
                                            default: result = false; return (ParseSuccess)(lpwcstr - cur + 1);
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    case 'f':
                    case 'F': switch (*cur++)
                        {
                            case 'a':
                            case 'A': switch (*cur++)
                                {
                                    case 'l':
                                    case 'L': switch (*cur++)
                                        {
                                            case 's':
                                            case 'S': switch (*cur++)
                                                {
                                                    case 'e':
                                                    case 'E': lpwcstr = cur; result = false; return ParseSuccess.Success;
                                                    default: goto to_fail;
                                                }
                                            default: goto to_fail;
                                        }
                                    default: goto to_fail;
                                }
                            default: goto to_fail;
                        }
                    default: goto to_fail;
                }
            to_fail:
                result = false; 
                return (ParseSuccess)(lpwcstr - cur + 1);
            }

    FMB, 23 Марта 2011

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

    +128

    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
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                int x = Convert.ToInt32(comboBox1.Text);
                switch (x)
                {
                    case  2: textBox1.Visible=true;
                        textBox2.Visible = true;
                        textBox3.Visible = false;
                        textBox4.Visible = false;
                        textBox5.Visible = false;
                        textBox6.Visible = false;
                        textBox7.Visible = false;
                        textBox8.Visible = false;
                        textBox9.Visible = false;
                        textBox10.Visible = false;
                        break;
                    case 3:
                        textBox1.Visible = true;
                        textBox2.Visible = true;
                        textBox3.Visible = true;
                        textBox4.Visible = false;
                        textBox5.Visible = false;
                        textBox6.Visible = false;
                        textBox7.Visible = false;
                        textBox8.Visible = false;
                        textBox9.Visible = false;
                        textBox10.Visible = false;
                        break;
    
    //и так до 10
    //...
    
            private void button1_Click(object sender, EventArgs e)
            {
                double p1 = 1 / Convert.ToDouble(textBox1.Text);
                double p2 = 1 / Convert.ToDouble(textBox2.Text);
                double p3 = 1 / Convert.ToDouble(textBox3.Text);
                double p4 = 1 / Convert.ToDouble(textBox4.Text);
                double p5 = 1 / Convert.ToDouble(textBox5.Text);
                double p6 = 1 / Convert.ToDouble(textBox6.Text);
                double p7 = 1 / Convert.ToDouble(textBox7.Text);
                double p8 = 1 / Convert.ToDouble(textBox8.Text);
                double p9 = 1 / Convert.ToDouble(textBox9.Text);
                double p10 = 1 / Convert.ToDouble(textBox10.Text);
                double inv;
                
                
                int x = Convert.ToInt32(comboBox1.Text);
                switch (x)
                {
                    case 2:
                        inv=(1/p1+1/p2);
                        break;
                    case 3:
                        inv = ((1 / p1) + (1 / p2)+(1/p3));
                        break;
                    case 4:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3)+(1/p4));
                        break;
                    case 5:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4)+(1/p5));
                        break;
                    case 6:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5)+(1/p6));
                        break;
                    case 7:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7));
                        break;
                    case 8:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8));
                        break;
                    case 9:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8) + (1 / p9));
                        break;
                    case 10:
                        inv = ((1 / p1) + (1 / p2) + (1 / p3) + (1 / p4) + (1 / p5) + (1 / p6) + (1 / p7) + (1 / p8) + (1 / p9) + (1 / p10));
                        break;
     
                        double rez = 1 / inv;
                        textBox11.Text = Convert.ToString(rez);
                }
            }

    FMB, 16 Марта 2011

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

    +75

    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 void configComponents(/* params */) throws MyException {
    	String err_msg = null;
    	try {
    		// some code here...
    		return;
    	} catch (ComponentConfigurationException e) {
    		err_msg = e.getMessage();
    	} catch (MyException e) {
    		err_msg = e.getMessage();
    	} catch (Exception e) {
    		err_msg = setupProcessErrorMessage;
    	}
    	throw new MyException(err_msg);
    }

    А rethrowing у нас уже не в почете. Правильно контрагаить ретурном из трай-секции и выбросом исключения, если трай-секция не дожила до ретурна.

    mdcool, 16 Марта 2011

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    foreach ($_REQUEST as $key => $value)
    		{
    			if (substr($key, 0, strlen("ORDER_PROP_"))=="ORDER_PROP_")
    				$arPropValsTmp[$key] = htmlspecialchars($value);
    		}

    Забавная проверка.. Из битрикса.

    revis0r, 07 Марта 2011

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