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

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

    +1

    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
    public static XmlNode FindNodeRecursive(XmlNode document, string nodeName)
    {
        if (document.Name == nodeName)
            return document;
    
        foreach (XmlNode node in document.ChildNodes)
        {
            if (node.Name == nodeName)
                return node;
    
            XmlNode resNode = FindNodeRecursive(node, nodeName);
            if (resNode != null && resNode.Name == nodeName)
                return resNode;
        }
    
        return (XmlNode)null;
    }
    <...>
     XmlDocument document = new XmlDocument();
     document.LoadXml(request);
    
    var PurchaseIdNode = XmlProcessing.FindNodeRecursive(document, "PurchaseId");

    Разработчик с 15-летним стажем
    XPath'у не доверяет

    Barch, 12 Декабря 2019

    Комментарии (36)
  3. Куча / Говнокод #25719

    −2

    1. 1
    Что хуже - "Windows Vista" или "Windows 8"?

    SteadfastTinCock, 13 Июля 2019

    Комментарии (36)
  4. Куча / Говнокод #25540

    +1

    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
    # это комментарий #
    COMMENT это понятно что COMMENT
    CO это тоже ко-ко-коментарий CO
    
    CO функция принимает 3 параметра типа INT и возвращает ссылку на массив CO
    PROC range = (INT start, end, step)REF[]INT : (
        INT length = ABS((end - start) % step);
        NEW [0 : length - 1]INT result; CO массив в куче CO
        CO LWB —– нижний индекс массива, UPB —– верхний CO
        FOR i FROM LWB result TO UPB result
        DO
            result[i] := start + i * step
        OD;
        result CO функции возвращают результат последнего вычесленного выражения CO
    );
    
    CO можно определять свои операторы CO
    OP RANGE = (INT start, end)REF[]INT: range(start, end, (start < end | 1 | -1));
    PRIO RANGE = 5; CO для бинарных операторов нужно задать приоритет, у сложения/вычитания приоритет = 6 CO
    
    CO для операторов возможна перегрузка по количеству и типу аргументов CO
    OP RANGE = (INT end)REF[]INT: 0 RANGE end;
    
    OP ACCUM = ([]INT x, PROC(INT,INT)INT f)INT : (
        INT length = UPB x - LWB x;
        IF length = 0 THEN
            1
        ELIF length = 1 THEN
            x[LWB x]
        ELSE
            INT result;
            result := x[LWB x];
            FOR i FROM LWB x + 1 TO UPB x
            DO
                result := f(result, x[i])
            OD;
            result
        FI
    );
    PRIO ACCUM = 5;
    
    CO правый операнд у ACCUM —– лямбда CO
    OP ! = (INT x)INT: 1 RANGE x + 1 ACCUM ((INT x, y)INT: x * y);
    
    printf(($g(0), "! = ", g(0), l$, 7, !7));
    
    OP MAP = ([]INT x, PROC(INT)INT f)REF[]INT : (
        NEW [LWB x : UPB x]INT result;
        FOR i FROM LWB x TO UPB x
        DO
            result[i] := f(x[i])
        OD;
        result
    );
    PRIO MAP = 5;
    
    PROC pow = (INT x, n)INT: x ^ n;
    
    CO каррирование CO
    printf(($g(0), " "$, RANGE 10 MAP pow(2, )));
    print(new line);
    
    OP FOREACH = (REF[]INT x, PROC(REF INT)VOID f)VOID : (
        FOR i FROM LWB x TO UPB x
        DO
            f(x[i])
        OD
    );
    PRIO FOREACH = 5;
    
    REF[]INT a = -5 RANGE 6;
    a FOREACH ((REF INT x)VOID:
        x := x ^ 2
    );
    
    printf(($g(0), " "$, a))

    https://tio.run/##jVVdbxJBFH3nV1xbTXZ1iaBpNVQfkFIlKV2C1T40mJBIkYRgUzFdEx@wtRpTPx70hyCWlkLBvzDzF/wj9dw7s0uBmgiF7syce@fOuecM5Xr1ZX3xbvX8fJ70F72nRqT6aqTO8O6qISbauqV66pTmYxk/n8@urUe438AN9TcMhhjqjzJrQQCHOP5Sx6oriePR18wGGT8mUe/1PhL29QfV09@wiywP8TlTbdXVe3Sbt@aoNufQe/zEu/R4mnKoUPVIdbDFierwov5kI/U7vA/VANn3CTnbxEl5FsEdrqBQ9DO0U25UK3SfHM71qlneaXpUaTz38FzZdovZlc0Sr6TIiRFe/FyvNKrNF4hJP3jsOABT3ES6dM2ELQl2LbtBmwmE2oA4JSXXTuXV63pzCSVMlsR/KFZ/BH8oj1MAsrrxgP60fvxpfSdh5li@T0mIOgKvff1uIo9qe/SkMA7qgI6WPrBhNvGKX6QarRT9vGxgSqJ1XyLNSHDLBs4vM7tZK1Hqvjkv3UCO63JkQfnL5uA221SDL2mU/sqNauEQJ8AN9GeRyJ7IDYcZYOEI4V31izXY0YfMjV0YshLHC6yQY5lmJeGUaELMMDwSzoAbicC6wtqAxaw/QyZSVE9WmSkuALu39CFn8QtUTK89zM4qJNJGymjIuSgeM6B7PKK3lMQnnnRRUqGY86OMC0YDR1wMqZ/SUdb6EOc5mCkIYwhkCKLscU5w5CNexTGsdRjWAxwG8Ai6F65GY2JuWhIZ07ZczYaitMXQomF1lxZj2hky3CaLQb/A3z6W@mbSXjQDbCANRI4Ou7JnrczPfPBfCAqvipEx6XQDJplP2EXMot3ApjOZJ3nGGtsGHrHLOdLDx@W5LfefhmbxB/ApWyIwWs6tjJcTtP4ouxYZIilP2dWLkOQkJNiUVCWLfJyNVi5cBFMOY3uFceO1KcMG8F4y9GsQoS7YdTLhlmOePaSuldwIFVp2jDbXQy4WijVkdMH66bdYDTLiOyhSBd9FLDiDDq8eKAf9/Mkqtb28EvYxcKWBSdtAcx4T7Ti2dW8MJsAd84btvL1TazS3HOdq1Um4Hs1xsjmPzKh@1aM7Hl25wzbjrfLpwqVCsCKYudrlujbcpgytpekmzTRhogH/uiu3nDHnk1dkRLKplSmWH6Xtl7sRTx41QhqeUcM2oc92EcOKE42Xzc/GNEk0B2IMycmEbITszi2PXCZK0E6jskv1WqNimcMxs@nMIy4hYikkEBOsXfepn1sGi/IvZPC/6ZlkJGJhvC8zEW1dxkR8wZ5hcSlWjoBOWA7kxJWkJGMgDgJbt2KXqUYIKbvu@flf
    Давайте течь от "Algol-68".

    BOKCEJIbHblu_nemyx, 13 Апреля 2019

    Комментарии (36)
  5. Python / Говнокод #25489

    0

    1. 1
    {% for item in object.items %}

    Внезапно выяснилось, что ебаная жинжа пытается не делает object['items'], а сначала ищет метод items().

    syoma, 31 Марта 2019

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

    0

    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
    [code]
      protected AbstractPopup init(Project project,
                         @NotNull JComponent component,
                         @Nullable JComponent preferredFocusedComponent,
                         boolean requestFocus,
                         boolean focusable,
                         boolean movable,
                         String dimensionServiceKey,
                         boolean resizable,
                         @Nullable String caption,
                         @Nullable Computable<Boolean> callback,
                         boolean cancelOnClickOutside,
                         @Nullable Set<JBPopupListener> listeners,
                         boolean useDimServiceForXYLocation,
                         ActiveComponent commandButton,
                         @Nullable IconButton cancelButton,
                         @Nullable MouseChecker cancelOnMouseOutCallback,
                         boolean cancelOnWindow,
                         @Nullable ActiveIcon titleIcon,
                         boolean cancelKeyEnabled,
                         boolean locateByContent,
                         boolean placeWithinScreenBounds,
                         @Nullable Dimension minSize,
                         float alpha,
                         @Nullable MaskProvider maskProvider,
                         boolean inStack,
                         boolean modalContext,
                         @Nullable Component[] focusOwners,
                         @Nullable String adText,
                         int adTextAlignment,
                         boolean headerAlwaysFocusable,
                         @NotNull List<? extends Pair<ActionListener, KeyStroke>> keyboardActions,
                         Component settingsButtons,
                         @Nullable final Processor<? super JBPopup> pinCallback,
                         boolean mayBeParent,
                         boolean showShadow,
                         boolean showBorder,
                         Color borderColor,
                         boolean cancelOnWindowDeactivation,
                         @Nullable BooleanFunction<KeyEvent> keyEventHandler) {
    [/code]
    // https://github.com/JetBrains/intellij-community/blob/master/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java

    HEymHblu_nemyx, 06 Марта 2019

    Комментарии (36)
  7. C# / Говнокод #25385

    0

    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
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.AI;
    public class SimpleEngine : MonoBehaviour
    {
    NavMeshAgent main;
    Vector3 Pos2;
    void Start()
    {
    main = GetComponent<NavMeshAgent>();
    Pos2 = new Vector3(-43, 5, 0);
    }
    void Update()
    {
    main.SetDestination(Pos2);
    if (GameObject.Find("Planedelete").GetComponent<TriggerDelete>().newDestroy == true)
    {
    Destroy(gameObject); // Само удаление!!!
    }
    
    if (GameObject.Find("PlaneLight").GetComponent<TriggerLight>().Activate == true)
    {
    
    if (GameObject.Find("TrafficLight").GetComponent<TrafficLightController>().Logistic == true)
    {
    main.speed = 80;
    
    }
    if (GameObject.Find("TrafficLight").GetComponent<TrafficLightController>().Logistic == false)
    {
    main.speed = 0;
    
    }
    }
    if (GameObject.Find("PlaneLight").GetComponent<TriggerLight>().Activate == false)
    {
    main.speed = 80;
    main.acceleration = 8;
    }
    }
    }

    ШЕДЕВР ДОЛБОГНОМА ВСЕЯ UNITY3D...

    jarico_master, 17 Февраля 2019

    Комментарии (36)
  8. JavaScript / Говнокод #25166

    +3

    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
    user_pref("general.useragent.override.3dn.ru", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.at.ua", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.clan.su", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.do.am", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.moy.su", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.my1.ru", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.narod.ru", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.ae", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.com", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.es", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.hu", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.kz", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.lv", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.net", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.org", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");
    user_pref("general.useragent.override.ucoz.ru", "Mozilla/5.0 (Windows NT 6.1; rv:52.9) Gecko/20100101 Firefox/52.9 u01-04");

    Ко-ко-ко, куд-кудах-тах-тах!

    nemyx, 08 Декабря 2018

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

    −6

    1. 1
    Давайте хвалить "NodeJS".

    AnalThermos, 28 Ноября 2018

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

    0

    1. 1
    Серьёзный вопрос к местным игроделам:

    А есть ли какое-нибудь универсальное исследование, которое говорит, как должны быть устроены формулки в rpg/mmorpg?
    Типа что номер уровня должен зависеть как корень степени 2.8 от количества exp, hp -- линейно от str и int, а дамаг -- как среднее геометрическое дамага перса и дамага его оружия.
    Пробовал гуглить/читать геймдев -- нашёл только пространственные рассуждения "начни делать хоть как-то, а потом с помощью говна и палок отбалансируй".

    P.S. Да, я хочу написать игру и сидеть в неё играть.

    Bobik, 23 Мая 2018

    Комментарии (36)
  11. Assembler / Говнокод #23387

    0

    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
    tms часть коррелятора
    
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               movl          XAR6     ,#str_korel     ;
               movl          XAR7     ,#str_f1_faz    ;
               mov            AH      ,@@dlin_mass    ;
               dec            AH                      ;
               movb           AL      ,#0             ;
               movl          XAR1     ,ACC            ;
               movz           AR2     ,AH             ;
               mov     @@max_num      ,AL             ;
               mov   @@start_num      ,AR1            ;
               subb          XAR2     ,#1             ;
               mpy           ACC      ,@@index_f      ,#max_f__faz*dln_f__faz
               add           ACC      ,@@start_base   ;
               addl          XAR7     ,ACC            ;
               movb          XAR3     ,#0             ;
               movz           AR0     ,*+XAR6[AR1%++] ;
               mov             T      ,@@temp_R       ;
               movl            P      ,*+XAR7[AR0]    ;pl=alp ph=R
               mpyu          ACC      ,T     ,PH      ;R0
               mov    @@factor_R      ,AH             ;
    loopi_0:   movz           AR0     ,*+XAR6[AR1%++] ;
               mov             T      ,#0             ;
               movl          ACC      ,*+XAR7[AR0]    ;
               sub            AL      ,PL             ;alpa<0
               cmp            AL      ,@@factor_alp   ;
               movb            T      ,#1            ,LO
               sub            AH      ,PH             ;
               abs           ACC                      ;
               cmp            AH      ,@@factor_R     ;
               movb            T      ,#0            ,HI
               mov            AL      ,T              ;
               add     @@max_num      ,AL             ;
               banz       loopi_0     ,AR2--          ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               movz           AR2     ,@@dlin_mass    ;
               subb          XAR2     ,#3             ;
    zabul:     movz           AR0     ,*+XAR6[AR1%++] ;
               push           AR3:AR2                 ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
               mov     @@start_n      ,AR1            ;
               movz           AR0     ,*+XAR6[AR1%++] ;
               mov             T      ,@@temp_R       ;
               movl            P      ,*+XAR7[AR0]    ;
               mpyu          ACC      ,T     ,PH      ;
               mov    @@factor_R      ,AH             ;
               movb       @@max_n     ,#0           ,UNC
    loopi_1:   movz           AR0     ,*+XAR6[AR1%++] ;
               mov             T      ,#0             ;
               movl          ACC      ,*+XAR7[AR0]    ;
               sub            AL      ,PL             ;alpa<0
               cmp            AL      ,@@factor_alp   ;
               movb            T      ,#1            ,LO
               sub            AH      ,PH             ;
               abs           ACC                      ;
               cmp            AH      ,@@factor_R     ;
               movb            T      ,#0            ,HI
               mov             AL     ,T              ;
               add       @@max_n      ,AL
               banz       loopi_1     ,AR2--
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    loopi_2:   movz           AR0     ,*+XAR6[AR1%++] ;
               mov             T      ,#0             ;
               movl          ACC      ,*+XAR7[AR0]    ;
               sub            AL      ,PL             ;alpa<0
               cmp            AL      ,@@factor_alp   ;
               movb            T      ,#1            ,LO
               sub            AH      ,PH             ;
               abs           ACC                      ;
               cmp            AH      ,@@factor_R     ;
               movb            T      ,#0            ,HI
               mov            AL      ,T              ;
               add       @@max_n      ,AL             ;
               banz       loopi_2     ,AR3--          ;
               pop            AR3:AR2                 ;

    maxxx, 06 Октября 2017

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