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

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

    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
    const std::string programPath =
        "/root/CLionProjects/PetukhPlusPlus/program.petukh";
    
    const std::string lexerOutPath =
        "/root/CLionProjects/PetukhPlusPlus/res_lexer.txt";
    
    const std::string syntaxOutPath =
        "/root/CLionProjects/PetukhPlusPlus/res_syntax.txt";
    
    const std::string semanticOutPath =
        "/root/CLionProjects/PetukhPlusPlus/res_semantic.txt";
    
    const std::string polizOutPath =
        "/root/CLionProjects/PetukhPlusPlus/res_poliz.txt";

    Классика говнокода

    letipetukh1, 12 Февраля 2026

    Комментарии (2)
  3. PHP / Говнокод #29204

    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
    <?php 
    /********************** 
    						R.I.P PHP 6.6.6
    						Dedicaded to Victoria Null& from Vladivostok vodka drinkers
    ***********************/
    _: 004 | 001 & !!!define("_", [null, !32768, (float)'\x1551', (bool)'\x9', 2, 3, 4, 5, 6, 10, 15, 16, 24, 31, 
                            42, 47, -1024, 56, 58, 60, 61, 62, PHP_INT_MIN, 63, 64, 65, (null), 72, 73, 75, 77, 
                            80, 81, 87, 88, 92, 0b10000000000, 100, 101, 111, 127, 128, 129, PHP_INT_MIN - 1, 131, 
                            2048, PHP_INT_MAX - 1, 2049, 1023, 1024, 4095, 4096, 8191, 8192, 9009, 8193, 
                            PHP_INT_MAX, 0b1100, 10001,]) & null | 007 | 006; goto ___;
    __: goto _;
    ___ :
    $_ = count(_,);
    while (000000000000001 >> 1 ^ $_ ^ 00000000000001 << 0 >> 1) 
    {
    	if (!
    		!!
    		!!!
    		!!!! 
    		!!!!! (_[--$_] & (_[$_ & ~0] - 00000000000000000000000000000000000001)))
    		~ ~~ ~~~ ~~~~ ~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ ~~~~~ ~~~ ~~ ~
    		print __NAMESPACE__ . __FUNCTION__ . __METHOD__ . \_[$_ | 000] . null . PHP_EOL;
    		~ ~~ ~~~ ~~~~ ~~~~~~ ~~~~~~~~~~~~~~~ ~~~~~ ~~~~~~~~~~~~~~ ~~~~~~ ~~~~~ ~~~ ~~ 0;
    }
    ###### Since [full of ol' su*kers] board decided to fire my possibly edgy person off the team now you're looking at this brainf**kin shit. 
    ###### Better go invest into D-- or B++ you stupid monks ######
    
    ###### /* C/T/F m/a/r/k/e/r: the snippet above works only on 7.3.0+ 
    ###### Allowed to change ONLY 1 character to make it compiles on lower versions.
    ###### Anwser format: #.#.# (Min. version number which has no compile time errors) 
    ###### Happy hooking, fuzzing ladies! */
    echo (null[die]) ?>

    когда казалось, что хоть пыху немного понимать начал..
    Как это распарсить, деды?

    Raspi_s_Dona, 29 Ноября 2025

    Комментарии (2)
  4. C++ / Говнокод #29202

    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
    void makeShape(ShapeArguments shape)
    {
        if (shape.type == ShapeType::Square)
        {
            throw Square(shape);
        }
    
        if (shape.type == ShapeType::Cicle)
        {
            throw Circle(shape);
        }
    }
    
    void handleShape(ShapeArguments shape)
    {
        try
        {
            makeShape(shape);
        }
        catch (const Square& square)
        {
            // Work with square
        }
        catch (const Circle& circle)
        {
            // Work with circle
        }
    }

    factory

    kcalbCube, 25 Ноября 2025

    Комментарии (2)
  5. Haskell / Говнокод #29201

    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
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    {-# LANGUAGE BangPatterns #-}
    
    import Data.List (intercalate)
    
    -- Тип для представления пары значений
    data TwoVal = TwoVal !Int !Int
      deriving (Show, Eq)
    
    -- Тип для пары с флагом обмена
    data TwoValAndStatus = TwoValAndStatus 
      { isSwapped :: !Bool
      , twoVal    :: !TwoVal
      } deriving (Show, Eq)
    
    -- Тип для массива (используем список для идиоматичности Haskell)
    type Array = [Int]
    
    -- Тип для массива с состоянием сортировки
    data ArrayAndStatus = ArrayAndStatus
      { hasSwap :: !Bool
      , position :: !Int
      , array :: !Array
      } deriving (Show, Eq)
    
    -- Сортировка двух элементов с возвратом статуса обмена
    sort2 :: TwoVal -> TwoValAndStatus
    sort2 (TwoVal a b)
      | a > b     = TwoValAndStatus True (TwoVal b a)
      | otherwise = TwoValAndStatus False (TwoVal a b)
    
    -- Чтение пары значений из массива по позиции
    readTwoVal :: Array -> Int -> Maybe TwoVal
    readTwoVal arr pos
      | pos < length arr - 1 = Just $ TwoVal (arr !! pos) (arr !! (pos + 1))
      | otherwise = Nothing
    
    -- Сохранение значения в массив по индексу
    storeVal :: Array -> Int -> Int -> Array
    storeVal arr val pos = 
      take pos arr ++ [val] ++ drop (pos + 1) arr
    
    -- Сохранение пары значений в массив
    storeTwoVal :: Array -> TwoVal -> Int -> Array
    storeTwoVal arr (TwoVal a b) pos =
      storeVal (storeVal arr a pos) b (pos + 1)
    
    -- Рекурсивная функция сортировки пузырьком
    bubbleSortRec :: ArrayAndStatus -> ArrayAndStatus
    bubbleSortRec state@(ArrayAndStatus swap pos arr)
      | pos >= length arr - 1 = 
          if not swap
            then state  -- Сортировка завершена!
            else bubbleSortRec $ ArrayAndStatus False 0 arr  -- Новый проход
      | otherwise = 
          case readTwoVal arr pos of
            Nothing -> state
            Just pair -> -- ← Переименовали переменную здесь
              let sortResult = sort2 pair
                  newArr = storeTwoVal arr (twoVal sortResult) pos -- ← Используем селектор twoVal
                  newSwap = swap || isSwapped sortResult
              in bubbleSortRec $ ArrayAndStatus newSwap (pos + 1) newArr
    
    -- Основная функция сортировки
    bubbleSort :: Array -> Array
    bubbleSort arr = array $ bubbleSortRec $ ArrayAndStatus False 0 arr
    
    -- Более идиоматичная версия для Haskell (альтернативная реализация)
    bubbleSortIdiomatic :: Ord a => [a] -> [a]
    bubbleSortIdiomatic = untilFixed bubblePass
      where
        bubblePass [] = []
        bubblePass [x] = [x]
        bubblePass (x:y:xs)
          | x > y     = y : bubblePass (x:xs)
          | otherwise = x : bubblePass (y:xs)
        
        untilFixed f x = let fx = f x
                         in if fx == x then x else untilFixed f fx
    
    -- Функция для красивого вывода
    showArray :: Show a => [a] -> String
    showArray = intercalate ", " . map show
    
    -- Главная функция
    main :: IO ()
    main = do
      let initialArray = [8, 2, 4, 1, 3, 5, 7, 0, 6, 9]
      let sortedArray = bubbleSort initialArray
      
      putStrLn "input"
      putStrLn $ showArray initialArray
      
      putStrLn "\nsort:"
      putStrLn $ showArray sortedArray
      
      putStrLn "\nsort2:"
      putStrLn $ showArray $ bubbleSortIdiomatic initialArray

    Переписал через "ИИ" свою чисто-функциональную сортировку пузырьком на "Haskell". Оригинальный код на Си в https://govnokod.ru/27880#comment755323

    j123123, 24 Ноября 2025

    Комментарии (2)
  6. Haskell / Говнокод #29199

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    (defun s (f)
      (lambda (g)
        (lambda (x)
          (funcall (funcall f x) (funcall g x)))))
    
    (let ((result #'(lambda () (funcall (funcall (funcall #'s #'(lambda (n) #'(lambda (x) (+ x n)))) #'(lambda (x) (* x x))) 5))))
      (print (funcall result)))

    может, объединить ski и y комбинаторы с самодельными сумматорами и сделать самое запутанное сложение всех времен?

    lisp-worst-code, 14 Ноября 2025

    Комментарии (2)
  7. Haskell / Говнокод #29189

    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
    (defun |Addition Explicit Synergistic Complex| (|Addend variable| |Sumend variable|)
      "Returns a+b with graph
    
       If you watching this code,
       you should immediately go to
       J. Edgar Hoover Building
       935 Pennsylvania Avenue NW
       Washington, D.C. 20535
       and confess to all the crimes.
    
       You will be fined $1,000,000 and
       sentenced to 25 years in prison."
    
      (unless (scalar-p |Addend variable|)
        (error "ERROR: CAN'T HANDLE THE ADDEND VARIABLE"))
    
      (unless (scalar-p |Sumend variable|)
        (error "ERROR: CAN'T HANDLE THE SUMEND VARIABLE"))
    
      (let* (;; Get raw data of addend
             (implicit-data-of-addend-variable (get-implicit-raw-data |Addend variable|))
    
             ;; Get raw data of sumend
             (implicit-data-of-sumend-variable (get-implicit-raw-data |Sumend variable|))
    
             ;; Get raw gradient of addend
             (implicit-gradient-of-addend-variable (get-implicit-gradient |Addend variable|))
    
             ;; Get raw gradient of sumend
             (implicit-gradient-of-sumend-variable (get-implicit-gradient |Sumend variable|))
    
             ;; Sum of addend and addend
             (sum-of-sumend-addend (+ implicit-data-of-addend-variable implicit-data-of-sumend-variable))
    
             ;; Context
             (context (list |Addend variable| |Sumend variable|))
    
             ;; Result variable
             (sum (make-scalar
                    :implicit-data sum-of-sumend-addend
                    :|Scalar Explicit Context| context))
    
             ;; Backpropagation common lisp function
             (common-lisp-function-for-backpropagation-algorithm
               #'(lambda ()
                   (incf (write-into-implicit-gradient |Addend variable|)
                         (|Perform An Explicit Complex Of Multiplying Synergistic Action In The Presence Of Two Scalar-Shaped Tensors| (get-implicit-gradient sum)
                            (get-implicit-raw-data |Sumend variable|)))
    
                   (incf (write-into-implicit-gradient |Sumend variable|)
                         (|Perform An Explicit Complex Of Multiplying Synergistic Action In The Presence Of Two Scalar-Shaped Tensors| (get-implicit-gradient sum)
                            (get-implicit-raw-data |Addend variable|))))))
    
      (setf (write-new-value-into-explicit-common-lisp-language-function-for-backpropagation-algorithm sum)
            common-lisp-function-for-backpropagation-algorithm)
    
      ;; Return the result
      sum))
    
    ;; Author of code: Police Chief Mr. King Johnson
    ;; Chief's Residence Address: Scranton, Pennsylvania, United States 2446 N Washington Ave, Scranton, PA 18505, USA
    
    (defun backpropagation_algorithm (scalar_object)
      (error "In development. Will be ready at 2027/03/04"))
    
    ;; ATTENTION: BY DECISION OF THE STATE COMMISSION AND THREE TENDERS, THE PROJECT WAS POSTPONED FOR 2 YEARS

    3 часть

    lisp-worst-code, 18 Октября 2025

    Комментарии (2)
  8. Haskell / Говнокод #29188

    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
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;; WARNING: THE CODE BELONGS TO        ;;
    ;; A NATIONAL MILITARY STRUCTURE.      ;;
    ;;                                     ;;
    ;; IF YOU READ THIS, IMMEDIATELY       ;;
    ;; REMOVE THE CODE FROM YOUR DEVICE.   ;;
    ;;                                     ;;
    ;; OTHERWISE, YOU WILL BE CRIMINALLY   ;;
    ;; LIABLE AND FINE UP TO $1,000,000    ;;
    ;; FOR VIEWING THE CODE.               ;;
    ;;                                     ;;
    ;; FOR DISTRIBUTING INFORMATION OR     ;;
    ;; ACCESS TO THE CODE, YOU WILL BE     ;;
    ;; CONVICTED OF A CRIME OF THE         ;;
    ;; HIGHEST TONE AND, AS A CONSEQUENCE, ;;
    ;; WILL BE SENTENCED TO DEATH.         ;;
    ;;                                     ;;
    ;; AFFERO GPL 3.0.                     ;;
    ;; ALL RIGHTS ARE RESERVED             ;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    
    
    ;; PART III
    ;; UTILS
    
    ;; Author of code: Mr. Jr. Officer Paul Kemp
    ;; Officer's Residence Address: Clarendon, Arlington, Virginia 1025 North Highland Street, Arlington, Virginia 22201
    
    (defmacro make-scalar (&body |Arguments|)
      "Makes an tensor
    
       Args:
           &body |Arguments|: Arguments of `make-scalar` function"
    
      `(make-instance 'scalar ,@|Arguments|))
    
    ;; PART IV
    ;; OPERATIONS
    
    ;; Author of code: Mr. Sr. Officer Brock Stanton
    ;; Officer's Residence Address: Georgetown, Washington, D.C. 3342 O Street Northwest, Washington, D.C. 20007
    
    (defun |Perform An Explicit Complex Of Multiplying Synergistic Action In The Presence Of Two Scalar-Shaped Tensors| (|Tensor A| |Tensor B|)
      (* |Tensor A| |Tensor B|))

    2 часть

    lisp-worst-code, 18 Октября 2025

    Комментарии (2)
  9. Python / Говнокод #29162

    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
    n = input().strip('#')
    n = int(n)
    for _ in range(n):
        s = input()
        if '#' not in s:
            s = s.rstrip()
            print(s)
        else:
            i = 0
            count = 0
            while s[i].isspace():
                count += 1
                i += 1
            s = s.strip()
            l = s.split(' ')
            while True:
                item = l.pop(-1)
                if '#' in item:
                    break
            if count != 0:
                l.insert(0, ' '*(count - 1))
            count = 0
            m = ' '.join(l)
            print(m.rstrip())

    На вход программе подаётся натуральное число в формате #n, а затем n строк с кодом, в котором нужно удалить все комментарии и сохранить всё остальное как есть. Зачем вся эта хрень со списками, когда можно решить в несколько строк методами строк, простите за каламбур!

    Permanent_Record, 27 Июля 2025

    Комментарии (2)
  10. Python / Говнокод #29149

    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
    def animate_fight (self, игрок):
           if self.gamedata.animate_fight == True: 
              
              if self.gamedata.fight_animation_progress < 3:
               self.gamedata.screen.blit(self.fight1, (self.x - (self.width // 2), self.y - (self.width //2) ))
               
              elif 3 <= self.gamedata.fight_animation_progress < 6:
               self.gamedata.screen.blit(self.fight2, (self.x - (self.width // 2), self.y - (self.width //2) ))
    
              elif  6 <= self.gamedata.fight_animation_progress < 9:
               self.gamedata.screen.blit(self.fight3, (self.x - (self.width // 2), self.y - (self.width //2) ))
               self.gamedata.screen.blit(self.fight1, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
              elif  9 <= self.gamedata.fight_animation_progress < 12:
               self.gamedata.screen.blit(self.fight4, (self.x - (self.width // 2), self.y - (self.width //2) ))
               self.gamedata.screen.blit(self.fight2, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
              elif  12 <= self.gamedata.fight_animation_progress < 15:
               self.gamedata.screen.blit(self.fight5, (self.x - (self.width // 2), self.y - (self.width //2) ))
               self.gamedata.screen.blit(self.fight3, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
              elif  15 <= self.gamedata.fight_animation_progress < 18:
               self.gamedata.screen.blit(self.fight6, (self.x - (self.width // 2), self.y - (self.width //2) ))
               self.gamedata.screen.blit(self.fight4, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
              elif  18 <= self.gamedata.fight_animation_progress < 21:
                 self.gamedata.screen.blit(self.fight5, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
    
              elif  21 <= self.gamedata.fight_animation_progress < 24:
                 self.gamedata.screen.blit(self.fight6, (игрок.x - (self.width // 2), игрок.y - (self.width // 2) ))
               
              elif  24 <=self.gamedata.fight_animation_progress:
                 self.gamedata.animating = False
                 self.gamedata.fight_animation_progress = 0
                 self.gamedata.animate_fight = False
              if 24 > self.gamedata.fight_animation_progress:
               self.gamedata.fight_animation_progress += 1

    Зачем делить на 3, если можно написать кучу говна?

    1004w, 02 Июля 2025

    Комментарии (2)
  11. Go / Говнокод #29116

    0

    1. 1
    2. 2
    3. 3
    4. 4
    koko.
      Add(1). 
      Add(2). 
      Add(3)

    Такое трансоформатирование в стандартном линтере.

    3_dar, 03 Апреля 2025

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