1. C++ / Говнокод #3312

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    bool ChatHandler::HandleNpcYellCommand(const char* args)
    {      
    
    if (!*args)
    return false;
    ...
    }

    hromjo, 25 Мая 2010

    Комментарии (38)
  2. Pascal / Говнокод #3311

    +98

    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
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    //это как бы сортировка приоритетов
    Try
    Prior1:=StrToInt(Edit1.Text);
    Prior2:=StrToInt(Edit2.Text);
    Prior3:=StrToInt(Edit3.Text);
    Prior4:=StrToInt(Edit4.Text);
    Prior5:=StrToInt(Edit5.Text);
    except
    ShowMessage('Íåâåðíî çàäàíû ïðèîðèòåòû');   exit;
    end;
    min1:=100;
    If prior1<min1 then begin min1:=prior1; nmin1:=1; end;
    If prior2<min1 then begin min1:=prior2; nmin1:=2; end;
    If prior3<min1 then begin min1:=prior3; nmin1:=3; end;
    If prior4<min1 then begin min1:=prior4; nmin1:=4; end;
    If prior5<min1 then begin min1:=prior5; nmin1:=5; end;
    min2:=100;
    If (prior1<min2)and(prior1>min1) then begin min2:=prior1; nmin2:=1; end;
    If (prior2<min2)and(prior2>min1) then begin min2:=prior2; nmin2:=2; end;
    If (prior3<min2)and(prior3>min1) then begin min2:=prior3; nmin2:=3; end;
    If (prior4<min2)and(prior4>min1) then begin min2:=prior4; nmin2:=4; end;
    If (prior5<min2)and(prior5>min1) then begin min2:=prior5; nmin2:=5; end;
    min3:=100;
    If (prior1<min3)and(prior1>min2) then begin min3:=prior1; nmin3:=1; end;
    If (prior2<min3)and(prior2>min2) then begin min3:=prior2; nmin3:=2; end;
    If (prior3<min3)and(prior3>min2) then begin min3:=prior3; nmin3:=3; end;
    If (prior4<min3)and(prior4>min2) then begin min3:=prior4; nmin3:=4; end;
    If (prior5<min3)and(prior5>min2) then begin min3:=prior5; nmin3:=5; end;
    min4:=100;
    If (prior1<min4)and(prior1>min3) then begin min4:=prior1; nmin4:=1; end;
    If (prior2<min4)and(prior2>min3) then begin min4:=prior2; nmin4:=2; end;
    If (prior3<min4)and(prior3>min3) then begin min4:=prior3; nmin4:=3; end;
    If (prior4<min4)and(prior4>min3) then begin min4:=prior4; nmin4:=4; end;
    If (prior5<min4)and(prior5>min3) then begin min4:=prior5; nmin4:=5; end;
    min5:=100;
    If (prior1<min5)and(prior1>min4) then begin min5:=prior1; nmin5:=1; end;
    If (prior2<min5)and(prior2>min4) then begin min5:=prior2; nmin5:=2; end;
    If (prior3<min5)and(prior3>min4) then begin min5:=prior3; nmin5:=3; end;
    If (prior4<min5)and(prior4>min4) then begin min5:=prior4; nmin5:=4; end;
    If (prior5<min5)and(prior5>min4) then begin min5:=prior5; nmin5:=5; end;
    
    //далее горы подобного кода (где-то 20-30 страниц):
    hile t<=60 do begin
    Application.ProcessMessages;
    
    t:=t+1;
    Sleep(100);
    
        If nmin1=1 then begin
    
        If t-tpi1=t1 then begin
        i1:=i1+1;
        datetime:=now;
    x1:=random(311)/10+29+random(10)/10;
    table1.Insert;
    table1.FieldByName('znachenie').AsFloat:=x1;
    table1.FieldByName('datchik').AsInteger:=1;
    table1.FieldByName('oshibka').AsBoolean:=False;
    table1.FieldByName('krit').AsBoolean:=False;
    table1.FieldByName('DateTime').AsDateTime:=Datetime;
    series1.AddXY(i1, x1, '',clred);
    if (x1>60)or(x1<30) then
    begin
    table1.FieldByName('oshibka').AsBoolean:=True;
      if (x1>60.5)or(x1<29.5) then begin
      table1.FieldByName('krit').AsBoolean:=True;
      Label1.Visible:=True;
      end;
    end;
    table1.Post;
    tpi1:=t;
    end; //end if
    
    end;
    If nmin1=2 then begin
    
       If t-tpi2=t2 then begin
       i2:=i2+1;
       datetime:=now;
    x2:=random(211)/10+9+random(10)/10;
    table1.Insert;
    table1.FieldByName('znachenie').AsFloat:=x2;
    table1.FieldByName('datchik').AsInteger:=2;
    table1.FieldByName('oshibka').AsBoolean:=False;
    table1.FieldByName('krit').AsBoolean:=False;
    table1.FieldByName('DateTime').AsDateTime:=Datetime;
    series2.AddXY(i2, x2, '',clgreen);
    if (x2>30)or(x2<10) then
    begin
    table1.FieldByName('oshibka').AsBoolean:=True;
      if (x2>30.5)or(x2<9.5) then begin
      table1.FieldByName('krit').AsBoolean:=True;
      Label1.Visible:=True;
      end;
    end;
    table1.Post;
    tpi2:=t;
    end;

    курсовая работа одного студента (идущего на красный диплом, кстати)

    GovnocoderJr, 25 Мая 2010

    Комментарии (22)
  3. Ruby / Говнокод #3310

    −98

    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
    <% form_tag(advertiser_creatives_path(@advertiser), :method=>'post' ) do %>
      <% content_tag :table, :class => "form-tabular" do %>
        <% content_tag :thead do %>
          <% content_tag :tr do %>
            <% tag :th, :class=>'hide'%>
            <% content_tag :th do %>
              Concept (optional)
            <%end%>
            <% content_tag :th do %>
               Ad Tag
            <%end%>
            <% content_tag :th do %>
               Click-Through URL
            <%end%>
            <th/>
          <%end%>
        <%end%>
        <% content_tag :tbody, :id=>'creative_sub_forms' do %>
          <% creatives.each_with_index do |creative, index| 
              next unless creative.new_record?
            %>
            <% unless creative.errors.empty? %>
              <tr class='nowrap'>
                <td colspan='3'>
                  Error:
                  <% creative.errors.full_messages.each do |msg| %>
                  <%= msg %><br/>
                  <%end%>
                </td>
              </tr>
            <%end%>
            <%=render :partial => 'creative_fields', :locals => {:index => index, :creative => creative}%>
          <%end%>
        <%end%>
        <tr>
          <td colspan='3'><%= link_to_add_creative_fields "Add row"  %></td>
        </tr>
      <%end%>
      <br/>
      <br/>
      <%= submit_tag 'Continue', :class=>'button' %>
    <%end%>

    Товарищи, заставляйте нубой учить HTML. Ну, или HAML.

    cheba, 25 Мая 2010

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

    +120

    1. 1
    2. 2
    3. 3
    4. 4
    public static bool GetUpperBit(long number)
    {
       return number < 0;
    }

    Да это не ГК, но остроумный способ получить верхний бит числа.

    FMB, 25 Мая 2010

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

    +170

    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
    switch ($_POST['rate']) {
    	case(-3):
    	$r=-3;
    	break;
    	case(-2):
    	$r=-2;
    	break;
    	case(-1):
    	$r=-1;
    	break;
    	case(0):
    	$r=0;
    	break;
    	case(1):
    	$r=1;
    	break;
    	case(2):
    	$r=2;
    	break;
    	case(3):
    	$r=3;
    	break;
    }

    Валидация значения рейтинга.

    arsen, 25 Мая 2010

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

    +120

    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
    ///<summary>
    /// Перемещение страницы в/из корзины
    ///</summary>
    ///<param name="PageID">Идентификатор страницы</param>
    ///<param name="Direction">Определяет в корзину или из нее перемещать страницу</param>
    ///<param name="Page">Экземпляр страницы</param>
    ///<returns></returns>
    ///<exception cref="Exception"></exception>
    public static Exception PageToRecicle(int PageID, int Direction, Page Page)
    {
        SiteData data = new SiteData("MsSqlConnectionString");
        SiteXml xml = new SiteXml();
        Exception ee = new Exception();
    
        SitePage page = new SitePage(Page);
        if (page.StartPageID == PageID)
        {
            try
            {
                throw new Exception(xml.GetXmlResource("adminmenu.ascx", "RemoveStart"));
            }
            catch (Exception exc)
            {
                ee = exc;
            }
            return ee;
        }
        if (Direction == 0 || !SitePage.HasPageChilds(PageID, false))
        {
            data.ExecuteStoredProcedure("sPageToRecicle", ref ee, "@PageID", PageID, "@Direction", Direction,
                                        "@UserName", HttpContext.Current.User.Identity.Name);
        }
        else
        {
            try
            {
                throw new Exception(xml.GetXmlResource("adminmenu.ascx", "RemoveError"));
            }
            catch (Exception exc)
            {
                ee = exc;
            }
        }
        return ee;
    }

    Это фрагмент коммерческой CMS между прочим. Если бы автор родился в Спарте, его бы незамедлительно ё*нули об скалы.

    sombre-hombre, 25 Мая 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    switch(true)
    {
     case tag1: /*тут обработка*/break;
     case tag2: /*тут обработка*/break;
     case tag3: /*тут обработка*/break;
     case tag4: /*тут обработка*/break;
    }

    Короче это был кусок парсера SGML файла, который в зависимости от встреченного тега выполнял действия. Этот код недословный, привожу чтоб показать как использовалась конструкция switch. На мой взгляд изящный подход =)

    shurikroger, 25 Мая 2010

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

    +164

    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
    /**
     * Constructs a URL encoded query string from an array of key/value pairs
     *
     * @access protected
     * @since 2.0
     * @param array $array query string key/value pairs
     * @return string
     */
    protected function _glue( $array )
    {
        $query_string = '';
        foreach( $array as $key => $val ) :
            $query_string .= $key . '=' . rawurlencode( $val ) . '&';
        endforeach;
        
        return '?' . substr( $query_string, 0, strlen( $query_string )-1 );
    }

    http://code.google.com/p/php-twitter/
    опять велосипеды

    striker, 25 Мая 2010

    Комментарии (24)
  9. Java / Говнокод #3304

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public int someGetCountMethod() {
            try {
                ResultSet rs2 = db.select("call someGetCountMethod('')");
                rs2.first();
                return rs2.getInt(1);
            } catch (Exception ex) {
                return 0;
            }
        }

    где-то откапал вот такое

    zlob.jc, 25 Мая 2010

    Комментарии (0)
  10. PHP / Говнокод #3303

    +157

    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
    // если IP в файле есть, выводим сообщение с уведомлением
    if ($file[$i]===$ip."\r\n"){
    	echo 'Вы уже голосовали. Но спасибо, что попытались.<br>';
    	break;
    	// если IP нет, тогда считаем рейтинг и записываем IP в файл
    } elseif ($file[$i]!=$ip."\r\n") {
    	// ********* СЧИТАЕМ РЕЙТИНГ *********
    	// открываем файл с рейтингом
    	$file_open=fopen("rate.txt", "a+");
    	$file_read=fgets($file_open);
    	// разбиваем данные по спецсимволу ':'
    	$dan=explode(":",$file_read);
    	// первое значение - сумма всех оценок, второе - кол-во проголосовавших юзеров
    	// добавляем к сумме оценок - полученную новую оценку
    	// добавляем к сумме юзеров - 1 человека
    	if ($_POST['rating_val']>=1 && $_POST['rating_val']<=5){
    	$r=$_POST['rating_val'];
    	$ocenka=$dan[0]+$r;
    	$users=$dan[1]+1;
    	$write=$ocenka.':'.$users;
    	ftruncate ($file_open, 0);
    	fwrite($file_open, $write);
    	}
    	// рейтинг считаем по формуле: (сумма оценок + текущая оценка) / (кол-во юзеров + 1 юзер)
    	$rating=substr(($dan[0]+$r) / ($dan[1]+1),0,3);
    	echo 'Ваш рейтинг: '.$rating.'<br>
    	Всего голосов: '.$users.'<br>';
    	// закрываем файл с рейтингом
    	fclose($file_open);
    	// ************************************
    	fwrite($open_ip, $ip."\r\n");
    	echo 'Ваш голос учтен. Спасибо.<br>'; 
    	break;
    } else {
    	echo 'Странно. Вопреки всякой логике, произошла ошибка, которая появиться не могла.<br>
    	Пожалуйста, <a href=mail.php>напишите нам письмо</a> и мы обязательно разберемся.';
    }

    Проверка в скриптике друга. Смотрим самый внешний IF, порадовала ветка else :)

    arsen, 24 Мая 2010

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