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

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

    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
    // @strict: true
    // @lib: es2020
    // @declaration: true
    type BadFlatArray<Arr, Depth extends number> = {
        obj: {
            "done": Arr,
            "recur": Arr extends ReadonlyArray<infer InnerArr>
            ? BadFlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>
            : Arr
        }[Depth extends -1 ? "done" : "recur"]
    }["obj"];
    
    declare function flat<A, D extends number = 1>(
        arr: A,
        depth?: D
    ): BadFlatArray<A, D>[]
    
    function foo<T>(arr: T[], depth: number) {
        return flat(arr, depth);
    }
    
    function main() {
        foo<number>([1.0, 2.0], 2);
    }

    спорим вы нихрена не поняли что это такое?

    ASD_77, 16 Января 2022

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function foo(x = class { static prop: string }): string {
        return undefined;
    }
    
    function main() {
        foo(class { static prop = "hello" }).length;
        print("done.");
    }

    ну что С/C++ скушали? а ты так можешь говнокодить?

    ASD_77, 14 Января 2022

    Комментарии (12)
  4. bash / Говнокод #27769

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #!/usr/bin/env bash
    
    URL=https://foo.bar/baz.zip
    PATH=/home/foo/bar/baz.zip
    
    wget -O "$PATH" "$URL"

    И только потом до мена дошло…

    ISO, 26 Октября 2021

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

    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
    #include <string>
    #include <iostream>
     
    int foo() {
    	std::string str = "file://*";
    	std::cout << str << std::endl;
    	return 0;
    }
     
    /*
    int bar() {
    	std::string str = "file://*";       // warning: '/*' within block comment [-Wcomment]
    	std::cout << str << std::endl;
    	return 0;
    }
    */
     
    int main() {
    	foo();
    	//bar();
    }

    Какой багор

    https://ideone.com/NiXH2q

    3_dar, 19 Октября 2021

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

    −2

    1. 1
    2. 2
    В начале сентября Лицокнига представила т.н. "умные очки" - девайс в виде очков со встроенной камерой.
    ФСБ России уже отнесли гаджет к УНПИ. Наказание за использование спецтехники - до 4 лет лишения свободы.

    Не пойму, как можно назвать "шпионским устройством" предмет, который видит и слышит то же, что и его владелец.

    MaaKut, 12 Октября 2021

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

    +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
    QSqlQuery& SQLConnect::get()
    {
        if ( makeConnection() ) {
            query = QSqlQuery(mDb);
            return query;
        }
        QSqlQuery empty;
        return empty;
    }
    
    bool SQLConnect::makeConnection()
    {
       mDb = SQLConnectPool::Instance().get();
       return true;
    }

    Раньше компилилось и не замечал, а тут на новом компиляторе начал кидать ошибки и решил посмотреть, что же там напроектировали

    avk17, 14 Августа 2021

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

    +2

    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
    /*
    https://habr.com/ru/post/523688/
    
    Так как мы работаем с макросистемой C/C++, то аналог функций — макрос, этой
    абстракцией мы и будем пользоваться. Мы будем передавать идентификатор первого
    рекурсивного макроса в следующий рекурсивный макрос, и тот, в свою очередь, по
    мере завершения своего исполнения будет передавать поток исполнения в первый
    рекурсивный макрос, так называемое продолжение. Нам также понадобиться терминальное
    продолжение — ML99_PRIV_REC_STOP — оно будет являться продолжением, поставляющимся
    в самый-самый первый рекурсивный макрос, ведь логично, что никуда, кроме как
    закончить исполнение программы на данном месте, нам перепрыгивать не нужно. Жилка
    двигателя рекурсии — это цепочка из макросов-раскрывателей следующего вида:
    */
    
    #define ML99_PRIV_REC_0(choice, ...)    ML99_PRIV_REC_NEXT(1, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_1(choice, ...)    ML99_PRIV_REC_NEXT(2, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_2(choice, ...)    ML99_PRIV_REC_NEXT(3, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_3(choice, ...)    ML99_PRIV_REC_NEXT(4, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_4(choice, ...)    ML99_PRIV_REC_NEXT(5, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_5(choice, ...)    ML99_PRIV_REC_NEXT(6, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_6(choice, ...)    ML99_PRIV_REC_NEXT(7, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_7(choice, ...)    ML99_PRIV_REC_NEXT(8, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_8(choice, ...)    ML99_PRIV_REC_NEXT(9, choice)(__VA_ARGS__)
    #define ML99_PRIV_REC_9(choice, ...)    ML99_PRIV_REC_NEXT(10, choice)(__VA_ARGS__)
    //...
    
    
    //И так до 1023:

    Интересно, этот чувак сидит на говнокоде?

    j123123, 03 Июля 2021

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

    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
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    public static boolean isMagicSquare(int[][] a) {
        boolean isMagic = true;
        boolean isSquare = true;
        
        //square? checking here.
        for(int i = 0; i < a.length; i++) {
                if(a.length != a[i].length) {
                        isSquare = false;
                }
        }
        
        if(isSquare) {
            int sum = 0;
            int nextSum = 0;
            
            //first row
            for(int i = 0; i < a.length; i++) {
                    sum += a[0][i]; 
            }
            
            
            //rows
            for(int i = 1; i < a.length; i++) {
                    for(int j = 0; j < a.length; j++) {
                            nextSum += a[i][j];
                    }
                
                    if(nextSum != sum) {
                            isMagic = false;
                            break;
                    } else {
                            nextSum = 0;
                    }
            }
            
            //columns
            if(isMagic) {
                    for(int i = 0; i < a.length; i++) {
                            for(int j = 0; j < a.length; j++) {
                                    nextSum += a[j][i];
                            }
                        
                            if(nextSum != sum) {
                                    isMagic = false;
                                    break;
                            } else {
                                    nextSum = 0;
                            }
                    }
                
                    //diagonals
                    if(isMagic) {
                            for(int i = 0; i < a.length; i++) {
                                    nextSum += a[i][i];
                            }
                            
                            if(nextSum != sum) {
                                    isMagic = false;
                            } else {
                                    nextSum = 0;
                            }
                        
                            if(isMagic) {
                                    int j = a.length - 1;
                                
                                    for(int i = 0; i < a.length; i++) {
                                            nextSum += a[i][j];
                                            
                                            if(j > 0) {
                                                    j--;
                                            }
                                    }
                                
                                    if(nextSum != sum) {
                                            isMagic = false;
                                    }
                            }
                    }
            }
            
        } else {
                isMagic = false;
        }
    
        return isMagic;
    }

    Write a method called isMagicSquare that accepts a two-dimensional array of integers as a parameter and returns true if it is a magic square. A square matrix is a magic square if it is square in shape (same number of rows as columns, and every row the same length), and all of its row, column, and diagonal sums are equal. For example, [[2, 7, 6], [9, 5, 1], [4, 3, 8]] is a magic square because all eight of the sums are exactly 15.

    (https://practiceit.cs.washington.edu/problem/view/bjp3/chapter7/e20%2DisMagicSquare)

    Работает, но код нечитаемый. Как сократить? Понятия не имею.

    imrnccc, 28 Марта 2021

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

    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
    start_link(Shard, Subscriber) ->
        gen_server:start_link(?MODULE, {server, Shard, Subscriber}, []).
    
    start_link_client(Shard, RemoteNode, Parent) ->
        gen_server:start_link(?MODULE, {client, Shard, RemoteNode, Parent}, []).
    
    
    init({server, Shard, Subscriber}) ->
        {ok, #server{ shard      = Shard
                    , subscriber = Subscriber
                    }};
    init({client, Shard, RemoteNode, Parent}) ->
        {ok, #client{ parent     = Parent
                    , shard      = Shard
                    }}.

    CHayT, 12 Марта 2021

    Комментарии (12)
  11. Python / Говнокод #27273

    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
    import math
    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument("--type")
    parser.add_argument("--principal", type=int)
    parser.add_argument("--periods", type=int)
    parser.add_argument("--interest", type=float)
    parser.add_argument("--payment", type=float)
    
    args = parser.parse_args()
    
    choose = args.type
    p = args.principal
    n = args.periods
    i = args.interest
    a = args.payment
    
    if i is None or p is None and a is None:
        print("Incorrect parameters.")
        exit(0)
    
    i = (i * 0.01) / (12 * 1)
    
    if choose == "diff":
        m = 1
        overpayment_all = 0
        while m <= n:
            d = math.ceil(p / n + i * (p - ((p * (m - 1)) / n)))
            m += 1
            overpayment_all += d
            print(f"Month {m - 1}: payment is {d}")
        print()
        print(f"Overpayment = {overpayment_all - p}")
    
    elif choose == "annuity" and a is None:
        a = math.ceil(p * (i * math.pow((1 + i), n)) / (math.pow((1 + i), n) - 1))
        print(f"Your monthly payment = {a}!")
        over = a * n - p
        print(f"Overpayment = {math.ceil(over)}")
    
    elif choose == "annuity" and p is None:
        p = int(a / (i * math.pow(1 + i, n) / (math.pow(1 + i, n) - 1)))
        print(f"Your loan principal = {p}!")
        m = 1
        over = a * n - p
        print(f"Overpayment = {math.ceil(over)}")
    
    elif choose == "annuity":
        n = math.ceil(math.log(a / (a - i * p), 1 + i))
        zxc = math.ceil(math.log(a / (a - i * p), 1 + i))
        years = 0
        while n >= 12:
            n -= 12
            years += 1
        if years == 0:
            print(f"It will take {n} months to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")
        elif n == 0:
            print(f"It will take {years} years to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")
        else:
            print(f"It will take {years} years and {n} months to repay this loan!")
            over = a * zxc - p
            print(f"Overpayment = {math.ceil(over)}")

    Ебучий универ и ебучее задание на питоне. Всё было бы збс, если бы не математика.
    Прога считает проценты, бабки, переплаты и чёт ещё, наверное

    warzon131, 25 Февраля 2021

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