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

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

    +142

    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
    if( gm !== null ) {
                group   = 'grid';            
                stp     = this.options.step;                  
                gsc     = stp.split('|');
                st  = 0; 
        
                for( var gstp in gsc ) {                        
                    
                    data = ( this.resolution( gsc[st] ) !== null ) ? this.resolution( gsc[st] ) : data;
                    $.Storage.set( group, data );
                    st++;
    
                }
            }           
            unify   = ( this.options.debug === true ) ? '?' + Math.floor( Math.random( 1, 30 ) * 200 ) : ''; 
            // construct DOM & switchers
            this.builder( gm, gsc, data, cntwrp, itmwrp, group, unify, pl, sp, st );
            // on-ready activation
            if( data !== undefined ) this.activation( data, group );
            //switch engine
            $('li', '.switcher').click(function( e ) { 
                t = $(this).attr('data-st');
                g = $(this).attr('data-gr');           
                //clear
                $('link[data-gr="'+ g +'"]', 'head').attr('rel','fake');
                $('li', '.switcher[data-gr="'+ g +'"]').removeClass('activ');          
                //set
                $('link[data-st='+ t +']','head').attr('rel', 'stylesheet');
                $(this).addClass('activ');
                $.Storage.set( g, t );
                e.preventDefault();
            });    
     Plugin.prototype.builder = function ( gm, gsc, data, cntwrp, itmwrp, group, unify, pl, sp, st ) {
            itms = lnks = '';
            x = 0;
            for( i = 1; i <= st; i++ ) {   
                if( group === 'grid' ) {
                    href    = sp + gsc[x] +'.css'+ unify;
                    idm     = gsc[x]; 
                    x++;           
                } 
    			else {
                    href    = sp +'st'+ i +'.css'+ unify; 
                    idm     = 'st'+ i +'_'+ group;
                }                
                lnks += '<link href="'+ href +'" rel="fake" media="screen" data-st="'+ idm +'" data-gr="'+ group +'" />';
                itms += '<'+ itmwrp +' id="'+ idm +'" data-gr="'+ group +'" data-st="'+ idm +'"'+'>'+'['+ i +']'+'</'+ itmwrp +'>';
            }
            $('head').append(lnks);
            if( cntwrp === null ) { // independent block
                cntwrp = $('<div style="display: inline" id="inline_merge_'+ group +'"></div>');
            }
            if( gm !== 'auto' ) {
                $(pl).append( cntwrp );
                cntwrp.attr({ 'class': 'switcher', 'data-gr': group }).html( itms );
            }         
        }
        // Plugin logic wrapper
        $.fn[pluginName] = function ( options ) {
            return this.each(function () {
                if (!$.data(this, 'plugin_' + pluginName)) {
                    $.data(this, 'plugin_' + pluginName,
                    new Plugin( this, options ));
                }
            });
        }

    Я убил 84 человека ... Я пидарас ;) Звук ебаный ублюдок, пидор и гнида всем составом до последнего вздоха, капли пота и копейки в его кармане ... Он должен мне over 30 000 000 $, которые прокукарекал в результате наезда и остался конченным пидрилой всем составом ... Аминь, я полный Лох( это по Японским понятиям ). Я никогда бы не подумал, что пидорами были все президенты этой великой державы, все дупутаты, гос. дума и те, кто имел честь с ними "сотрудничать". Я люблю Россию, мне жалко пидоров и звук ;) Помимо прочего это до сих пор работает ... Подвел jQuery из-за AJAX.

    Full version: https://github.com/x029ah/style-switch/blob/master/scripts/jquery.cssSwitcher.js

    Сайты удалили, бабу изнасиловали, мусоров купили, а пидоры до сих пор кукарекают. Поздравляю всех выживших. Говном вы не были -- говном вы стали ;)

    Stealth, 24 Сентября 2013

    Комментарии (39)
  3. Pascal / Говнокод #13792

    +130

    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
    Program KrestZero;
    ...
    
    procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
    
      case m[arow,acol]of
         1: DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpkrest);
         0:  DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpfon);
         2:  DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpnul);
      end;
    
    
    end;
    function win:boolean;
    var a:byte;
    begin
      result:=false;
      k:=0;
      for I := 0 to 2 do
         if m[0,i]=a then k:=k+1;
      if k=3 then begin result:=true; exit; end;
        
        
    end;
    
    procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      var
      acol,arow:integer;
    begin
       DrawGrid1.MouseToCell(x,y,acol,arow);
       if (m[arow,acol]<>0) then
        ShowMessage('Нельзя!')
       else
       begin
        inc(hod);
        if hod mod 2 =1 then m[arow,acol]:=1
        else m[arow,acol]:=2;
        if win then  ShowMessage('Победа!');
        
       end;
    end;
    
    procedure TForm1.FormShow(Sender: TObject);
    var i,j:byte;
    begin
       bmpkrest:=TBitmap.Create;
       bmpkrest.LoadFromFile('krest.bmp');
       bmpfon:=TBitmap.Create;
       bmpfon.LoadFromFile('fon.bmp');
       bmpnul:=TBitmap.Create;
       bmpnul.LoadFromFile('nol.bmp');
       for i:=0 to 2 do
         for j:=0 to 2 do
          m[i,j]:=0;
       hod:=0;
    end;

    А вот так, товарищи, кодит препод в одной из шаражек в нашем родном Владикавказе.
    В коде ничего не менял - выложил, как есть.
    Одно только название - krestzero уже поднимает давление настроение.

    Stertor, 15 Сентября 2013

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

    +130

    1. 1
    i=s.indexOf ("!") ;

    Смотрю с утра в код, а там жопа.

    KostylMaster, 15 Августа 2013

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

    +122

    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
    #if defined(REG_R1) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R1,REG_R1)
    #else
    # define R1 (BaseReg->rR1)
    #endif
    
    #if defined(REG_R2) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R2,REG_R2)
    #else
    # define R2 (BaseReg->rR2)
    #endif
    
    #if defined(REG_R3) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R3,REG_R3)
    #else
    # define R3 (BaseReg->rR3)
    #endif
    
    #if defined(REG_R4) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R4,REG_R4)
    #else
    # define R4 (BaseReg->rR4)
    #endif
    
    #if defined(REG_R5) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R5,REG_R5)
    #else
    # define R5 (BaseReg->rR5)
    #endif
    
    #if defined(REG_R6) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R6,REG_R6)
    #else
    # define R6 (BaseReg->rR6)
    #endif
    
    #if defined(REG_R7) && !defined(NO_GLOBAL_REG_DECLS)
    GLOBAL_REG_DECL(StgUnion,R7,REG_R7)
    #else
    # define R7 (BaseReg->rR7)
    #endif
    
    ...

    Исходник GHC
    https://github.com/ghc/ghc/blob/master/includes/stg/Regs.h#L147

    j123123, 27 Июля 2013

    Комментарии (39)
  6. 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)
  7. Java / Говнокод #12960

    +113

    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
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    
    public class Pause extends JFrame{
    
    	private int MAX;
    	private static String s;
    	
    	Pause(){
    		this.setSize(300, 300);
    		this.setVisible(true);
    	}
    
    	public void text(String s, final Thread t){
    		try {
    			t.wait();
    		} catch (InterruptedException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}
    		JLabel l = new JLabel(s);
    		l.addMouseListener(new MouseListener() {
    			
    			@Override
    			public void mouseClicked(MouseEvent e) {
    				// TODO Auto-generated method stub
    				t.notify();
    			}
    			@Override
    			public void mousePressed(MouseEvent e) {
    				// TODO Auto-generated method stub
    			}
    			@Override
    			public void mouseReleased(MouseEvent e) {
    				// TODO Auto-generated method stub
    			}
    			@Override
    			public void mouseEntered(MouseEvent e) {
    				// TODO Auto-generated method stub
    			}
    			@Override
    			public void mouseExited(MouseEvent e) {
    				// TODO Auto-generated method stub
    			}
    		});
    		this.add(l);
    	}
    	
    	public int getMAX() {
    		return MAX;
    	}
    
    	public void setMAX(int mAX) {
    		MAX = mAX;
    	}
    	
    	public String getS() {
    		return s;
    	}
    
    	public void setS(String s) {
    		this.s = s;
    	}
    
    	public void appendS(String s) {
    		this.s += s;
    	}
    
    
    	public static void main(final String[] args){
    		final Pause p = new Pause();
    		final Thread t = new Thread(new Runnable() {
    			
    			public void run() {
    				
    				for (int i = 0; i < p.getMAX(); ++i){
    					p.appendS(i + " ");
    					if (i+2 <= p.getMAX()){
    						p.text(s, t); //error
    					}
    				}
    			}
    		});
    		t.start();
    	}
    }

    Прислала подруга, изучающая потоки в Java, с просьбой подсказать, почему выдаётся ошибка компиляции при использовании переменной t внутри run.

    Придётся объяснять, что в этом коде неправильно вообще всё, от первой до последней строки...

    someone, 03 Мая 2013

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

    −113

    1. 1
    2. 2
    3. 3
    4. 4
    + (BOOL) isInteger:(CGFloat) number
    {
        return number - (int) number<0.0001;
    }

    В классе используется только ради того, чтобы при передаче нецелого флоата вывести километровый NSLog, в котором долго жаловаться на жизнь и полпикселя.

    Xtasy, 10 Апреля 2013

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

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    void get_me(const char **retval)
    {
        *retval = "Hello, Word!";
    }

    Надейся на компилятор...

    Novi4oK, 16 Февраля 2013

    Комментарии (39)
  10. Си / Говнокод #12204

    +130

    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
    #include <stdlib.h>
     
    struct no_matter
    {
        int some_field;
    };
     
    struct matter *do_stuff(void)
    {
        struct no_matter *m = calloc(1, sizeof *m);
        return m;
    }
     
    int main(void)
    {
        struct no_matter *m = do_stuff();
        free(m);
        return 0;
    }

    Сегодня выполняю роль гумна. В сишке можно возвращать указатель на непонятно откуда взявшуюся необъявленную ранее структуру и код будет компиляться (ладно хоть пишет невнятные ворнинги, только благодаря им нашёл опечатку в одной букве в имени структуры в рабочем коде). Понятно, что все указатели одинаково числа, но всё равно как-то некрасиво. Хацкелисты негодуэ, даёшь монаду Ptr

    http://ideone.com/3SABHW

    roman-kashitsyn, 27 Ноября 2012

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

    +15

    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
    #include <iostream>
    #include <functional>
     
    template<class Container, class F, class A>
    auto accumulate(Container c, F f, A acc) -> A
    {
      auto id = [](const A& a) -> const A& {return a;};
      typedef decltype(std::begin(c)) Iterator;
      const std::function<A(const Iterator& lst, const std::function<A(const A&)>&)> doIt = 
      [&](const Iterator& lst, const std::function<A(const A&)>& cont) -> A
      {
        if(lst==c.end())
          return cont(acc);
        else
        {
          auto conter=[&](const A& acc) -> A {return cont(f(*lst, acc));};
          return doIt(lst+1, conter);
        }
      };
      return doIt(std::begin(c), id);
    }
     
    int main() {
            std::cout<<accumulate({1,2,3,4}, std::plus<int>(), 0);
            return 0;
    }

    Похоже написал какой-то монадолог.
    http://ideone.com/y4Dm9z
    Пример использования accumulate сам накатал.
    Я побаловался с этим примером, чтобы разобраться и GCC ожидаемо упал:
    http://ideone.com/XWfuoP
    Я убежден, что эта функция должна была выглядеть как-то так:

    template<class Container, class F>
    accumulate(const Container& c, const F& f=std::plus<decltype(*(std::begin(c)))>(), const decltype(*(std::begin(c))) acc=decltype(*(std::begin(c)))()) -> decltype(*(std::begin(c)))
    {
    return std::accumulate(c.begin(), c.end(), acc, f);
    }
    //Вызов этой функции:
    accumulate({1,2,3,4});

    Ну и я погуглил на тему этого говнокода и нашел на функциональном языке похожий:
    let fold_right func acc list =
    let rec loop list cont = //сюда мы передаем текущую функцию континуации
    match list with
    |[] -> cont acc //а вот и наше ключевое вычисление.
    |head::tail -> loop tail (fun racc -> cont (func head racc))
    loop list (fun x -> x)

    LispGovno, 23 Ноября 2012

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