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

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

    +73

    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
    public static int getWordCount(String getInput, int e){
        int numberOfWords = 0;
        char l1 = 0;
        char l2 = 0;
        StringBuilder convertInput = new StringBuilder(getInput);
        System.out.println(convertInput);
        for (int i = 0, i1 = 1; i < getInput.length();i++, i1++){
            l2 = convertInput.charAt(i);
            if (l2 == ' '){
                numberOfWords += 1;
                l1 = convertInput.charAt(i1);
            }
            if (i == getInput.length() - 1){
                numberOfWords += 1;
            }
            if (l2 == ' ' && l1 == ' '){
                numberOfWords -= 1;
            }
        }
        return numberOfWords;
     } // end of getWordCount method

    http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html да и просто регексп на крайняк как видно запрещены религией.

    kostoprav, 13 Мая 2014

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function test(x) {
        function undefined(x) { throw "Missing in action"; }
        switch (x) {
        case 1: console.log("X reporting for duty!"); break;
        case undefined(x): break;
        }
    }

    Переделка длинного и скучного кода, но смысл остался.

    wvxvw, 13 Мая 2014

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

    +75

    1. 1
    return new Integer(((Integer)var).intValue()+1);

    Autoboxing? Не, не слышал...

    kostoprav, 08 Мая 2014

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

    +17

    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
    cKeyCfg::types_t cConfiguration::SearchInType(string type)
    {
        CTint i = 0;
        const CTbyte * types[] = { "S", "D" };
    
        for(i = 0; i < sizeof(types)/sizeof(types[0]); i++) {
          if ( strcmp(type.c_str(),types[i]) == 0) {
            switch (i) {
            case 0: // Is string
              return cKeyCfg::stringa;
            case 1: // Is decimal
              return cKeyCfg::decimale;
            default: //Default value VT_BSTR
              return cKeyCfg::unknow;
            }
          }
        }
        return cKeyCfg::unknow;
    }

    сделано на родине Fiat'а.

    Dummy00001, 02 Мая 2014

    Комментарии (6)
  6. Си / Говнокод #15871

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    try{
        tempPage1Int = tempPage1.ToInt();
      }catch(Exception &E){
        tempPage1Int = 0;
        goto NEXTFUCKER;
      }
      NEXTFUCKER:

    Дописываю из-под стола.

    dm-ua, 30 Апреля 2014

    Комментарии (6)
  7. Java / Говнокод #15810

    +70

    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
    {
    	final int p = page;
    	final boolean current = p == 1;
    	this.pagercell(writer, current, 1, "<<");
    }
    for (int p = page - this.size; p < page; p++) {
    	if (p >= 1) {
    		final boolean current = p == 1;
    		this.pagercell(writer, current, p);
    	}
    }
    {
    	final int p = page;
    	final boolean current = (p - this.size) < 1;
    	this.pagercell(writer, current, p - this.size, "<");
    }
    {
    	final int p = page;
    	final boolean current = p == page;
    	this.pagercell(writer, current, p);
    }
    {
    	final int p = page;
    	final boolean current = (p + this.size) > pages;
    	this.pagercell(writer, current, p + this.size, ">");
    }
    for (int p = page + 1; p <= (page + this.size); p++) {
    	if (p <= pages) {
    		final boolean current = p == pages;
    		this.pagercell(writer, current, p);
    	}
    }
    {
    	final int p = page;
    	final boolean current = p == pages;
    	this.pagercell(writer, current, pages, ">>");
    }

    веселый вывод постраничной навигации (кусок метода)

    Lure Of Chaos, 22 Апреля 2014

    Комментарии (6)
  8. Pascal / Говнокод #15803

    +81

    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
    procedure SetCurrentThreadName(const AName: String);
    type
      TThreadNameInfo = record
          RecType: LongWord;
          Name: PChar;
          ThreadID: LongWord;
          Flags: LongWord;
        end;
    var
      LThreadNameInfo: TThreadNameInfo;
    begin
      with LThreadNameInfo do
      begin
        RecType := $1000;
        Name := PChar(AName);
        ThreadID := $FFFFFFFF; // -1 - текущий поток; также сюда можно вставить ID другого потока
        Flags := 0;
      end;
      try
        RaiseException($406D1388, 0, SizeOf(LThreadNameInfo) div SizeOf(LongWord),
          PDWord(@LThreadNameInfo));
      except
      end;
    end;

    Попытка создать именованный поток.
    Не хак. (http://msdn.microsoft.com/en-us/library/xcb2z8hs%28VS.71%29.aspx)

    brutushafens, 20 Апреля 2014

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Lol1 = "1", Lol2 = "2"
    set lols = array
    lols.append Lol1
    lols.append Lol2
    set result = string
    result = lols.foldl1 (++)
    Put result

    Название языка ещё не придумал :)

    Mobac, 20 Апреля 2014

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

    +125

    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
    % -*- mode: Prolog -*-
    
    :- module e9.
    :- interface.
    :- import_module io.
    :- pred main(io::di, io::uo) is cc_multi.
    
    :- implementation.
    :- import_module int, float, list, string, math.
    
    :- func root(int) = int.
    root(Number) = floor_to_int(sqrt(float(Number))).
    
    :- func squares_under(int, int) = list(int).
    squares_under(From, To) = Result:-
        (Square = From * From,
         (if Square =< To
         then Result = [Square | squares_under(From + 1, To)]
         else Result = [])).
    
    :- pred list_to_disjunction(list(int)::in, int::out) is nondet.
    list_to_disjunction([Head | Tail], Result):-
        (Result = Head; list_to_disjunction(Tail, Result)).
    
    :- pred summands_of(list(int)::in, int::in, { int, int, int }::out) is cc_nondet.
    summands_of(Squares, Sum, { A, B, C }):-
        list_to_disjunction(Squares, As),
        list_to_disjunction(Squares, Bs),
        list_to_disjunction(Squares, Cs),
        As < Bs, Bs < Cs,
        As + Bs = Cs,
        root(As) + root(Bs) + root(Cs) = Sum,
        A = As, B = Bs, C = Cs.
    
    main(!IO):-
        Sum = 1000,
        Squares = squares_under(1, Sum * Sum),
        (if summands_of(Squares, Sum, { A, B, C })
        then io.format("Answer: A = %d, B = %d, C = %d\n", [i(A), i(B), i(C)], !IO)
        else io.format("No solutions\n", [], !IO)).

    Давно как-то мы не вспоминали Прожект Ойлер.
    Язык: Меркури,
    Эффективность решения: наверное, полный пиздец.

    Для тех, кому нечем заняться: http://joyreactor.com/post/954661

    wvxvw, 12 Апреля 2014

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

    +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
    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
    <script>
    // Browser Window Size and Position
    // copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
    // you may copy these functions but please keep the copyright notice as well
    function pageWidth()
    { return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null; }
    function pageHeight()
    { return window.innerHeight != null ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null ? document.body.clientHeight : null; }
    function posLeft()
    { return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0; }
    function posTop()
    { return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0; }
    function posRight()
    { return posLeft() + pageWidth(); }
    function posBottom()
    { return posTop() + pageHeight(); }
    
    function SetWindowSize(s, h, w) {
        var wid = pageWidth();
        var hei = pageHeight();
        var n_wid = Math.round(wid * w);
        var n_hei = Math.round(hei * h);
        s.SetWidth(n_wid);
        s.SetHeight(n_hei);
    }
    function SetWindowW(s, w) {
        var wid = pageWidth();
        var n_wid = Math.round(wid * w);
        s.SetWidth(n_wid);
    }
    </script>
    <html>
    ...
                <td>
                    <dx:ASPxButton ID="AddCopyTemplate" runat="server" Text="Создать копию" 
                        AutoPostBack="False" 
                        CssFilePath="~/App_Themes/Office2010Black/{0}/styles.css" 
                        CssPostfix="Office2010Black" 
                        SpriteCssFilePath="~/App_Themes/Office2010Black/{0}/sprite.css" 
                        Wrap="True" >
                        <ClientSideEvents Click="function(s, e) {
    	AddCopyTemplate();
    }" Init="function(s, e) {
    	Get_Sizes_wid(s,1075);
    }" />
                    </dx:ASPxButton>
                </td>
                <td>
                    <dx:ASPxButton ID="AddTemplate" runat="server" Text="Создать" 
                        AutoPostBack="False" 
                        CssFilePath="~/App_Themes/Office2010Black/{0}/styles.css" 
                        CssPostfix="Office2010Black" 
                        SpriteCssFilePath="~/App_Themes/Office2010Black/{0}/sprite.css">
                        <ClientSideEvents Click="function(s, e) {
    	AddTemplateClick();
    }" Init="function(s, e) {
    	Get_Sizes_wid(s,1075);
    }" />
                    </dx:ASPxButton>
                </td>
    ...
    </html>

    я даже не знаю, в какой раздел это постить, но пусть будет тут.
    товарищ, пользовался горячелюбимыми контролами от DevExpress, которые работают херпойми как, но сейчас не об этом.
    в секции ClientSideEvents есть скрипты, которые выполняются на клиенте при старте, так вот он и поставил туда вызов функции, которая выставляет размеры для элементов.
    это одностраничное приложение на 1100 строк только одной размеки, где используется огромное количество различных элементов, панели, гриды, гнопки, модальные окна, и много всего прочего... и ни у одного из них не заданы вообще никакие размеры, все работает на этих JS функциях.
    эти волшебные цифры, которые передаются в функцию рассчитаны на его монитор, и как только они отрываются на другом мониторе с другим разрешением, то эти две кнопки занимают примерно 80% экрана.
    а самое главное, что модальные окна занимают примерно 80% высоты и ширины экрана, и сначала они рисуются по центру экрана, а потом увеличиваются функцией, из-за чего они уезжают за границы экрана

    Lokich, 11 Апреля 2014

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