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

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

    +161

    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
    int b;
    int c();
    
    template<class u, class v>
    struct IsSameType
    {
    	enum {r=0};
    };
    
    template<class u>
    struct IsSameType<u,u>
    {
    	enum {r=1};
    };
    
    //...
    cout<<IsSameType<decltype(b),decltype(c())>::r<<endl;
    cout<<IsSameType<decltype(b),decltype((b))>::r<<endl;
    cout<<IsSameType<decltype(c()),decltype((b))>::r<<endl;

    Сегодня увидим новую плюшку, что нам подарил новый стандарт С++0х.
    1)Что на экране получим после выполнения данной программы?
    2)Какие реально decltype возвращает типы в данных случаях?
    Желательно ответить на оба вопроса, не компилируя. ^_^

    Говногость, 21 Августа 2011

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

    +161

    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
    /// ...хде-то в начале огромной-преогромной функции...
    #define ADD_GRAPH(gid,gmod) m_Registry[TGraphId(gid,gmod)] = new
    /// ...хде-то по её середине...
    #define ADD_MAP_WEAPON_OVERLAY(name_base,file_name)\
      for (i=0; i<8; i++)\
      {\
        ADD_GRAPH(name_base _T("S"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,0)\
          ));\
        ADD_GRAPH(name_base _T("Q"),i) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[i],2,1)\
          ));\
      }
    #define ADD_MAP_WEAPON_OUTLINE(name_base,file_name)\
      ADD_GRAPH(name_base _T("C"),0) (CLoadImage (\
          file_name,\
          TImageFX ()\
          .SetColorReplacementFX (g_WeaponRecolor[0],2,2)\
          ));
    
    ADD_MAP_WEAPON_OVERLAY (_T("CellSword"),_T("cell_weap_sword.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellAxe"),_T("cell_weap_axe.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellEshock"),_T("cell_weap_eshock.png"));
    ADD_MAP_WEAPON_OVERLAY (_T("CellLance"),_T("cell_weap_lance.png"));
    //... тут очень много в таком же духе ...
    ADD_MAP_WEAPON_OUTLINE (_T("CellXbow"),_T("cell_weap_xbow.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellRifle"),_T("cell_weap_rifle.png"));
    ADD_MAP_WEAPON_OUTLINE (_T("CellPistol"),_T("cell_weap_pistol.png"));

    >Как бы оно выглядело без макросов, предоставляю гадать желающим.
    Эстеты, разумеется, могут возопить: "Пошто было не вынести всё это в функцию?!" Пото, что функцию (а она потребовалась бы методом) пришлось бы описывать в хедере вместе с классом + имплементировать где-то снаружи текущей функции - весёлое занятие, нечего сказать. Это при том, что данный конкретный кусок кода на момент написания сильномутабелен в плане кол-ва требующихся параметров, и в перспективе мог вообще исчезнуть/слиться с другим. И таких кусков там ~100500. Возможностей, с которыми использование функций для подобного действа не является злобным буратинством, в моём местном С++ пока не наличенствует. А так все релевантные к специфике данного куска пиписьки сконцентрированы в одном месте, умещаются на 1 экран, и я спокоен за возвращение к нему через много времени.

    CPPGovno, 21 Августа 2011

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

    +161

    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
    // mysql_affected_rows порядка 200 записей
    while ($row_ex=mysql_fetch_array($res_ex)){
       $e_arr[trim(strtoupper($row_ex[0]))] = $row_ex[1];
        $exc .= "(".preg_replace("/(\*|\+|\(|\))/","\\\\$0",$row_ex[0])."(\ |\,|\<|\n|\.)+)|";
    }
    
    if ($exc){
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
           if ($e_name[trim(strtoupper($e_name))])
           $Tour['info'] = preg_replace("/$e_name(?!.?<\/a>)/","<a href='".$e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info1'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
    $e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info1']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['info2'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
    $e_arr[trim(strtoupper($e_name))]."\.html'>".$e_name."<\/a>",$Tour['info2']);
         }
    
        preg_match_all("/(".$exc.")(?!<\/a>)/i",$Tour['shedulle'],$maches);
         $mach=array_unique($maches[0]);
         unset($maches);
         foreach ($mach as $e_name){
           $last_c=substr($e_name,-1);
           if ($last_c=="<" || $last_c=="," || $last_c==".") $e_name = substr($e_name,0,-1);
         }
    
      }

    http://govnokod.ru/7602 "Регулярки? Да, слышал!"
    Итого + 8-10 секунд на исполнение.

    govnoacc, 21 Августа 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    struct Matrix
    {
        float c[4][4];
    
        float (&operator[](int idx))[4] {
            return c[idx];
        }
    };

    Говногость, 20 Августа 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    bool CheckP_packet1(byte source[65536],int packettype)
    {
    	//Packet types:
    	//0 - first packet from client (authentication)
    	//1 - second packet (for getting server list)
    	//2 - to connect some server
    	//3 - to get custom skin
    	return true;
    }

    mingebag, 17 Августа 2011

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

    +161

    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
    if(isset($_POST['poisk'])){$poisk=$_POST['poisk']; $_SESSION['poisk']=$_POST['poisk'];}else{$poisk=$_SESSION['poisk'];}
    		 $prov=intval($_GET['providers']); if($prov==0){unset ($prov);}
    		 $rub=intval($_GET['rubric']); if($rub==0){unset ($rub);}
    		 $gro=intval($_GET['group']); if($gro==0){unset ($gro);}
    		 $con=intval($_GET['country']); if($con==0){unset ($con);}
    		 $ven=intval($_GET['vendor']); if($ven==0){unset ($ven);}
    		 $uid=intval($_GET['uid']); if($uid==0){unset ($uid);}
    		 $str=intval($_GET['str']); if($str==0 or !isset($str) or $str<0){$str=1;}
    		 $contr=intval($_GET['kontrakt']); if($contr==0){$contr=2;}
    		 if(isset($_POST['strok']) and intval($_POST['strok'])!=0){$_SESSION['stroks']=intval($_POST['strok']);}
    		 if(!isset($_SESSION['stroks'])){$strok=7;}else{$strok=$_SESSION['stroks'];}
    		 if(isset($_GET['sort']) and trim($_GET['sort'])!=''){if($_SESSION['sort']==trim($_GET['sort'])){$changesort=1;} $_SESSION['sort']=trim($_GET['sort']);}
    		 $sort=$_SESSION['sort']; if(!isset($_SESSION['sort'])){$sort='nazvanie'; $_SESSION['sort']='nazvanie';}
    		 if(isset($_GET['by']) and trim($_GET['by'])!='' and $changesort==1){$_SESSION['by']=trim($_GET['by']);}
    		 $by=$_SESSION['by']; if(!isset($_SESSION['by'])){$by='ASC'; $_SESSION['by']='ASC';}
    		 if(isset($ven)){
    		 $vat=mysql_fetch_array(mysql_query("SELECT nazvanie FROM partners WHERE ven=".$ven));
    		 $tven=$vat[0];}
    		 if(isset($con)){$katalog=2;}
    		 if(isset($rub)){$katalog=1;}
    		 if($search==2 or $search==1){$katalog=3;}
    		 if(isset($ven) and isset($gro) and $ven!=0 and $gro!=0){
    if($_SESSION['change']!=$ven.$gro or (!isset($_GET['vendor']) and $search!=1 and $search!=2) or !isset($_SESSION['change'])){$_SESSION['change']=$ven.$gro; $sort='nazvanie'; $_SESSION['sort']='nazvanie'; $by='ASC'; $_SESSION['by']='ASC';}

    Особенно понравилось название - "catalogue.php". =)

    nislova, 11 Августа 2011

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

    +161

    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
    class Session {
    	function sess_write() {
    		/*запись данных сессии в бд ($this->userdata)*/
    	}
    
    	function set_userdata($newdata = array(), $newval = '') {
    		if (count($newdata) > 0) {
    			foreach ($newdata as $key => $val) {
    				$this->userdata[$key] = $val;
    			}
    		}
    		$this->sess_write();
    	}
    
    	function unset_userdata($newdata = array()) {
    		if (count($newdata) > 0) {
    			foreach ($newdata as $key => $val) {
    				unset($this->userdata[$key]);
    			}
    		}
    		$this->sess_write();
    	}
    
    	function userdata($item) {
    		return (!isset($this->userdata[$item])) ? false : $this->userdata[$item];
    	}
    }

    говнокод изысканный.
    ЗЫДН: в таком случае $this->sess_write() правильней делать в деструкторе

    DrFreez, 06 Августа 2011

    Комментарии (3)
  9. JavaScript / Говнокод #7404

    +161

    1. 1
    console.loh(this);

    random2, 01 Августа 2011

    Комментарии (17)
  10. JavaScript / Говнокод #7327

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (window.ActiveXObject) window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
    else if (document.childNodes && !document.all && !navigator.taintEnabled) window.webkit = window[window.xpath ? 'webkit420' : 'webkit419'] = true;
    else if (document.getBoxObjectFor != null) window.gecko = true;
    var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
    var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
    var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

    mark, 24 Июля 2011

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

    +161

    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
    /*
    * Получаем категории из массива ЭКСПЕРЕМЕНТАЛЬНАЯ ФУНКЦИЯ :D
    * $fp - файл
    * $content - то что запишем
    */
    function save_conf($fp, $content) 
    {
    	$file_name = basename($fp);
    	if(!file_exists($fp))
    	{
    		file_put_contents($fp,'');
    		@chmod(ROOT . $fp, 0666 );
    	}
    	if (file_exists($fp) && $content) 
    	{
    		$fp = fopen($fp, "wb");
    		$content = "<?php
    if (!defined('ACCESS')) 
    {
        header('Location: /');
        exit;
    }
    \n\n".$content."\n";
    		fwrite($fp, $content);
    		fclose($fp);
    	}
    }

    И как же он тут получит категории остаётся загадкой, и поржать он любит в комментариях смотрю)
    * BY Toogle CMS

    nethak, 12 Июля 2011

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