1. PHP / Говнокод #17310

    +156

    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
    //prepare ids
    $temp_char = "";
    $temp_id = "";
    $ids_array = array();
    
    for ($i = 0; $i < strlen($ids); $i ++) {
    	$temp_char = substr($ids, $i, 1);
    	
    	if ($temp_char != ",") {
    		$temp_id .= $temp_char;
    		
    		if ($i == (strlen($ids) - 1)) {
    			array_push($ids_array, $temp_id);
    			$temp_id = "";
    		}
    	} else {
    		array_push($ids_array, $temp_id);
    		$temp_id = "";
    	}
    }

    Распарсил строку с айдишниками, разделенными запятыми. Минут 15 точно потратил.

    sbbn, 14 Декабря 2014

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

    +132

    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
    static void InitializeRegExGrammar()
            {
                SimpleRegExGrammar[0] = "A->B";
                SimpleRegExGrammar[1] = "A->B|A";
                SimpleRegExGrammar[2] = "B->C";
                SimpleRegExGrammar[3] = "B->C@B";
                SimpleRegExGrammar[4] = "C->D*";
                SimpleRegExGrammar[5] = "C->D";
                SimpleRegExGrammar[6] = "D->(A)";
                SimpleRegExGrammar[7] = "D->a";
                SimpleRegExGrammar[8] = "D->b";
                SimpleRegExGrammar[9] = "D->c";
                SimpleRegExGrammar[10] = "D->d";
                SimpleRegExGrammar[11] = "D->e";
                SimpleRegExGrammar[12] = "D->f";
                SimpleRegExGrammar[13] = "D->g";
                SimpleRegExGrammar[14] = "D->h";
                SimpleRegExGrammar[15] = "D->i";
                SimpleRegExGrammar[16] = "D->j";
                SimpleRegExGrammar[17] = "D->k";
                SimpleRegExGrammar[18] = "D->l";
                SimpleRegExGrammar[19] = "D->m";
                SimpleRegExGrammar[20] = "D->n";
                SimpleRegExGrammar[21] = "D->o";
                SimpleRegExGrammar[22] = "D->p";
                SimpleRegExGrammar[23] = "D->q";
                SimpleRegExGrammar[24] = "D->r";
                SimpleRegExGrammar[25] = "D->s";
                SimpleRegExGrammar[26] = "D->t";
                SimpleRegExGrammar[27] = "D->u";
                SimpleRegExGrammar[28] = "D->v";
                SimpleRegExGrammar[29] = "D->w";
                SimpleRegExGrammar[30] = "D->x";
                SimpleRegExGrammar[31] = "D->y";
                SimpleRegExGrammar[32] = "D->z";
            }

    Пока отправлял, придумал, как лучше сделать =(

    Destiner, 14 Декабря 2014

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

    +57

    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
    if (this->IsWhiteFigure())
    		{
    			if (abs(position_x - this->GetPositionX()) == 1 && position_y - this->GetPositionY() == -1)
    			{
    				this->SetPositionX(position_x);
    				this->SetPositionY(position_y);
    			}
    			else
    			{
    				throw IncorrectMoveException();
    			}
    		}
    		else
    		{
    			if (abs(position_x - this->GetPositionX() == 1) && position_y - this->GetPositionY() == 1)
    			{
    				this->SetPositionX(position_x);
    				this->SetPositionY(position_y);
    			}
    			else
    			{
    				throw IncorrectMoveException();
    			}
    		}

    Тест на внимательность. Сможете ли вы догадаться почему это не работает ?

    GreatMASTERcpp, 13 Декабря 2014

    Комментарии (4)
  4. Куча / Говнокод #17307

    +122

    1. 1
    10.80.32.240 vk.ru

    знаю, что не в тему, но все же. доблестные айтишники добавили такую строчку в host, не для того, чтобы я работал, а потому, что они взяли на работу идиота, который считает такие вещи довольно забавными.
    энивей, на работе проблема решается довольно просто, путем отключения pac скрипта в ie, и насильным использованием прокси, но дома это не работает. анонимайзерами пользоваться не хотелось бы, но может есть способ обойти?
    в инете я много велосипедов нашел о том, как его править, как изменить директорию, где лежит файл, и т.п. но, к сожалению я не имею прав администратор, поэтому все тщетно.

    Lokich, 13 Декабря 2014

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

    +63

    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
    int day (char* input, int begin, int number, int year)
    {
    	switch (input[begin])
    	{
    		case 65:
    		if (input[begin+1] == 112) 
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 91 + number; 
    			else return 90 + number;
    		else if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 213 + number; 
    			else return 212 + number;
    		break;
    			
    		case 68:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 335 + number; 
    					else return 334 + number;
    		break;
    		
    		case 70:
    		return 31+number;	
    		break;
    		
    		case 74:
    		switch (input[begin+3])
    		{
    			case 117:
    			return number;
    			break;
    			
    			case 101:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 152 + number; else return 151 + number;
    			break;
    			
    			case 121:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 182 + number; else return 181 + number;
    			break;			
    		}
    		break;
    		
    		case 77:
    		switch (input[begin+2])
    		{		
    			case 114:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 60 + number; else return 59 + number;
    			break;
    			
    			case 121:
    			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 121 + number; else return 120 + number;
    			break;			
    		}
    		break;
    		
    		case 78:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 305 + number; else return 304 + number;
    		break;
    		
    		case 79:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 274 + number; else return 273 + number;
    		break;
    		
    		case 83:
    		if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 244 + number; else return 243 + number;
    		break;
    	}
    }

    Преобразование название месяца в его продолжительность.

    mottoper, 12 Декабря 2014

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

    +58

    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
    if(is_ai_on && !white_move)
    			{
    				int tries;
    			start:
    					srand (time(NULL));
    				select_figure:
    					int figure = rand() % (game_field.figures.size() - 1) + 0;
    					if(game_field.figures[figure]->IsWhiteFigure()) goto select_figure;
    					int pos_x;
    					int pos_y;
    					tries = 0;
    				try_move:
    				try
    				{
    					switch(game_field.figures[figure]->GetType())
    					{
    						case PawnType:
    						{
    							pos_x = rand() % (game_field.figures[figure]->GetPositionX() + 2) + (game_field.figures[figure]->GetPositionX() - 2);
    							if(pos_x < 0) pos_x = 0;
    							if(pos_x >= game_field.size) pos_x = game_field.size - 1;
    							pos_y = game_field.figures[figure]->GetPositionY() + 1;
    							if(pos_x == game_field.figures[figure]->GetPositionX() &&
    							   pos_y == game_field.figures[figure]->GetPositionY())
    							   {
    									if(tries < 6)
    									{
    										tries++;
    										goto try_move;
    									}
    									else
    									{
    										goto select_figure;
    									}
    							   }
    						}break;
    						default:
    						{
    							pos_x = rand() % (game_field.figures[figure]->GetPositionX() + 5) + (game_field.figures[figure]->GetPositionX() - 5);
    							pos_y = rand() % (game_field.figures[figure]->GetPositionY() + 5) + (game_field.figures[figure]->GetPositionY() - 5);
    							if(pos_x < 0) pos_x = 0;
    							if(pos_x >= game_field.size) pos_x = game_field.size - 1;
    							if(pos_y < 0) pos_y = 0;
    							if(pos_y >= game_field.size) pos_y= game_field.size - 1;
    							if(pos_x == game_field.figures[figure]->GetPositionX() &&
    							   pos_y == game_field.figures[figure]->GetPositionY())
    							   {
    									if(tries < 6)
    									{
    										tries++;
    										goto try_move;
    									}
    									else
    									{
    										goto select_figure;
    									}
    							   }
    						}break;
    					}
    					game_field.DoMove(figure, pos_x, pos_y, this->white_move);
    				}
    				catch(...)
    				{
    					if(tries < 6)
    					{
    						tries++;
    						goto try_move;
    					}
    					else
    					{
    						goto select_figure;
    					}
    				}
    				this->white_move = true;
    			}

    Скайнет - версия 0.0000000000000000000000000000000001

    GreatMASTERcpp, 12 Декабря 2014

    Комментарии (8)
  7. Куча / Говнокод #17304

    +123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    KoKoKoKoKoKoKoKoKoKo Kud-Kudah KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek
    kudah KoKoKo Kud-Kudah kOkOkOkO kudah kO kud-Kudah Ko Kukarek
    kudah KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
    kOkOkOkOkO Kukarek Kukarek
    kOkOkOkOkOkOkO Kukarek

    Публикации уже два дня, а на говнокоде ни одного упоминания. Ну как так?

    https://github.com/Ky6uk/PETOOH
    http://habrahabr.ru/post/245443/

    Xom94ok, 12 Декабря 2014

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

    +164

    1. 1
    $id = int(int(int(int(int(int(int(int(int(int(int(int(int(int(int($_POST["id"])))))))))))))));

    Зачем??

    Reds, 12 Декабря 2014

    Комментарии (15)
  9. Куча / Говнокод #17302

    +129

    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
    " Подсчёт количества документов
    
      DEFINE incr.
        add 1 to ls_summary-c_&1.
      END-OF-DEFINITION.
    
      CASE ls_s08_doc-status.
        WHEN `01`. incr vvr.
        WHEN `02`. incr vvr. incr vpz.
        WHEN `03`. incr prz.
        WHEN `04`. incr prz. incr nnp. incr otk.
        WHEN `05`.
        WHEN `06`. incr prz. incr nnp.
        WHEN `07`. incr prz. incr nnp. incr sgl.
        WHEN `ПД`. incr prz. incr nnp. incr v12.
        WHEN `ПП`.
        WHEN `ПС`. incr prz. incr nnp. incr pns.
        WHEN `НП`.
        WHEN `СФ`. incr prz. incr nnp. incr v12.
        WHEN `ТП`. incr vvr. incr vpz.
        WHEN `ОК`. incr prz. incr nnp. incr v12. incr o12.
        WHEN OTHERS.
      ENDCASE.

    В ABAP нет инкремента. Зато есть макросы, в которые подставляется «что написано» в точности так как написано ^_^

    Yaruson, 12 Декабря 2014

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

    +70

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static List<Defaulter> getDefaulterList() {
    	List<Defaulter> defaulters = new ArrayList<Defaulter>();
    
    	for (Map.Entry<Class<?>, Defaulter> defaulterEntry : hash.entrySet()) {
    		Defaulter def = defaulterEntry.getValue();
    		defaulters.add(def);
    	}
    
    	return defaulters;
    }

    Всё заменилось одной строкой:

    return new ArrayList<Defaulter>(hash.values());

    someone, 12 Декабря 2014

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