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

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

    +5

    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
    void add( std::string *str, std::string *addstr)
    {
      if(!strlen(addstr->c_str()))
        return;
    
      int len = strlen(str->c_str());
      if( len )
      {
        if((str->c_str())[len-1] != ';')
          *str = *str + ";";
    
        *str = *str + *addstr;
      }
      else
        *str = *addstr;
    
      len = strlen(str->c_str());
      if((str->c_str())[len-1] == ';')
    
      *str = str->substr(0,len-1);
    }

    kocmoc, 15 Июля 2016

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

    +3

    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
    $t0=mktime(
                preg_replace("/^....\-..\-..\ (..):..:..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-..\ ..:(..):..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-..\ ..:..:(..)$/","$1",$task['end_date']),
                preg_replace("/^....\-(..)\-..\ ..:..:..$/","$1",$task['end_date']),
                preg_replace("/^....\-..\-(..)\ ..:..:..$/","$1",$task['end_date']),
                preg_replace("/^(....)\-..\-..\ ..:..:..$/","$1",$task['end_date'])
            );
    
            $t1=mktime(
                preg_replace("/^....\-..\-..\ (..):..:..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-..\ ..:(..):..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-..\ ..:..:(..)$/","$1",$task['real_end_date']),
                preg_replace("/^....\-(..)\-..\ ..:..:..$/","$1",$task['real_end_date']),
                preg_replace("/^....\-..\-(..)\ ..:..:..$/","$1",$task['real_end_date']),
                preg_replace("/^(....)\-..\-..\ ..:..:..$/","$1",$task['real_end_date'])
            );
    
            for($i=$t0;$i<=$t1;$i=$i+(60*60))
            {

    Вот такой разбор дат по крупицам обнаружился...

    Lblss, 12 Июля 2016

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

    +7

    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
    string[] mOSB0, mOSB1, mOSB2, mOSB3, mOSB4, mOSB5, mOSB6, mOSB7, mOSB8, mOSB9, mOSB10; 
    string[] mOSB11, mOSB12, mOSB13, mOSB14, mOSB15, mOSB16, mOSB17, mOSB18, mOSB19, mOSB20, mOSB21; 
    string[] mOSB22, mOSB23, mOSB24, mOSB25, mOSB26, mOSB27, mOSB28, mOSB29, mOSB30, mOSB31, mOSB32; 
    string[] mOSB33, mOSB34, mOSB35, mOSB36, mOSB37, mOSB38, mOSB39, mOSB40, mOSB41, mOSB42, mOSB43; 
    string[] mOSB44, mOSB45, mOSB46, mOSB47, mOSB48, mOSB49, mOSB50, mOSB51, mOSB52, mOSB53, mOSB54; 
    string[] mOSB55, mOSB56, mOSB57, mOSB58, mOSB59, mOSB60, mOSB61, mOSB62, mOSB63, mOSB64, mOSB65; 
    string[] mOSB66, mOSB67, mOSB68, mOSB69, mOSB70, mOSB71, mOSB72, mOSB73, mOSB74, mOSB75, mOSB76; 
    string[] mOSB77, mOSB78, mOSB79, mOSB80, mOSB81, mOSB82, mOSB83, mOSB84, mOSB85, mOSB86, mOSB87; 
    string[] mOSB88, mOSB89, mOSB90, mOSB91, mOSB92, mOSB93, mOSB94, mOSB95, mOSB96, mOSB97, mOSB98; 
    string[] mOSB99, mOSB100, mOSB101, mOSB102, mOSB103, mOSB104, mOSB105, mOSB106, mOSB107, mOSB108; 
    string[] mOSB109, mOSB110, mOSB111, mOSB112, mOSB113, mOSB114, mOSB115, mOSB116, mOSB117, mOSB118; 
    string[] mOSB119, mOSB120, mOSB121, mOSB122, mOSB123, mOSB124, mOSB125, mOSB126, mOSB127, mOSB128; 
    string[] mOSB129, mOSB130, mOSB131, mOSB132, mOSB133, mOSB134, mOSB135, mOSB136, mOSB137, mOSB138; 
    string[] mOSB139, mOSB140, mOSB141, mOSB142, mOSB143, mOSB144, mOSB145, mOSB146, mOSB147, mOSB148; 
    string[] mOSB149, mOSB150, mOSB151, mOSB152, mOSB153, mOSB154, mOSB155, mOSB156, mOSB157, mOSB158; 
    string[] mOSB159, mOSB160, mOSB161, mOSB162, mOSB163, mOSB164, mOSB165, mOSB166, mOSB167, mOSB168; 
    string[] mOSB169, mOSB170, mOSB171, mOSB172, mOSB173, mOSB174, mOSB175, mOSB176, mOSB177, mOSB178; 
    string[] mOSB179, mOSB180, mOSB181, mOSB182, mOSB183, mOSB184, mOSB185, mOSB186, mOSB187, mOSB188; 
    string[] mOSB189, mOSB190, mOSB191, mOSB192, mOSB193, mOSB194, mOSB195, mOSB196, mOSB197, mOSB198; 
    string[] mOSB199, mOSB200, mOSB201, mOSB202, mOSB203, mOSB204, mOSB205, mOSB206, mOSB207, mOSB208; 
    string[] mOSB209, mOSB210, mOSB211, mOSB212, mOSB213, mOSB214, mOSB215, mOSB216, mOSB217, mOSB218; 
    string[] mOSB219, mOSB220, mOSB221, mOSB222, mOSB223, mOSB224, mOSB225, mOSB226, mOSB227, mOSB228; 
    string[] mOSB229, mOSB230, mOSB231, mOSB232, mOSB233, mOSB234, mOSB235, mOSB236, mOSB237, mOSB238; 
    string[] mOSB239, mOSB240, mOSB241, mOSB242, mOSB243, mOSB244, mOSB245, mOSB246, mOSB247, mOSB248; 
    string[] mOSB249, mOSB250, mOSB251, mOSB252, mOSB253; 
    string[] NORM, PEAK, NDST, NDSTR, NORMB, NDKOD, NDREZ; 
    string[] mTmcz, mKODZD, mKODRO, mKODNRO; 
    string csSosh = "Неверный КОД СОБЫТИЯ !!! - "; 
    string csSoshd = "Значение слова за пределами описанного";

    Массивы.
    Особенно хорош элегантный дефис, предлагающий продолжить описание ошибки.

    mrhotroad, 08 Июля 2016

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

    0

    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
    do {
    	if ( array_key_exists( 'smd', $_GET ) ) {
    		$this->response[]	= $this->getServiceMap();
    		$this->hasCalls		= TRUE;
    		break;
    	}
    
    	$error = $this->getRequest();
    	if ( $error ) {
    		$this->response[] = $this->getError( $error );
    		$this->hasCalls   = TRUE;
    		break;
    	}
    
    	foreach( $this->calls as $call ) {
    		$error = $this->validateCall( $call );
    		if ( $error ) {
    			$this->response[] = $this->getError( $error[0], $error[1], $error[2] );
    			$this->hasCalls   = TRUE;
    		} else {
    			$result = $this->processCall( $call );
    			if ( $result ) {
    				$this->response[] = $result;
    				$this->hasCalls   = TRUE;
    			}
    		}
    	}
    } while(FALSE);

    Угадайте, зачем?

    Flaker, 07 Июля 2016

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

    0

    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
    public static GridElementForm SetConnectionState(GridElement[][] _map, int x, int y)
            {
    
                int right;
                int left;
                int up;
                int down;
                try { right = (int)_map[x - 1][y].elementType; }
                catch { right = 0; }
                try { left = (int)_map[x + 1][y].elementType; }
                catch { left = 0; }
                try { up = (int)_map[x][y - 1].elementType; } catch { up = 0; }
                try { down = (int)_map[x][y + 1].elementType; } catch { down = 0; }
                //****   I
                if (right >= 1 && left >= 1 && up == 0 && down == 0)
                {
                    return GridElementForm.Ihorizontal;
                }
                else if (right == 0 && left == 0 && up > 0 && down > 0)
                {
                    return GridElementForm.Ivertical;
                }
                ///*********
                /// *****   T 
                else if (right > 0 && left == 0 && up > 0 && down > 0)
                {
                    return GridElementForm.T1;
                }
                else if (right == 0 && left > 0 && up > 0 && down > 0)
                {
                    return GridElementForm.T2;
                }
                else if (right > 0 && left > 0 && up == 0 && down > 0)
                {
                    return GridElementForm.T3;
                }
                else if (right > 0 && left > 0 && up > 0 && down == 0)
                {
                    return GridElementForm.T4;
                }
                ///   *******
                ///   ******* L
                else if (right > 0 && left == 0 && up > 0 && down == 0)
                {
                    return GridElementForm.L2;
                }
                else if (right == 0 && left > 0 && up > 0 && down == 0)
                {
                    return GridElementForm.L1;
                }
                else if (right == 0 && left > 0 && up == 0 && down > 0)
                {
                    return GridElementForm.L4;
                }
                else if (right > 0 && left == 0 && up == 0 && down > 0)
                {
                    return GridElementForm.L3;
                }
                ///   *******
                else if (right > 0 && left > 0 && up > 0 && down > 0)
                {
                    return GridElementForm.X;
                }
                else
                {
                    return 0;
                }
            }
    
        }

    Без комментариев

    isnotameme, 06 Июля 2016

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

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    может = "ИвановИИ";
    	текущий = ИмяПользователя();
    	Если Не текущий = может Тогда
    		ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить.Доступность = РедактироватьУзел;
    		Предупреждение("Запустить обмен может пользователь: " + может );
    	КонецЕсли;

    а если незнающий прог пробел добавит лишний в имя пользователя (или уволится сотрудник)... права лягут, да? ну ок.

    oleganatolievich, 23 Июня 2016

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

    +2

    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
    public void CreateRow()
    {
        allow = true;
        this.Height = this.Height;
        allow = false;
    }
    private void MyWindow_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (!allow)
        {
            MyGrid.RowDefinitions.Add(new RowDefinition());
            return;
        }
        else
            //нормальная реализация
    }

    Такой незамысловатый костыль в WPF

    blowup, 14 Июня 2016

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

    +5

    1. 1
    2. 2
    3. 3
    if ($('.b-form__row_hide').hasClass('b-form__row_hide')) {
    	$('.b-form__row_hide').addClass('b-form__row_hide');
    }

    riddick6600, 02 Июня 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(((player[i].targetanimation!=getupfrombackanim&&player[i].targetanimation!=getupfromfrontanim)||player[i].skeleton.free)&&((player[k].targetanimation!=getupfrombackanim&&player[k].targetanimation!=getupfromfrontanim)||player[k].skeleton.free))
        if(((((findLengthfast(&rotatetarget)>150&&(i!=0&&k!=0))||(findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll/*currentanimation==rabbitkickanim*/&&(i==0||k==0)))&&normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&((i==0||k==0)||((player[i].skeleton.oldfree==1&&k!=0&&animation[player[k].currentanimation].attack==neutral)||(player[k].skeleton.oldfree==1&&i!=0&&animation[player[i].currentanimation].attack==neutral)||(player[i].isFlip()&&!player[i].skeleton.oldfree&&(i==0||k==0))||(player[k].isFlip()&&!player[k].skeleton.oldfree&&(i==0||k==0))||(i==0||k==0))))||((player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&(i==0||k==0)&&(!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree))){
            //If hit by body
            if((i!=0||player[i].skeleton.free)&&(k!=0||player[k].skeleton.free)||(animation[player[i].targetanimation].height==highheight&&animation[player[k].targetanimation].height==highheight)){
                static float gLoc[3];
                // ...

    Не могу не запостить. Кажется, это самый длинный говнокод, что я видел.
    По мотиву #20073, из http://hg.icculus.org/icculus/lugaru/file/97b303e79826/Source/GameTick.cpp .

    PS, на всякий случай поставлю C++ - где-то в недрах второй строчки он наверняка есть.

    gost, 25 Мая 2016

    Комментарии (2)
  11. JavaScript / Говнокод #20066

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    /*не знаю, почему на массиве не сработал concat()*/
    function arrPusher (arr) {
        _.forEach(arr, function (i) {
            saveParams.push(i);
        });
    }

    finico, 24 Мая 2016

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