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

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

    −92

    1. 1
    2. 2
    3. 3
    public function xor(lhs:Boolean, rhs:Boolean):Boolean {
     return !( lhs && rhs ) && ( lhs || rhs );
    }

    Из http://as3snippets.blogspot.com/2010/09/logical-xor.html

    Как известно, в AS3 есть численный оператор XOR ^, а вот для логических значений ^^ нет. Поэтому ребята придумали такую конструкцию (и ещё вариант return Boolean(int(a) ^ int(b)); в комментах), и только через год какой-то чувак догадался что XOR для логических значений всё-таки есть и называется !=

    makc3d, 02 Августа 2012

    Комментарии (26)
  3. Pascal / Говнокод #11342

    +94

    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
    function Dist(dx, dy: integer): integer;  
    begin
      //result := trunc(sqrt(sqr(dx)+sqr(dy)));
      dx := abs(dx);
      dy := abs(dy);
      if dx>dy then begin
        dy := dy shr 1 - dx shr 3;
        if dy >= 0 then result := dx+dy else result := dx;
      end else begin
        dx := dx shr 1 - dy shr 3;
        if dx >= 0 then result := dx+dy else result := dy;
      end;
    end;

    Ещё по теме приближённых расчётов в игровом движке.

    TarasB, 02 Июля 2012

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

    +62

    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
    for($i=0; $i<strlen($input); $i++)
        {
          $ip=$input{$i};
          $op='';
             
          if ($intag)
          {
              if ($ip=="=") $op="=3D";
              else $op= $ip;
          }
          else
          {
              if ($ip=="\"") $op='"';//'
              else if ($ip=="&") $op="&";
              else if ($ip=="'") $op="'";
              else $op= $ip;
          }
    
    
          if ((strlen($line)+strlen($op))>=$line_max)
          {
              $output.=$line.'='.$eol;
              //if ($intag) $output.=$line.'='.$eol;
              //else  $output.=$line.$eol;
              $line='';
          }
          $line.=$op;
    
          if($ip=='<')
              $intag=true;
          else if ($ip=='>')
              $intag=false;
        }

    Заголовки у письма отфильтрованы... Всё «путём» катимся дальше...

    nethak, 29 Мая 2012

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

    +74

    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
    $lang_ru = '<a class=lang-ru-RU href="#" id="btn1">RU</a>';
    $lang_en = '<A class=lang-en-US href="#" id="btn2">EN</A>';
    $lang_de = '<A class=lang-de-DE href="#" id="btn3">DE</A>';
    if (!isset($HTTP_COOKIE_VARS["language"])) {
    	$lang_1 = $lang_ru;
    	$lang_2 = $lang_en;
    	$lang_3 = $lang_de;
    } else {
    	if ($HTTP_COOKIE_VARS["language"] == 'en') {
    		$lang_1 = $lang_en;
    		$lang_2 = $lang_ru;
    		$lang_3 = $lang_de;
    	} else {
    		if ($HTTP_COOKIE_VARS["language"] == 'de') {
    			$lang_1 = $lang_de;
    			$lang_2 = $lang_ru;
    			$lang_3 = $lang_en;
    		} else {
    			$lang_1 = $lang_ru;
    			$lang_2 = $lang_en;
    			$lang_3 = $lang_de;
    		}
    	}
    }

    А если языков было бы больше?

    My_own_private_pony, 10 Мая 2012

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

    +123

    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
    static bool HasSp1()
    {
    	try
    	{
    		WaitHandle h = new ManualResetEvent(true);
    		h.WaitOne(0);
    		return true;
    	}
    	catch
    	{
    		return false;
    	}
    }

    Проверка наличия Service Pack 1 к .NET Framework 3.5 (в продолжение предыдущего ГК). Да, есть другие варианты, но этот не выглядит хуже.

    Steve_Brown, 26 Апреля 2012

    Комментарии (26)
  7. 1C / Говнокод #9847

    −136

    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
    function iofam(val a)
    var fio[3];
    fio[1]=""; fio[2]=""; fio[3]="";
    a=trimall(a);
    while strcountoccur(a,"  ")>0 do
      a=strreplace(a,"  "," ");
    enddo;
    i=1;
    while (strcountoccur(a," ")>0) and (i<=2) do
      fio[i]=left(a,find(a," ")-1);
      a=right(a,strlen(a)-1-strlen(fio[i]));
      i=i+1;
    enddo;
    fio[i]=a;
    return (left(fio[2],1)+"."+left(fio[3],1)+". "+fio[1]);
    endfunction

    int1789, 03 Апреля 2012

    Комментарии (26)
  8. SQL / Говнокод #9689

    −138

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    select 20.0 / -2.0 / 5.0 * 3.0
    -16.666666
    
    select 20.0 / (-2.0) / 5.0 * 3.0
    -6.00000

    SQL-Server как калькулятор

    wecanstoptrain, 16 Марта 2012

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

    +163

    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
    fadeOutAnimate($("#bigsun"), 500);
                fadeInAnimate($("#littlesun"), 500, function(){
                    fadeInAnimate($("#point1"), 300, function(){
                        fadeInAnimate($("#point2"), 300, function(){
                            fadeInAnimate($("#point3"), 300, function(){
                                fadeInAnimate($("#point4"), 300, function(){
                                    fadeInAnimate($("#point5"), 300, function(){
                                        fadeInAnimate($("#point6"), 300, function(){
                                            fadeInAnimate($("#point7"), 300, function(){
                                                fadeInAnimate($("#point8"), 300, function(){
                                                    fadeInAnimate($("#arrows"), 600, function(){
                                                        fadeInAnimate($("#direction1"), 300, function(){
                                                            fadeInAnimate($("#direction2"), 300, function(){
                                                                fadeInAnimate($("#direction3"), 300, function(){
                                                                    fadeInAnimate($("#direction4"), 300, function(){
                                                                        fadeInAnimate($("#direction5"), 300, function(){
                                                                            fadeInAnimate($("#direction6"), 300, function(){
                                                                                fadeInAnimate($("#direction7"), 300, function(){
                                                                                    fadeInAnimate($("#direction8"), 300, function(){
                                                        
                                                                                    });
                                                                                });
                                                                            });
                                                                        });
                                                                    });
                                                                });
                                                            });
                                                        });
                                                    });
                                                });
                                            });
                                        });
                                    });
                                });
                            });
                        });

    Анимация.

    fixxxerrr, 21 Февраля 2012

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

    +997

    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
    void TexQ::Move()
    {
    	mx = quad.v[0].x;
    	my = quad.v[0].y;
    	if(hge->Input_GetKeyState(HGEK_RBUTTON) || hge->Input_KeyDown(HGEK_LBUTTON))
    	{
    		hge->Input_GetMousePos(&nx, &ny);
    		move = true;
    		sx = GetPositionX();
    		sy = GetPositionY();
    		subx = nx - sx;
    		suby = ny - sy;
    
    		if ( abs(subx) > abs(suby) ) 
    		{
    			iter = abs(subx);
    			ms = subx;
    			subx = (subx < 0) ? -1.0f : 1.0f;
    			suby = (suby < 0 ) ? suby/abs(ms) : abs(suby/ms);
    		}
    		else 
    		{
    			iter = abs(suby);
    			ms = suby;
    			suby = (suby < 0) ? -1.0f : 1.0f;
    			subx = (subx < 0 ) ? subx/abs(ms) : abs(subx/ms);
    		}
    	}
    
    	if (move) 
    	{	
    		if (iter >= shift)
    		{
    			iter-=shift;
    			this->SetPosition(
    				GetPositionX() + subx * shift, 
    				GetPositionY() + suby * shift);
    		}
    		else
    		{
    			this->SetPosition(nx , ny);
    			move = false;
    		}
    
    	}
    
    }

    Хреновый из меня математик. Этот метод втыкается в функцию фрейминга. И текстура едет по прямой туда, куда мышью тыкнешь.
    Позже узнал, как можно тригонометрией в 5 строк написать такую же )

    idec, 14 Февраля 2012

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

    +131

    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
    private static bool state;
    
    public static bool InWork
    {
        get
        {
            return state;
        } 
        internal set
        {
            switch (value)
            {
                case true:
                    {
                        try
                        {
                            // попытка запуска сервиса
                            ...
                        }
                        catch (Exception ex)
                        {
                            throw;
                        }
                    }
                    break;
                case false:
                    {
                        if (!state) return;
                        // попытка остановить сервис
                        ...
                    } 
                    break;
            }
            state = value;
        }
    }
    
    public static void Start(...)
    {
        ...
        InWork = true;
    }
    
    public static void Stop()
    {
        ...
        InWork = false;
    }

    Интересный ход, правда?

    ddv_demon, 01 Декабря 2011

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