1. C++ / Говнокод #13184

    +10

    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
    // проверка содержимого массива кликов
    for(;;)
    {
    	// Поиск нуля
    	for(; massiv[car_massiv] != 0; car_massiv += 3);
    	// Выход если достигнут конец массива
    	if(car_massiv == car_base - 1) break;
    	car_massiv++;
    	// Сравниваем записи в обоих массивах
    	for(car_cl = 0;; car_cl += 2, car_massiv += 3)
    	{
    		// Производим перебор в поисках НЕ пустой клетки (НЕ "1")
    		for(i = i0 + di, j = j0 + dj; board[i][j] == 1 || (i == ib && j == jb); i += di, j +=dj);
    		// Если не координаты срубленно шашки, то выход
    		if(i != i2) break;
    		if(j != j2) break;
    		// Производим перебор пустых клеток в поисках координат клика
    		for(i = i2 + di, j = j2 + dj; (board[i][j] == 1 || (i == ib && j == jb)) && !(i == i1 && j == j1); i += di, j += dj);
    		// Если НЕ координаты клика, то выход
    		if(i != i1) break;
    		if(j != j1) break;
    		// Координаты срубаемой (на следующем этапе) шашки
    		i3 = massiv[car_massiv + 4];
    		j3 = massiv[car_massiv + 5];
    		...
    		...
    	}
    }

    Знакомый писал шашки, для себя. Местами попроще, но это просто убило

    anu, 17 Июня 2013

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

    +135

    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
    #include <stdio.h>
     
    typedef void(* file_handler_t)(FILE* fileHandle);
     
    void using_file(FILE* fileHandle, file_handler_t fileHandler/*a*/)
    {
        if(!fileHandle)
            return;
        fileHandler(fileHandle);
        fclose(fileHandle);
    }
     
    int main(void) {
        using_file(fopen("myfile.txt","w"),
            ({void body(FILE* fileHandle) {
                /*пишем в fileHandle;*/
            }; body;})//b
        );
            return 0;
    }

    Постю код в защиту курочки от нападок Тараса про автодестукторы. Уникальные виды куриц нужно оберегать, сохранять и защищать.
    Курочка об gnuцицизмы уже зашкварился так что будем стоять на своем до конца. Главное чтобы он свой не отстоял, а то потом не встанет.
    http://ideone.com/2zRuK0

    В позицию /*a*/ можно добавить параметр, деструктирующий объект должным образом. И соответственно оформить using_file как USING макросом, чтобы можно было деструктить объекты не только типа FILE* но и любых других. В макросе вполне при этом может понадобится гнутый typeof, но у нас и так зашквар, так что уже не важно. Так же для полной универсальности можно добавить параметр, определяющий неуспешность открытия объекта, чтобы вместо if(!fileHandle) был if(predicate(fileHandle)). Но конечно при этом лучше просто сделать 2 варианта макроса: обобщенный и с предикатом по умолчанию логическое отрицание.

    Вместо некрасивой позиции //b лучше завести макрос, эмитирующий нормальную красивую человеческую лямбду.

    LispGovno, 16 Июня 2013

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

    +164

    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
    <table> 
                                <tr> 
                                    <td> 
                                        <span class="date"><? echo ''.(mysql_result(mysql_query("SELECT `data` FROM `money` WHERE `id`=1"),0));?></a></span>                                         
                                    </td> 
                                    <th> 
                                        <span class="Out"><? echo ''.(mysql_result(mysql_query("SELECT `money` FROM `money` WHERE `id`=1"),0));?></span> 
                                    </th> 
                                </tr>  
                                <tr><td class="wrap" colspan="2"><a href=""><? echo ''.(mysql_result(mysql_query("SELECT `text` FROM `money` WHERE `id`=1"),0));?></a></td></tr> 
                            </table> 
                        </div> 
                    </td> 
            </tr><tr class="alt"> 
                <td>                         
                        <div class="field">                             
                            <table> 
                                <tr> 
                                    <td> 
                                        <span class="date"><? echo ''.(mysql_result(mysql_query("SELECT `data` FROM `money` WHERE `id`=2"),0));?></span>                                         
                                    </td> 
                                    <th> 
                                        <span class='Out'><? echo ''.(mysql_result(mysql_query("SELECT `money` FROM `money` WHERE `id`=2"),0));?></span> 
                                    </th> 
                                </tr>  
                                <tr><td class="wrap" colspan="2"><a href=''><? echo ''.(mysql_result(mysql_query("SELECT `text` FROM `money` WHERE `id`=2"),0));?></a></td></tr> 
                            </table> 
                        </div> 
                    </td> 
            </tr><tr> 
                <td>                         
                        <div class="field">                             
                            <table> 
                                <tr> 
                                    <td> 
                                        <span class="date"><a href='' class='hl'><? echo ''.(mysql_result(mysql_query("SELECT `data` FROM `money` WHERE `id`=3"),0));?></a></span>                                         
                                    </td> 
                                    <th> 
                                        <span class='In'><? echo ''.(mysql_result(mysql_query("SELECT `money` FROM `money` WHERE `id`=3"),0));?></span> 
                                    </th> 
                                </tr>  
                                <tr><td class="wrap" colspan="2"><a href=''><? echo ''.(mysql_result(mysql_query("SELECT `text` FROM `money` WHERE `id`=3"),0));?></a></td></tr> 
                            </table> 
                        </div> 
                    </td> 
            </tr><tr class="alt"> 
                <td>                         
                        <div class="field">                             
                            <table> 
                                <tr> 
                                    <td> 
                                        <span class="date"><a href='' class='hl'><? echo ''.(mysql_result(mysql_query("SELECT `data` FROM `money` WHERE `id`=4"),0));?></a></span>                                         
                                    </td> 
                                    <th> 
                                        <span class='Out'><? echo ''.(mysql_result(mysql_query("SELECT `money` FROM `money` WHERE `id`=4"),0));?></span> 
                                    </th> 
                                </tr>  
                                <tr><td class="wrap" colspan="2"><a href=''><? echo ''.(mysql_result(mysql_query("SELECT `text` FROM `money` WHERE `id`=4"),0));?></a></td></tr> 
                            </table> 
                        </div> 
                    </td> 
            </tr><tr> 
                <td>                         
                        <div class="field">                             
                            <table> 
                                <tr> 
                                    <td> 
                                        <span class="date"><a href='' class='hl'><? echo ''.(mysql_result(mysql_query("SELECT `data` FROM `money` WHERE `id`=5"),0));?></a></span>                                         
                                    </td> 
                                    <th> 
                                        <span class='Out'><? echo ''.(mysql_result(mysql_query("SELECT `money` FROM `money` WHERE `id`=5"),0));?></span> 
                                    </th> 
                                </tr>  
                                <tr><td class="wrap" colspan="2"><a href=''><? echo ''.(mysql_result(mysql_query("SELECT `text` FROM `money` WHERE `id`=5"),0));?></a></td></tr> 
                            </table>

    vGhost, 16 Июня 2013

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

    +31

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(i = 0; i < strlen(line); i++)
    {
        ...
        doSomethingWith(line);
        ...
    }

    Пишет на С++, так как в нем (цитирую) больше возможностей, но std::string он не использует по причине (цитирую) его несовместимости с си компиляторами.
    Автор намекнул мне, что я не умею в многопоточность и что этот код лучше любого другого подходит для исполнения в многопоточной среде на тот случай, если переменная line bump изменится ("англици́зм" цитирую дословно, видимо вставленный для понтов и переводимое как наречие внезапно).

    Имеет ли смысл доказывать, что он не прав, если я с ним не работаю?

    LispGovno, 15 Июня 2013

    Комментарии (296)
  5. Си / Говнокод #13180

    +139

    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
    #include <stdio.h>
    #include <stdint.h>
    
    #define foreach(a, b)\
    for(typeof(*(b)) * _shit_begin = (b), * _shit_end = ((_shit_begin) + sizeof((b))/sizeof(*(b))), * (a) = _shit_begin; (a) != _shit_end; ++(a))
      
    int main(void) {
    {
      uint32_t vec[6][3] = {
          {10, 11, 12},
          {20, 21, 22},
          {30, 31, 32},
          {40, 41, 42},
          {50, 51, 52},
          {60, 61, 62},
      };
      foreach(it, vec[2])
        fprintf(stderr, "%u\n", *it);
    }
    {
      uint32_t vec[] = {0, 1, 2, 3, 4, 5};
      foreach(it, vec)
        fprintf(stderr, "%u\n", *it);
    }
    {
      uint8_t vec[] = {0, 1, 2, 3, 4, 5};
      foreach(it, vec)
        fprintf(stderr, "%u\n", *it);
    }
    {
      uint64_t vec[] = {0, 1, 2, 3, 4, 5};
      foreach(it, vec)
        fprintf(stderr, "%lu\n", *it);
    }
      return 0;
    }

    Си++. Инновации, 21-йвек, 11-й год. auto и for(a:b). Прорыв, не то, что в этой питушарской сишке допотопной. А ведь это сишка могла 30лет назад.


    P.S. Не вброс.

    superhackkiller1997, 15 Июня 2013

    Комментарии (460)
  6. PHP / Говнокод #13179

    +152

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function unix_timestamp_to_human ($timestamp = "", $format = 'D d M Y - H:i:s')
    {
        if (empty($timestamp) || ! is_numeric($timestamp)) $timestamp = time();
        return ($timestamp) ? date($format, $timestamp) : date($format, $timestamp);
    }
    
    $unix_time = "1251208071";
    
    echo unix_timestamp_to_human($unix_time); //Return: Tue 25 Aug 2009 - 14:47:51

    Я всё правильно понял, код воняет?

    denis90, 15 Июня 2013

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

    +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
    checkValidPage:function(){
    	    var c=false;
    	    var d=false;
    	    try{
    		var a=document.getElementsByTagName('input');
    		if(a.length!=0)
    		    for(var i in a)
    		    {
    			if(!c && a[i].type=='checkbox')
    			    c=true;
    			if(!d && a[i].name=='delsel')
    			    d=true;
    			if(c && d)
    			    return true;
    		    }
    	    }catch(e){}
    	    return false;
    	},

    GoodTalkBot, 15 Июня 2013

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

    +154

    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
    $zak=$row['content']; 
        $ret=$ret.'<td>';  
        $p_ret=array();
      $t_zak=explode('{',$zak);
      $t_c=count($t_zak)-2;
    
      //------------------------------------------  
    
    for($t_i=0;$t_i<$t_c;$t_i++){
      $zak=$t_zak;
      $zak=explode('}',$zak[$t_i+2]);
      $zak=explode(';',$zak[0]);
      $p_zak=array();
      $c=(int)floor(count($zak)/2);
      $c=(int)($c*2);
      for($i=0;$i<$c;$i=$i+2){
        $temp=explode(':',$zak[$i]);
        $ind=str_replace('"','',$temp[count($temp)-1]);
        $temp=explode(':',$zak[$i+1]);
        $val=str_replace('"','',$temp[count($temp)-1]);
        $p_zak[$ind]=$val;
      }
      $p_zak['id']=(int)$p_zak['id'];
      //[count] => 3 [id] => 21 [name] => Стул [price] => 213454
      $p_ret[]='<a href="[[~'.$p_zak['id'].']]">'.$p_zak['name'].'</a> '.$p_zak['count'].' шт.';

    После модернизации одного из Интернет магазинов сломался личный кабинет ( MODX Revolution, Shopkeeper ).

    Начал изучать и понял, что прошлый программист изобрел заново unserialize.

    Rostov114, 14 Июня 2013

    Комментарии (39)
  9. SQL / Говнокод #13176

    −164

    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
    SELECT TOP 100 Col008, Col012, 
            CAST(
                   CASE WHEN SUBSTRING(Col008, 9, 1) IN ('å', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R')
                           THEN '-' ELSE '' END +
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                           Col008, 'æ', '0'), 'A', '1'), 'B', '2'), 'C', '3'), 'D', '4'), 
                                   'E', '5'), 'F', '6'), 'G', '7'), 'H', '8'), 'I', '9'), 
                                   'å', '0'), 'J', '1'), 'K', '2'), 'L', '3'), 'M', '4'), 
                                   'N', '5'), 'O', '6'), 'P', '7'), 'Q', '8'), 'R', '9') 
            AS INT) AS Col008num,
    
            CAST(
                   CASE WHEN SUBSTRING(Col012, 7, 1) IN ('å', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R')
                           THEN '-' ELSE '' END +
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
                           Col012, 'æ', '0'), 'A', '1'), 'B', '2'), 'C', '3'), 'D', '4'), 
                                   'E', '5'), 'F', '6'), 'G', '7'), 'H', '8'), 'I', '9'), 
                                   'å', '0'), 'J', '1'), 'K', '2'), 'L', '3'), 'M', '4'), 
                                   'N', '5'), 'O', '6'), 'P', '7'), 'Q', '8'), 'R', '9') 
            AS INT) AS Col012num
    
    FROM dbo.Source_Table

    Да за что ж мне такое?

    DBdev, 14 Июня 2013

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

    +133

    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
    int sum = 100;
                int sch = 0;
    
                for (int a50 = 0; a50 <= sum / 50; a50++)
                {
                    for (int a25 = 0; a25 <= (sum - a50 * 50) / 25; a25++)
                    {
                        for (int a10 = 0; a10 <= (sum - a50 * 50 - a25 * 25) / 10; a10++)
                        {
                            for (int a5 = 0; a5 <= (sum - a50 * 50 - a25 * 25 - a10 * 10) / 5; a5++)
                            {
                                sch++;
                            }
                        }
                    }
                }
     
    Console.WriteLine(Convert.ToString(sch));

    Задача: Подсчитайте сколькими способами можно разменять 1 доллар монетами достоинством 1, 5, 10, 25 и 50 центов. Решать можно как угодно - в лоб перебором, или в общем случае (для произвольной суммы размера и набора монет).

    У кого какие варианты еще будут?)

    ipro, 14 Июня 2013

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