1. 1C / Говнокод #16641

    −169

    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
    //  Параметры - реквизит объекта. Больше (!) нигде не используется.
    
    Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    	Если ЭтоНовый() Тогда
    		Параметры = "000001000";
    	КонецЕсли;
    	
    	ФлагОписания = ?(Сред(Параметры,7,1) = "1", Истина, Ложь);
    	ФлагМестоX     = ?(Сред(Параметры,8,1) = "1", Истина, Ложь);
    	ФлагМестоY      = ?(Сред(Параметры,9,1) = "1", Истина, Ложь);		
    КонецПроцедуры
    
    Процедура СменаФлага()    
    	Параметры = Лев(Параметры,6)+Строка(Число(ФлагОписания))+Строка(Число(ФлагМестоX))+Строка(Число(ФлагМестоY));
    КонецПроцедуры
    
    
    Процедура ФлагОписанияПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры
    
    Процедура ФлагМестоXПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры
    
    Процедура ФлагМестоYПриИзменении(Элемент)	
    	СменаФлага();	
    КонецПроцедуры

    Хотел быть шифровальщиком, но кривая дорожка жизни…

    safer_bwd, 04 Сентября 2014

    Комментарии (4)
  2. ActionScript / Говнокод #16640

    −92

    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
    public class MathAndGeometryUtils
    {
    	public static function roundToHalf(value:Number):Number 
    	{
    		var multiplied:int = Math.round(value * 10);
    		if (multiplied / 5 == Math.round(multiplied / 5))
    		{
    			return multiplied / 10;
    		}
    		else
    		{
    			var noComma:Number = Math.floor(multiplied / 10) * 10;
    			var divaider:int = multiplied - noComma;
    			if (divaider >= 3 && divaider <= 7)
    				return (noComma + 5) / 10;
    			else
    				return Math.round(value);
    		}
    	}
    }

    На сколько я смог понять задумку, человеку хотелось чтобы функция возвращала значения типа 0, 0.5, 1, 1.5 и т.д. и вот он придумал такое самобытное решение.

    wvxvw, 04 Сентября 2014

    Комментарии (37)
  3. 1C / Говнокод #16639

    −172

    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
    Процедура ПриЗаписи(Отказ)
    	// Проверяем роль
    	
    	Если рольДоступна ("ДляКасираПроведениеВТечениеОдногоДня")   Тогда		 
    		  мТекущаяДатаДокумента = Формат(мТекущаяДатаДокумента, "ДЛФ=D");
    		Если  мТекущаяДатаДокумента = Формат(ТекущаяДата(), "ДЛФ=D") ТОгда
    			Записать ();
    		Иначе
    			Отказ = истина;
    			Предупреждение ("Нарушение прав доступа");
    			ЭтаФорма.Закрыть();
    		КонецЕсли;        
    	КонецЕсли;
    КонецПроцедуры

    И это все в модуле формы.

    alexinzaz, 04 Сентября 2014

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

    +51

    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
    void Snake::turnSnake(const int key)
    {
        QPoint pos = components_of_snake.last().topLeft();
        QPoint temp = pos;
    
        bool wasTurned = false;
    
        if((key == Qt::Key_Right) && (side_turn != LEFT))
        {
            side_turn = RIGHT;
    
            pos.rx() += SIZE_OF_COMPONENT;
            wasTurned = true;
        }
        else if((key == Qt::Key_Left) && (side_turn != RIGHT))
        {
            side_turn = LEFT;
    
            pos.rx() -= SIZE_OF_COMPONENT;
            wasTurned = true;
        }
        else if((key == Qt::Key_Up) && (side_turn != DOWN))
        {
            side_turn = UP;
    
            pos.ry() -= SIZE_OF_COMPONENT;
            wasTurned = true;
        }
        else if((key == Qt::Key_Down) && (side_turn != UP))
        {
            side_turn = DOWN;
    
            pos.ry() += SIZE_OF_COMPONENT;
            wasTurned = true;
        }
    
        if(wasTurned)
        {
            components_of_snake.last().moveTo(pos);
            _cathUpHead(temp);
        }
    }

    Метод поворота для змейки)

    darkKnight, 03 Сентября 2014

    Комментарии (4)
  5. Java / Говнокод #16637

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ( !( new File( dataFolder + "/Screenshoots" ).exists()
    	    && new File( dataFolder + "/Screenshoots" ).isDirectory() ) )
    		new File( dataFolder + "/Screenshoots" ).mkdir();
    	    
    if ( !( new File( dataFolder + "/Screenshoots/" + step.test.hashCode() ).exists()
    	    && new File( dataFolder + "/Screenshoots/" + step.test.hashCode() ).isDirectory() ) )
    		new File( dataFolder + "/Screenshoots/" + step.test.hashCode() ).mkdir();

    sakkath, 03 Сентября 2014

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

    −162

    1. 1
    НоваяСтрока.ТелефонныйНомер = Прав(НоваяСтрока.ТелефонныйНомер, стрДлина(НоваяСтрока.ТелефонныйНомер));

    Выдрано из Рарус СофтФон. Ума не приложу, что они хотели этим сказать...

    Ivon, 03 Сентября 2014

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

    +158

    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
    class TestThis
    {
        public $property = 'property';
    
        public function test1()
        {
            $this->this($this, new ArrayObject);
    
            $this['wierd'] = true;
    
            print_r($this);
            print_r($this->property . PHP_EOL);
    
            return $this;
        }
    
        public function test2()
        {
            print_r($this);
        }
    
        public function this(&$object, $value)
        {
            $object = $value;
        }
    }
    
    (new TestThis)->test1()->test2();

    Вопрос к самому похапе.

    Так вот нельзя:
    $this = че-нибудь

    "Cannot re-assign $this"

    А вот как выше можно!

    doo_dee_doo_dmt, 02 Сентября 2014

    Комментарии (28)
  8. Perl / Говнокод #16634

    −109

    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
    #!/usr/bin/perl
    use strict;
    sub ternary_switch {
    	my ($def,%exp) = @_;
    	my $result = $def;
    	for my $key (keys %exp) {
    		$result = '(' . $key . ')?(' . $exp{$key} . '):(' . $result . ')';
    	}
    	return $result;
    }
    my $def = ' (int)sum/0 /*assert*/ '; 
    my %exp = ( 
    	'quant==2' => ' round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ',
    	'quant==5' => ' round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ',
    	'quant==1' => ' round((sum)*pow(10.0,prec))/pow(10.0,prec) ',
    );
    my $result = ternary_switch($def,%exp);
    print $result . "\n";
    
    #define ROUND_QUANT(sum,prec,quant) (quant==5)?( round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ):\
        ((quant==2)?( round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ):\
        ((quant==1)?( round((sum)*pow(10.0,prec))/pow(10.0,prec) ):\
        ( (int)sum/0 /*assert*/ )))

    Округление с дробной точностью.
    Если бы я не прочитал на говнокоде что тернарники можно вкладывать, мне бы никогда это не пришло в голову

    overloop, 02 Сентября 2014

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

    +133

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //You can assign Values to the ASPNET RadioButton like this way:
    protected void Page_Load(object sender, EventArgs e)
     {
             RadioButton1.Attributes.Add("value", "ASPNET");
    } 
    
    //Then you can access the value this way:
    protected void Button1_Click(object sender, EventArgs e)
     {
             Response.Write(RadioButton1.Attributes["value"].ToString());
    }

    сегодня для меня стало новостью, что у высокоуровневого контрола asp.net web form RadioButton, который по сути рендерится в <input type="radio">, нет атрибута value.
    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.radiobutton(v= vs.110).aspx да, его нет.
    но сначала я подумал, что все же может это я кривой и не туда смотрю, а потом нахожу велосипед, который предлагает MVP http://forums.asp.net/t/1379187.aspx?Why+does+an+ASP+NET+RadioBu tton+control+not+have+a+property+to+prog ramatically+set+the+value+attribute+

    Lokich, 02 Сентября 2014

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

    +61

    1. 1
    int len = dynamic_cast<GatewayRec *>(*Iter)->PrefixMatch(aliases, matchedalias, priority);

    gnugk

    bormand, 02 Сентября 2014

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