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

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    package t;import java.awt.*;import java.awt.event.*;import javax.swing.*;class M
    extends JFrame implements Runnable{int T=100,s,W=500,H=W,x=T,l=10,y,i,S,L;M(){
    setBounds(T,T,W,H);new Thread(this).start();}public void paint(Graphics g){super
    .paint(g);g.drawOval(x,y,l,l);g.drawRect(i,H-l,T,l);g.drawString("Sco "+s,l,T);}
    public void processKeyEvent(KeyEvent e){int k=e.getKeyCode();if(k==37)i-=l;if(k
    ==39)i+=l;super.processKeyEvent(e);}public static void main(String[]args){new M(
    ).setVisible(true);}public void run(){while(true){try{Thread.sleep(5);}catch
    (Exception e){}x+=S==0?1:-1;y+=L==0?1:-1;if(y>H-l){if(x>i&&x<i+T){s++;}else{S=0;
    L=0;x=T;y=0;}}if(x>W-l)S=1;if(x<l)S=0;if(y>H-l)L=1;if(y<l)L=0;repaint();}}}

    рабочий JSwing теннис :9 строчек

    Egor, 09 Марта 2011

    Комментарии (9)
  3. Java / Говнокод #5870

    +146

    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
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    public class Boruvka
    {
        // private representations
        /**
         * Array of edges, which form the MST of the graph
         */
        private Edge[] mst;
        /**
         * Edges not yet discarded and not yet in the MST
         */
        private Edge[] wannabes;
        /**
         * Each component's nearest neighbor with find component numbers as indices
         */
        private Edge[] neighbors;
        /**
         * Graph representation on which we are searching for MST
         */
        private Graph g;
        /**
         *
         */
        private UnionFind uf;
        // constructors and methods
        /**
         * constructor
         * @param G Graph
         */
        public Boruvka(Graph G) {
            this.g = G;
        }
        /**
         * Boruvka's algorithm
         *
         *
         * @return minimal spanning tree - edges that form it
         */
    
        public Edge[] BoruvkaMSTalg()
        {
            Edge hlpEdge = new Edge(g.getMaxWeight(), 0, 0);
            this.uf = new UnionFind(g.getCountVerteces());
            this.wannabes = new Edge[this.g.getCountEdges()];
    
             /**
             * Get all edges from the graph G to the array edges
             */
            for (int i=0; i < g.getCountEdges(); i++)
                this.wannabes[i] = g.getEdgeAt(i);
    
    
            this.neighbors = new Edge[this.g.getCountVerteces()];
            this.mst = new Edge[this.g.getCountVerteces()+1];
    
            /**
             * index, used to store those edges being saved for the next phase
             */
            int nxtPhase;
            int k=1;
    
            for (int i=this.g.getCountEdges(); i!=0; i=nxtPhase)
            {
                int l, m, n;
    
                for (int o=0; o<this.g.getCountVerteces(); o++)
                    this.neighbors[o] = hlpEdge;
    
                for (n=0, nxtPhase=0; n<i; n++) {
                    Edge e = this.wannabes[n];
                    l = this.uf.find(e.getSVIndex()-1);
                    m = this.uf.find(e.getDVIndex()-1);
    
                    if ( l==m )
                        continue;
                    if ( e.getWeight() < this.neighbors[l].getWeight() )
                        this.neighbors[l] = e;
                    if ( e.getWeight() < this.neighbors[m].getWeight() )
                        this.neighbors[m] = e;
    
                    this.wannabes[nxtPhase++] = e;
                }
    
                for (n=0; n<this.g.getCountVerteces(); n++)
                    if ( this.neighbors[n] != hlpEdge ) {
                        l = this.neighbors[n].getSVIndex();
                        m = this.neighbors[n].getDVIndex();
    
                        if ( !this.uf.find(l,m) ) {
                            this.uf.unite(l,m);
                            this.mst[k++] = this.neighbors[n];
                        }
                    }
            }
            System.out.println("MST by Boruvka successful");
            return this.mst;
        }
    }

    Кто шарит в графах, помогите разобраться с алгоритмом Борувки для нахождения минимального остова графа. Код писал по коду Седжевика подстраивая под свой граф, но видимо наделал кучу глупостей, потому что алгоритм никогда не выходит из цикла. Подскажите где я ошибок наделал и как бы их исправить, буду очень благодарен.

    NightCrime, 03 Марта 2011

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

    +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
    /*!
     * \brief is Printable Character
     * \param c Character
     * \return true/false
     */
    static int isPrintableChar(char c)
    {
    	if ((c < 'A' || c > 'Z') && (c < 'a' || c > 'z')
    	    && (c < '0' || c > '9') && (c != ' ') && (c != '\'')
    	    && (c != '(') && (c != ')') && (c != '+') && (c != ',')
    	    && (c != '-') && (c != '.') && (c != '/') && (c != ':')
    	    && (c != '=') && (c != '?') && (c != '_') && (c != '\\')
    	    && (c != '@') && (c != '"') && (c != '%') && (c != '$')
    	    && (c != '&') && (c != '#') && (c != ';')
    	    //&& (c != 'В_')
    	    && (c != '<') && (c != '>') && (c != ']') && (c != '{')
    	    && (c != '}') && (c != '*') && (c != '^')) {
    		return 0;
    	} else {
    		return 1;
    	}
    }

    из открытого проекта chan_sccp
    даже не знаю почему не использовать стандартный макрос isprint
    #define isprint(c) ((c) >= ' ' && (c) <= '~')

    ddkprog, 03 Марта 2011

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

    +135

    1. 1
    <SCRIPT LANGUAGE=JavaScript src="../../../../../vstavka.txt"></script>

    http://www.helloworld.ru/texts/comp/lang/php/spravscript/stranica13.html что статьи говно что сайт.

    Vasiliy, 02 Марта 2011

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

    +115

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    RepaymentEvent e = DatabaseHelper.GetString("event_type", pReader) == "RBLE"
    	                ? new BadLoanRepaymentEvent {Id = DatabaseHelper.GetInt32("rpe_id", pReader)}
    	                : (DatabaseHelper.GetString("event_type", pReader) == "RRLE"
    	                       ? new RescheduledLoanRepaymentEvent {Id = DatabaseHelper.GetInt32("rpe_id", pReader)}
    	                       :(DatabaseHelper.GetString("event_type", pReader).StartsWith("P") 
                                    ? new PendingRepaymentEvent (DatabaseHelper.GetString("event_type", pReader)) {Id = DatabaseHelper.GetInt32("rpe_id", pReader)}
                                    : new RepaymentEvent {Id = DatabaseHelper.GetInt32("rpe_id", pReader)}));

    Вот такую "элегантную" строчку нашел сегодня коллега в коде нашего проекта :)
    Создаем событие пойди разбери какое :)

    _Ru55_, 02 Марта 2011

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

    +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
    76. 76
    77. 77
    var s = setUpOmnitureVariable();
    s.pageName="LO-20110214-EE-VQP-203";
    s.server="www2.experts-exchange.com";
    s.channel="Web_Development/Web_Languages-Standards/PHP";
    s.pageType="";
    s.prop1=document.title;
    s.prop2="";
    s.prop3="";
    s.prop4="";
    s.prop5="";
    s.prop6="";
    s.prop7=""; // TODO THIS IS NO LONGER PROP 7, SHOULD BE BLOG AUTHOR
    s.prop8="";
    s.prop9="";
    s.prop10="";
    s.prop11="";
    s.prop12="";
    s.prop14="";
    s.prop15="50";
    s.prop16="";
    
    <...>
    
    s.prop27="";
    s.prop28="";
    
    <...>
    s.prop41="";
    s.prop42="";
    s.prop43="";
    s.prop44="";
    s.prop45="";
    s.prop46="";
    s.prop47="";
    s.prop48="";
    s.prop49="";
    s.prop50="";
    /* E-commerce Variables */
    s.campaign="";
    s.events="event4,event74";
    s.products="";
    s.state="";
    s.zip="";
    s.purchaseID="";
    s.eVar1=document.title;
    s.eVar2="";
    s.eVar3="AD #3 - Scroll, bullet, no steps";
    s.eVar4="";
    s.eVar5="";
    s.eVar6="Free Trial Guest";
    s.eVar7="";
    s.eVar8="";
    s.eVar9="";
    s.eVar10="";
    s.eVar14="";
    
    <...>
    s.eVar26="";
    s.eVar27="";
    s.eVar28="";
    s.eVar29="5AM";
    s.eVar30="Sunday";
    s.eVar31="77.243.99.37";
    s.eVar32="";
    s.eVar33="Web_Development/Web_Languages-Standards/PHP";
    s.eVar34="3";
    s.eVar35="20110214-EE-VQP-203-FREE-TRIAL";
    s.eVar36="Header AD";
    
    <...>
    
    s.eVar44="Accepted Solution";
    s.eVar45="EE_Level3 - 2";
    s.eVar46="";
    s.eVar47="";
    s.eVar48="";
    s.eVar49="rating9.6";

    Источник виден в коде. Неужели нельзя было массив сделать?! Или это такой странный вид обфускации?

    RaZeR, 27 Февраля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $this->db->Query("DELETE FROM `u_proposal`
    				WHERE `id` = '%d' AND `user` = '%d'", $item, $this->user->id);
    $this->db->Query("DELETE FROM `p_options`
    				LEFT JOIN `u_proposal` ON `p_options`.`portfolio` = `u_proposal`.`id`
    				WHERE `p_options`.`portfolio` = '%d' AND `p_options`.`type` = 'project' AND `u_proposal`.`user` = '%d'", $item, $this->user->id);

    3 часа еб**ся не мог понять почему записи из p_options не удаляются ))

    Sulik78, 25 Февраля 2011

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

    +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
    $zzz1="<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" class=\"tsa\">";
    $zzz3="</table>";
            if($str==1){
                    $str=0;
            }
            for($lk=$str;$lk<$str+10;$lk++){
            $kod=$pv;
            $kod=$this->sql("SELECT name_saita, url_saita, opis FROM $this->sait WHERE id='{$kod[$lk][id]}'");
            $kod=$this->mb($kod);
            if($kod[0]['name_saita']==NULL){
                    break;
            }
    $zzz2=$zzz2."<tr>
       <td align=\"center\" width=\"20%\">{$kod[0][nov_saita]}</td>
       <td width=\"80%\" class=\"op\">{$kod[0][opis]}</td>
       </tr>";
    }
    $zzz=$zzz1.$zzz2.$zzz3;

    Классика жанра

    Uchkuma, 21 Февраля 2011

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

    −858

    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
    INSERT INTO actpr (userid,orgid,grupid,grupa, sum,abo_sum,;
    	req,atbilde,kods,time,requestid,pakalpojum);
    	value(Grozs .userid, Grozs .orgid,Grozs .grupid,Grozs .grupa,Grozs.sum ,0, ;
    	Grozs .req,Grozs .atbilde, Grozs .kods,;
    	this.time,this.requestId ,Grozs .pakalpojum)
    
    replace ;
    	tarifs WITH  Grozs .tarifs ,;
    	aid with Grozs .aid,;
    	param with Grozs .param,;
    	ip with this.ip,;
    	atlikum WITH konti.extra_sum - Grozs.sum ,;
    	abo_atlik WITH konti.abo_sum, ;
    	old_atlik WITH konti.old_sum ,;
    	sessionid  WITH this.sessionid,;
    	veids with Grozs .veids,;
    	stan_cena WITH Grozs .stan_cena,;
    	pvn WITH Grozs .pvn,;
    	next_sum WITH 0,;
    	next_atlik WITH konti.next_sum;
    	 IN  actpr

    Написано на FoxPro (!)
    Незнаю даже что написать...

    lurseg, 18 Февраля 2011

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

    +159

    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
    <?
    function strip_html_tags( $text )
    {
            $text = preg_replace(
                    array(
                            // Remove invisible content
                            '@<noindex[^>]*?>.*?</noindex>@siu',
                            '@<head[^>]*?>.*?</head>@siu',
                            '@<style[^>]*?>.*?</style>@siu',
                            '@<script[^>]*?.*?</script>@siu',
                            '@<object[^>]*?.*?</object>@siu',
                            '@<embed[^>]*?.*?</embed>@siu',
                            '@<applet[^>]*?.*?</applet>@siu',
                            '@<noframes[^>]*?.*?</noframes>@siu',
                            '@<noscript[^>]*?.*?</noscript>@siu',
                            '@<noembed[^>]*?.*?</noembed>@siu',
     
                            // Add line breaks before & after blocks
                            '@<((br)|(hr))@iu',
                            '@</?((address)|(blockquote)|(center)|(del))@iu',
                            '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
                            '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
                            '@</?((table)|(th)|(td)|(caption))@iu',
                            '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
                            '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
                            '@</?((frameset)|(frame)|(iframe))@iu',
                    ),
                    array(
                            ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
                            "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
                            "\n\$0", "\n\$0",
                    ),
                    $text );
     
            // Remove all remaining tags and comments and return.
            return strip_tags( $text );
    }

    qbasic, 13 Февраля 2011

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