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

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

    +137

    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
    xxx: Скажите пожалуйста нубоюзеру, как в сишарпе извлечь корень определённой степени?
    yyy: http://msdn.microsoft.com/ru-ru/library/system.math.sqrt.aspx (Math.Sqrt, Возвращает квадратный корень из указанного числа.)
    xxx: Спасибо, но желательно бы не только >квадратный< корень, но и заданной степени.
    yyy: Делай через циклы или рекурсивно.
    double SuperSquare(double number, int n)
    {
     double result = number;
     for(int i = 0; i < n; i++)
     {
     result = Math.Sqrt(result)
     }
     return result;
    }
    // Както так

    Инновационный способ вычислять корень заданной степени.

    flawy, 23 Августа 2011

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ((!IsForum() && $url[0] != 'underwater-video' && $end_element !='diveclan' && $end_element !='partners') || ($url[0] != 'underwater-photo' && sizeof($url)==1))
            if ($url[0]!='atlas-uw-photo' && !empty($title) && $end_element!='diving-guide' && $end_element!='atlas-wrecks' && $end_element!='atlas-deep'  && $end_element!='atlas-caves' && $end_element!='sea-inhabitants')
                    if ($APPLICATION->GetCurPage()!='/underwater-video/mygallery.php' && $APPLICATION->GetCurPage()!='/underwater-video/add.php' && $APPLICATION->GetCurPage()!='/atlas_update/travel_add/index.php')
                            if ($url[0] != 'diving-media' && $url[0] != 'underwater-photo')
                                    $APPLICATION->SetTitle($title);

    Унифицированный костыль тайтлов на битриксе. Это лежит во вкл области, которая цепояется после </html>

    atarix12, 16 Августа 2011

    Комментарии (52)
  4. Pascal / Говнокод #6865

    +96

    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
    Assign(F, FileName);
      IOResult;
      Reset(F);
      if IOResult = 0 then begin
        for i := 0 to MaxModelNamesCount-1 do ModelKind[i] := mkVagon;
        Result := True;
        BlockRead(F, W, 2);
        if W = OldWDim then begin // старый формат
          // 20 строк пропущено
        end else if W = WDim then begin // новый формат
          BlockRead(F, FormatVersion, 4); // версия нового формата
          if FormatVersion <= 4 then begin
            BlockRead(F, EditorDate, 4);
            BlockRead(F, C, 4);
            LCount := C;
            for i := 0 to LCount - 1 do begin
              BlockReadLine(F, Lines[i], 16);
              if (FormatVersion <= 2) and (Lines[i].Attr[3] and $0F = 5) then Lines[i].Attr[0] := 0
              else if (Lines[i].Attr[3] and $0F = k3DObject) then ModelKind[Lines[i].IntAttr[1]] := mkStatic;
            end;
            if FormatVersion <= 1 then begin
              ModelNamesCount := 8;  // для 1й версии список жёстко задан
              ModelNames[0] := 'ГЗРВ-10';
              ModelNames[1] := 'ГЗРВ-10М';
              ModelNames[2] := 'КТМ-5М3';
              ModelNames[3] := 'ЛМ-68';
              ModelNames[4] := 'ЛМ-68М';
              ModelNames[5] := 'ЛМ-68ММ';
              ModelNames[6] := 'ЛВС-86';
              ModelNames[7] := 'ЛВС-97';
              for i := 8 to MaxModelNamesCount-1 do ModelNames[i] := '';
            end else if FormatVersion <= 3 then begin
              ModelNamesCount := 0;
              for i := 0 to 255 do begin
                j := 0;
                BlockRead(F, j, 1);
                SetLength(ModelNames[i], j);
                for j := 1 to Length(ModelNames[i]) do Read(F, byte(ModelNames[i, j]));
                if ModelNames[i] <> '' then Inc(ModelNamesCount);
              end;
            end else begin
              BlockRead(F, ModelNamesCount, 4); // кол-во моделей
              for i := 0 to MaxModelNamesCount - 1 do ModelNames[i] := '';
              for i := 0 to ModelNamesCount-1 do begin
                BlockRead(F, k, 4); // номер считываемой модели
                j := 0;
                BlockRead(F, j, 1); // длина имени, не более 255
                SetLength(ModelNames[k], j);
                for j := 1 to Length(ModelNames[k]) do Read(F, byte(ModelNames[k, j]));
              end;
            end;
    
            for i := 0 to 8 do
              for j := 0 to 12 + Byte(FormatVersion >= 2) do with Routes[i, j] do begin
                BlockRead(F, PCount, 2);
                SetAllowedModels(Routes[i,j], 0, -1);
                if FormatVersion <= 1 then begin      
                  BS := [];
                  BlockRead(F, BS, 4);
                  AllowedModelsCount := 0;
                  for k := 0 to 255 do if k in BS then begin
                    Inc(AllowedModelsCount);
                    AllowedModels[k] := True;
                  end;
                end else if FormatVersion <= 3 then begin
                  BlockRead(F, BS, 32);
                  AllowedModelsCount := 0;
                  for k := 0 to 255 do if k in BS then begin
                    Inc(AllowedModelsCount);
                    AllowedModels[k] := True;
                  end;
                end else begin
                  BlockRead(F, AllowedModelsCount, 4);
                  for k := 0 to AllowedModelsCount-1 do begin
                    BlockRead(F, n, 4);           // номер модели
                    AllowedModels[n] := True;
                  end;
                end;
    
                for k := 0 to PCount - 1 do begin
                  if FormatVersion >= 3 then BlockRead(F, c, 4)
                  else begin
                    c := 0;
                    BlockRead(F, c, 2);
                  end;
                  Points[k] := c;
                end;
                BlockRead(F, DefVagons, 1);
                SpeedRoute := boolean(DefVagons shr 4);
                DefVagons := DefVagons and $0F;
                BlockRead(F, Interval, 1);
              end;
          end else Result := False;
        end else Result := False;
        Close(F);

    Короче, лапша из if FormatVesion такой-то...
    Обратная совместимость формата файла.
    Формату уже 4 года.

    TarasB, 05 Июня 2011

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

    +167

    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
    include 'function_uvorot.php';
    include 'function_block.php';
    include 'function_udara_krit.php';
    function goodatack ($n,$zona_udara,$zona_blocka,$krit,$anti_krit,$uvorot,$anti_uvorot)
        { 
              if ($uvorot>$anti_uvorot) // Опредиляем  присудствует ли увертывание.
            {
             echo $text=uvorot ($n,$zona_udara); // функция перещета уворота
          }
          else 
          {
                if ($zona_udara==$zona_blocka)  // Опредиляем  не заблокирован ли удар
            {  
             echo $text=zablokirovan1 ($n,$zona_blocka,$krit,$anti_krit);   //функцыя блока удара
                $_SESSION[$n]+=$uron;    
            }

    Это не я)

    GogaF, 05 Мая 2011

    Комментарии (52)
  6. ActionScript / Говнокод #6486

    −101

    1. 1
    test_lever.listen_to_me_bro(null); // nothing to be said

    молчание и безжизненный взгляд

    strike_neko_squad, 26 Апреля 2011

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

    +166

    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
    void СSomeClass::InternalRemovePath( QString qsPath, int pUIModule )
    {
      QProgressDialog * pDlg = (QProgressDialog *)pUIModule;
    ...................
    }
    .......................
    void someFunction ()
    {
    ..................
    QProgressDialog * pProgress = NULL;
    pProgress = new QProgressDialog( QObject::tr( "Deleting...") , QObject::tr( "Abort" ), 0, nTotal, NULL );
    InternalRemovePath( qsPath , (int) pProgress );
    ..................
    }

    И по коду таких вещей (приведение указателей к int при передаче в функции) очень много. Пока собрал проект, задолбался.
    Интересно, что автор курил? Хотя, нет - тут уже что-то потяжелее.

    panter_dsd, 23 Марта 2011

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

    +181

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    int maxOf5(int a, int b, int c, int d, int e) {
            int arr[5];
            arr[0] = a;
            arr[1] = b;
            arr[2] = c;
            arr[3] = d;
            arr[4] = e;
            bubbleSort(&arr, 5);
            return arr[0];
    }

    no comments...

    wh_, 22 Декабря 2010

    Комментарии (52)
  9. PHP / Говнокод #4796

    +145

    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
    <? 
    // Функция для того, чтобы иЗ***оВаТь текст 
    $str = 'бросайте вы корявить текст'; 
    
    function koryavka ($t){ 
    $c = strlen($t); 
    
    for($i=0;$i<$c;$i++) { 
    $t[$i] = (is_int($i/2)) ? strtoupper($t[$i]) : $t[$i]; 
    $ret[] =  $t[$i];  
    } 
    
    return implode('',$ret); 
    } 
    
    echo koryavka ($str); 
    ?>

    Aligan, 01 Декабря 2010

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

    +151

    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
    function addimagesave()
    	{
    		if (!$this->Login->isLogged())
            {
                $this->loginto();
                return;
            }
            else $this->Login->Update();
    		$error = '';
    		$recordExists = false;
    		$post_name = trim($this->input->post('name'));
    		if ($post_name != '') $insert['file_name'] = $post_name;
    		// now need to get from db if id_all in i_pics
    		$this->db->where('id_all',$this->input->post('id_all'));
    		$this->db->limit(1);
    		$query = $this->db->get('i_pics');
    		if ($query->num_rows() == 1)
    		{
    			$row = $query->row();
    			$recordExists = true;
    			$file_name = $row->file_name;
    			$id_pics = $row->id_pics;
    		}
    		if (isset($_FILES['upload']) && ($_FILES['upload']['error'] == 0)) // is file loaded?
    		{
    			$ext = getExtensionOnly($_FILES['upload']['name']);
    			if ($post_name != '') $_FILES['upload']['name'] = $post_name.'.'.$ext;
    			else $post_name = delExtensionWithDot($_FILES['upload']['name']);
    			$_FILES['upload']['name'] = translitIt(delExtensionWithDot($_FILES['upload']['name'])).'.'.$ext;
    			$config['upload_path'] = './pics/';
    			$config['allowed_types'] = 'gif|jpg|png|bmp';
    			$this->load->library('upload', $config);
    			if ($this->upload->do_upload('upload'))
    			{
    				$this->General->setEmes(array('roster'=>"Картинку загружено."), true);
    				$data = $this->upload->data();
    				$insert['file_name'] = $data['file_name'];
    				// resize now
    				$config1['image_library'] = 'gd2'; // выбираем библиотеку
    				$config1['source_image'] = 'pics/'.$data['file_name'];
    				$config1['create_thumb'] = TRUE; // ставим флаг создания эскиза
    				$config1['maintain_ratio'] = true; // сохранять пропорции
    				$config1['width'] = 250; // и задаем размеры
    				$config1['height'] = 180;
    				// pre crack image for resizing! )))
    				$this->load->model('Image');
    				$this->Image->smartsigninto('pics/'.$data['file_name'], 250, 180);
    				$this->load->library('image_lib', $config1); // загружаем библиотеку
    				$this->image_lib->resize(); // и вызываем функцию
    				// now rename and owerwrite original image
    				$ext = getExtensionOnly($data['file_name']);
    				$fol = "pics/";
    				if (is_file($fol.$data['raw_name'].'_thumb.'.$ext))
    				rename($fol.$data['raw_name'].'_thumb.'.$ext, $fol.$data['file_name']);
    				else $this->General->setEmes(array('roster'=>"Файл *_thumb не был создан!"));
    				// now set new file size
    				$insert['size'] = round(filesize($fol.$data['file_name'])/1024 , 2);
    			}
    			else $this->General->setEmes(array('roster'=>$this->upload->display_errors()));
    		}
    		else // we need to try to rename assigned file if name is not empty and file exists
    		{
    			if ($recordExists && is_file('pics/'.$file_name) && ($post_name != ''))
    			{
    				$ext = getExtensionOnly($file_name);
    				$fol = "pics/";
    				$newName = translitIt($post_name).'.'.$ext;
    				if (is_file('pics/'.$newName))
    				{
    					$this->General->setEmes(array('roster'=>"Имя уже существует"), true);
    					$insert['file_name'] = $file_name;
    				}
    				else
    				{
    					rename($fol.$file_name, $fol.$newName);
    					$insert['file_name'] = $newName;
    				}
    			}
    		}
    		// prepare data to be ins or upd
    		$insert['lang'] = 'ru';
    		$insert['title'] = $this->input->post('title');
    		$insert['alt'] = $this->input->post('alt');
    		$insert['id_all'] = $this->input->post('id_all');
    		if ($recordExists)
    		{
    			$this->db->where('id_pics',$id_pics);
    			$this->db->update('i_pics', $insert);
    			$this->General->setEmes(array('roster'=>"Данные обновлены"), true);
    		}
    		else $this->db->insert('i_pics', $insert);
    		$this->redirect('roster/'.$this->input->post('type'));
    	}

    Функция - контроллер сохранения, resize на лету картинки для новости или прочей байды. Есть все проверки. Любая картинка которая приходит, становится размером 250, 180 , причем без растяжения. Это задача типа вписать прямоугольник в прямоугольник, которую я сейчас ночью выполнил - даже если картинка меньше оно впишет. I must be proud about this functionality! Заметим, что в интернете все и умеют что вырезать квадраты из картинки, а произвольный размер - НЕТ такого. Код выложен чтобы вы посмотрели, нравятся ли вам имена переменных, логическое мышление, форматирование, коментарии (на русском - то не мои коментарии). Код CodeIgniter powered.

    increazon, 25 Июня 2010

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

    +162

    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
    <a href="/otherss/foto/">Фото</a><br>
    <!-- *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*= -->
    <?
    $ip=$REMOTE_ADDR;
    $modip=substr($ip,0,7);
        if ($modip=="192.168")
        {
        echo "<a href=\"http://192.168.1.1:8000/\">Радио</a><hr>";
    //    echo "<a>Радио</a><br>";
        }
        else
        {
        echo "<a href=\"http://92.255.xxx.10:8000/\">Радио</a><hr>";
    //    echo "<a>Радио</a><br>";
        }
    
        if ($modip=="192.168")
        {
        echo "<a href=\"http://192.168.1.1:3000/\">Вэб-Почта</a><br>";
        }
        else
        {
        echo "<a href=\"http://92.255.xxx.10:3000/\">Вэб-Почта</a><br>";
        }
    ?>
    <a href="/filesearch/index.php">Поиск</a><br>
    <a href="http://192.168.1.1/stat/kabinet">Кабинет&#133;</a><br>
    <a href="/phone_book/">Телефон</a><a href="/phone_book/index_all.php">ы</a><br>
    <br>

    снова один из отжигов)
    маска xxx в третьем бите ип моя, чтоб не палить)

    nur, 18 Июня 2010

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