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

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // проверка при дополнительных надстройках
    		if (
    				$this->struct[$num][$v]['changes'] &&		 // если значение было изменено
    				array_key_exists($v, $this->values) &&		// и существуют альтернативно назначенные тип поля (select или radio)
    				isset( $this->values[$v]['vals'] ) &&			 // и также существуют для них значения для значений...
    				!isset( $this->values[$v]['vals'][ $this->struct[$num][$v]['value'] ] )		// НО, пришедшее значение НЕ СООТВЕТСТВУЕТ
    			) {
    
    					$this->struct[$num][$v]['error'] = 'Неправильно указано значение';
    		}

    Ёжкин кот. Вот чего он хотел этим сказать? И что мне теперь с этим делать теперь?

    DoctorHouse, 19 Апреля 2013

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var currentTime = (new Date()).getTime();
                var diff = currentTime - this.startTime;
    
                var min = Math.floor(Math.floor(diff/1000)/60);
                if (min < 10)
                    min = "0"+min;
                var sec = Math.floor(diff/1000)%60;
                if (sec < 10)
                    sec = "0"+sec; 
    
                this.timeLabel.setString("TIME " + min + ":" + sec);

    Классика практически, моего творения. Как это можно сделать по-человечески на JS? Всякие jQuary не катят, ибо js встраиваемый.

    krypt, 12 Марта 2013

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

    +21

    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
    #define SWITCH(str)  switch(str_hash_for_switch(str))
    #define CASE(str)    static_assert(str_is_correct(str) && (str_len(str) <= MAX_LEN),\
    "CASE string contains wrong characters, or its length is greater than 9");\
    case str_hash(str, str_len(str))
    #define DEFAULT  default
    
    typedef unsigned char uchar;
        typedef unsigned long long ullong;
    
        const uchar MAX_LEN = 9;
        const ullong N_HASH = static_cast<ullong>(-1);
    
        constexpr ullong raise_128_to(const uchar power)
        {
            return 1ULL << 7 * power;
        }
    
        constexpr bool str_is_correct(const char* const str)
        {
            return (static_cast<signed char>(*str) > 0) ? str_is_correct(str + 1) : (*str ? false : true);
        }
    
        constexpr uchar str_len(const char* const str)
        {
            return *str ? (1 + str_len(str + 1)) : 0;
        }
    
        constexpr ullong str_hash(const char* const str, const uchar current_len)
        {
            return *str ? (raise_128_to(current_len - 1) * static_cast<uchar>(*str) + str_hash(str + 1, current_len - 1)) : 0;
        }
    
        inline ullong str_hash_for_switch(const char* const str)
        {
            return (str_is_correct(str) && (str_len(str) <= MAX_LEN)) ? str_hash(str, str_len(str)) : N_HASH;
        }
    
        inline ullong str_hash_for_switch(const std::string& str)
        {
            return (str_is_correct(str.c_str()) && (str.length() <= MAX_LEN)) ? str_hash(str.c_str(), str.length()) : N_HASH;
        }

    Запостил из-за ошибки на некоторых платформах и компиляторах.

    LispGovno, 23 Января 2013

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

    +11

    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
    int a[4]={}; 
    void f(void){} 
    void functionWithArrayParam(int (&a)[4])
    {
            a[3]=4;
    } 
    void functionWithFunctionParam(void (*f)(void))
    {
            f();
    }; 
    int (&functionReturnArray(void))[4]
    {
            return a;
    } 
    void (*arrayOfFunction[4])(void)={f,f,f,f}; 
    void (*functionReturnFunction(void))(void)
    {
            return f;
    }; 
    int main() {
            functionReturnArray()[3]=4;
            functionWithArrayParam(a);
            arrayOfFunction[3]();
            functionWithFunctionParam(f);
            functionReturnFunction()();

    Батхертный путь C++
    Просветление — состояние полной осознанности (выход за пределы дуального ума)... Это скачкообразное изменение восприятия окружающего мира, знаменующее собой переход к отличной от общепринятой форме мышления. Одновременно является началом открытия чакры «третьего глаза» и трамплином для глубоких изменений сознания. Как витальная форма, тяжело поддается ментальному описанию.
    Батхертный путь C++ - путь, которым идут просветленные последователи Дао и Дзен С++, способные писать всё в одном выражении.

    Доступность этого пути в C++ усиливает возможности C++ по созданию одного и того же кода самыми разнообразными и очень красивыми способами.

    Следуя этому пути можно писать такой крутой код, что все товарищи из команды, работающие над кодом, над которым вы работаете вместе с ними, будут завидовать вам и бить вас за это при каждой встрече с разворота.

    Этот принцип батхертного пути C++, лежащий в основе C++, помогает потратить дополнительные 1000% времени на разработку и поддержку C++ программ и получить за это дополнительные деньги. Поэтому C++ крайне выгоден!

    Взглянем на малую часть основ этого пути при объявлении массивов и функций в C++:
    Док-ва истинности пути к просветлению:
    http://ideone.com/FCW4f

    Итак, используя эти простые принципы нужно написать массив функций, возвращающих массив функций с параметром функция, принимающая массив функций, возвращающих функцию void (void)? typedef запрещён.

    Останется только один! Истинный просветленный носитель разума и света!

    Если вы знаете другие основы батхертного пути C++, то искренне прошу поделиться с нами вашими открытыми чакрами.

    LispGovno, 06 Ноября 2012

    Комментарии (37)
  6. SQL / Говнокод #11888

    −119

    1. 1
    select count(*) from jxlspp_prices  where 0!=0  or catid = 2	}

    А вот так его!

    virtual_cia, 07 Октября 2012

    Комментарии (37)
  7. Си / Говнокод #11847

    +141

    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
    #include <stdio.h>
    
    void swap(long *a,long *b){
      *a=(*a<<sizeof(*a)*4);
      *a+=*b;
      *b=*a ^ *b;
      *b=(*b>>sizeof(*a)*4);
      *a=(*a<<sizeof(*a)*4);
      *a=(*a>>sizeof(*a)*4);
    }
    
    int main(){
     long a=22807;
     long b=1012;
       printf("a=%ld b=%ld\n",a,b);
     swap(&a,&b);
      printf("a=%ld b=%ld\n",a,b);
    }

    Swap variables without third variable

    AliceGoth, 29 Сентября 2012

    Комментарии (37)
  8. Си / Говнокод #11776

    +114

    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
    #include <stdio.h>
    /* Программа выводит ASCII-коды введённых символов */
    int main()
    {
        int a[255];
        int i;
        for (i = 0; i < 256; i++) {
            a[i] = i;
        }
        int c;
        while ((c = getchar()) != EOF) {
            if (c != '\n')
                printf("%d\n", a[c]);
        }
        return 0;
    }

    vistefan, 15 Сентября 2012

    Комментарии (37)
  9. PHP / Говнокод #11728

    +54

    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
    function viewMap ($battleid, $userplace, $oppo) {
        $map = Base("sel", "*", "battlemap", $battleid, 'battleid');
        $x=0;
        $stringcount=1;
        $string2=0;
        while ((isset($map[$x]['battlemap_id']))) {
            if((fmod($stringcount,15)==1)&&(fmod($stringcount,2)==1)) {
                $content.='<div style="position:relative;float:left; border:none; width:750px;">';//начало нечётной строки
                $string2++;
            }
            if((fmod($stringcount,15)==1)&&(fmod($stringcount,2)==0)) {
                $content.='<div style="position:relative;float:left; border:none;margin-left:25px; width:750px;margin-top:0px;">';//начало чётной строки
                $string2++;
            }
            $content.='<div style="position:relative;float:left;width:50px;height:50px;border:none;">';
    
            if (($map[$x]['battlemap_patterntype']==0)&&($oppo['user_battlemap']!=$map[$x]['battlemap_cellnumber'])&&($userplace!= $map[$x]['battlemap_cellnumber'])) {/*а теперь брутальная анальная дефлорация ослиц от графа(не пытайтесь повторить)*/
                $xuy=$x+1;
                if((fmod($string2,2)==0)and(!isset($shotflag)))//ежели мы не стреляем и пляшем в чётной строке, а перс в нечётной
                {
                    if(($x==($userplace-17))or($x==($userplace-16))or($x==($userplace+14))or($x==($userplace+13))) {
                        $content .='<a href="javascript:gogo('.$xuy.')">';
                    }
                }
                if((fmod($string2,2)==1)and(!isset($shotflag)))//ежели мы не стреляем и пляшем в нечётной строке, а перс в чётной
                {
                    if(($x==($userplace-16))or($x==($userplace-15))or($x==($userplace+15))or($x==($userplace+14))) {
                        $content .='<a href="javascript:gogo('.$xuy.')">';
                    }
                }
                if(($map[$x]['battlemap_cellnumber']==($userplace-1))or($map[$x]['battlemap_cellnumber']==($userplace+1))) {
                    $content .='<a href="javascript:gogo('.$xuy.')">';
                }
                $content .='<div style="position:relative;float:left;background-image:url(/img/patterns/'.$map[$x]['battlemap_patterntype'].$map[$x]['battlemap_patternstr'].'.png);height: 50px; width: 50px;"><br/> '.$map[$x]['battlemap_cellnumber'].'</div>';
                /*всё та же дефлорация*/
                if(($map[$x]['battlemap_cellnumber']==($userplace-1))or($map[$x]['battlemap_cellnumber']==($userplace+1))) {
                    $content .='</a>';
                }
                if(fmod($string2,2)==0)//ежели господа пляшем в чётной строке, а перс в нечётной
                {
                    if(($x==($userplace-17))or($x==($userplace-16))or($x==($userplace+14))or($x==($userplace+13))) {
                        $content .='</a>';
                    }
                }
                if(fmod($string2,2)==1)//ежели господа пляшем в нечётной строке, а перс в чётной
                {
                    if(($x==($userplace-16))or($x==($userplace-15))or($x==($userplace+15))or($x==($userplace+14))) {
                        $content .='</a>';
                    }
                }
            }
            if($userplace == $map[$x]['battlemap_cellnumber']) {
                $content .='<a target="_top" href="spell.php?login='.$oppo['user_login'].'" target="_parent" title="Заклинания\Способности" rel="gb_page_center[660, 180]"><div style="position:relative;float:left;background-image:url(/img/patterns/hero.png);height: 50px; width: 50px;"><br/> hero<br/>'.$stringcount2.'</div></a>';
            }
    
            if($oppo['user_battlemap'] ==$map[$x]['battlemap_cellnumber']) {
                $content .='<a href="spell.php?bgo_id='.$map[$x]['battlemap_cellnumber'].'&action=cast">Скастовать</a><br/>
    <a href="index.php?bgo_id='.$map[$x]['battlemap_cellnumber'].'&action=shoot">Выстрелить</a><br/>
        <a target="_top" href="info.php?login='.$oppo['user_login'].'" target="_parent" title="Информация о пользователе" rel="gb_page_center[460, 480]">
        <div style="position:relative;float:left;background-image:url(/img/patterns/hero.png);height: 50px; width: 50px;"><br/> oppo</div></a>';
            }
    
            $content .= '</div>';//конец ячейки
            if(fmod($stringcount,15)==0) {
                $content.='</div>';//конец строки
            }
            $x++;
            $stringcount++;
        }
        echo '<div style="margin-top:80px; margin-left:65px; owerflow:hidden;position:relative;width:777px; height:500px; float:left; border:none; background-image:url(http://steambox.ru/img/battlebackgrounds/'.$map[0]['battlemap_landtype'].'.png);background-repeat:no-repeat;">'
                .$content.
                '</div>'
        ;
    }

    Кусок браузерки. Весь остальной код в том же духе (http://govnokod.ru/9458, http://govnokod.ru/3103, http://govnokod.ru/3101 ).
    Около 110000 строк отборного говнокода. И как то умудрялось все работать. Недолго правда)))

    WinnerWolf, 08 Сентября 2012

    Комментарии (37)
  10. Ruby / Говнокод #11601

    −379

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    if city.present?
      if city.city.present?
        city = city.city
      else
        city = "NIL"
      end
    else
      city = "NIL"
    end

    Нечто

    bulka, 16 Августа 2012

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

    −121

    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
    Функция ЧерезНоль(Значность) Экспорт
    	Оборот=10;
    	Если Значность=2 Тогда
    		Оборот=100;
    	ИначеЕсли Значность=3 Тогда
    		Оборот=1000
    	ИначеЕсли Значность=4 Тогда
    		Оборот=10000
    	ИначеЕсли Значность=5 Тогда
    		Оборот=100000
    	ИначеЕсли Значность=6 Тогда
    		Оборот=1000000
    	ИначеЕсли Значность=7 Тогда
    		Оборот=10000000
    	ИначеЕсли Значность=8 Тогда
    		Оборот=100000000
    	ИначеЕсли Значность=9 Тогда
    		Оборот=1000000000
    	ИначеЕсли Значность=10 Тогда
    		Оборот=10000000000
    	ИначеЕсли Значность=11 Тогда
    		Оборот=100000000000
    	ИначеЕсли Значность=12 Тогда
    		Оборот=1000000000000
    	ИначеЕсли Значность=13 Тогда
    		Оборот=10000000000000
    	ИначеЕсли Значность=14 Тогда
    		Оборот=100000000000000
    	ИначеЕсли Значность=15 Тогда
    		Оборот=1000000000000000
    	КонецЕсли;	
     Возврат Оборот		
    КонецФункции

    суровое возведение в степень)

    dmurdoc, 13 Июня 2012

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