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

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

    +78

    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
    public Miner(String s) {	    
            super(s);
            MenuBar mb = new MenuBar();
            setMenuBar(mb);
            Menu mFile = new Menu("Файл");
            Menu mHelp = new Menu("Справка");
            mb.add(mFile);
            mb.setHelpMenu(mHelp);
            MenuItem create = new MenuItem("Новая игра",new MenuShortcut(KeyEvent.VK_N));
            Menu mColor = new Menu("Цвет");
            MenuItem mGreen = new MenuItem("Зелёный");
            MenuItem mRed = new MenuItem("Красный");
            MenuItem mBlue = new MenuItem("Синий");
            MenuItem mGray = new MenuItem("Серый");
            mColor.add(mGreen);
            mColor.add(mRed);
            mColor.add(mBlue);
            mColor.addSeparator();
            mColor.add(mGray);
            Menu mHard = new Menu("Сложность");
            MenuItem mDummy = new MenuItem("Новичок");
            MenuItem mUser = new MenuItem("Среднячок");
         	MenuItem mHaker = new MenuItem("Проффи");
         	mHard.add(mDummy);
         	mHard.add(mUser);
         	mHard.add(mHaker);
         	MenuItem mSound = new MenuItem("Звук");
         	mSound.setEnabled(false);
         	MenuItem exit = new MenuItem("Выход",new MenuShortcut(KeyEvent.VK_X));
            mFile.add(create);
            mFile.add(mColor);
            mFile.add(mHard);
            mFile.add(mSound);
            mFile.addSeparator();      
            mFile.add(exit);
            Scribble scr = new Scribble(this,480,480);
            mGreen.addActionListener(scr);
            mRed.addActionListener(scr);
            mBlue.addActionListener(scr);
            mGray.addActionListener(scr);
            add(scr);
            Difficult diff = new Difficult(this,480,480);
            mDummy.addActionListener(diff);
            mUser.addActionListener(diff);
            mHaker.addActionListener(diff);
            add(diff);
            create.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    status = 0;
                    repaint();
                    RandomArray();
                }
            });
            exit.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    System.exit(0);
                }
            });
            MenuItem mInfo = new MenuItem("О программе",new MenuShortcut(KeyEvent.VK_H));
            mHelp.add(mInfo);
            mInfo.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    new AboutProgram("О программе");
                }
            });
            setBounds(0,0,480,480); // setSize(480,480); 
            setVisible(true);
            setLayout(null);
            addMouseListener(this);
            addWindowListener(new WinClose());
    }

    Всё, что можно и что нельзя я запихнул в конструктор

    dwinner, 14 Января 2011

    Комментарии (91)
  3. Perl / Говнокод #28535

    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
    #!/usr/bin/guile -s
    !#
    
    (define (square x)
      (* x x))
    
    (define (square_sum x y)
      (+ (square x) (square y)))
    
    (define (tmax x y z)
      (cond ((and (>= x y) (>= x z)) x)
            ((and (>= y x) (>= y z)) y)
            (else z)))
    
    (define (tms x y z)
      ((cond ((= (tmax x y z) x)
              (if (> y z)
                  (square_sum x y)
                  (square_sum x z)))
             ((= (tmax x y z) y)
              (if (> x z)
                  (square_sum x y)
                  (square_sum y z)))
             ((= (tmax x y z) z)
              (if (> x y)
                  (square_sum x z)
                  (square_sum y z)))
             (else 0))))
    
    (display "Ans: ")
    (display (tms 6 5 4))
    (newline)

    Почему не работает?

    JloJle4Ka, 02 Января 2023

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

    +1

    1. 1
    for (double x = xn, p = 1, n = 0, y = 0; x > xk ? cout<<p<<' '<<n, false : true; x += dx, y = cos(x) + x*5. / 2, y > 0 ? p *= y : y < 0 ? n++ : n );

    Попросили помочь с задачей:
    > Определить произведение негативных и количество позитивных значений функции y=cos(x)+x*5./2, если значение x изменяется от xn до xk с шагом dx.
    Я постарался, как мог, всё-таки язык мне не очень близок (немного помогли). Возможно, ещё есть, куда "улучшить".

    MetallDoctor, 23 Сентября 2021

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function main() {
        for (const q of [1, 12]) {
            print(q);
        }
    
        for (const l of "HW") {
            print(l);
        }
    
        print("done.");
    }

    продолжаем говнокодить компилятор для TypeScript (типа новый сабсет для native-ого кода)

    ASD_77, 02 Июня 2021

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

    −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
    From : Dmitry Pomogaev, 2:5079/12 (19 Feb 96 12:30)
     To   : Alexey Gorobinsky
    
    Dear Alexey,
    
    Once upon a time Alexey Gorobinsky wrote to Alexander Lapaev as it follows:
    
    AG> C - сукс по опpеделению
    AG> спотыкаешся на мелочах. И если ты каждую мелочь не пpопишешь
    [...skipped by DVP...]
    AG> Хpеновейшая пеpеносимость
    [...skipped by DVP...]
    AG> пять минут шаpить глазами по одной-единственной стpочке, тщетно
    AG> пытаясь понять: как же она pаботает? Вообще, Си - лидеp по количеству
    AG> неявных ошибок.
    [...skipped by DVP...]
    AG> Я все это испытал на себе. До сих поp помню...
    [...skipped by DVP...]
    ----------------------------------------------------------------------------
    
              Доpогая pедакция жуpнала "MelcoHard Kitchen", пишет Вам Петя
         Иванов. Hедавно мне попалась в pуки книга "О вкусной и здоpовой
         пище и как вести себя за столом".
              Так они pекомендуют пользоваться ножом и вилкой. Я купил и то
         и дpугое, но pезультат оказался не таким, как я ожидал. Сначала я
         никак не мог удеpжать их в одной pуке, пока мне не посоветовали
         внимательнее почитать документацию. Там я нашел место(гады! они
         хотя бы в ФАК вынесли!!), что деpжать их нужно pазными pуками.
              Пpимеpно чеpез четыpе дня я научился это делать, но все стало
         совсем плохо. Вилкой я сильно поpезал себе пальца на ноге, а ножом
         пpоткнул ухо. Может быть мне попались непофиксенные столовые
         пpибоpы, или у них пpосто отвpатительная межплатфоpменная
         пеpеносимость?
              Доpогой Петя! Скоpее всего, столовые пpибоpы здесь не пpи
         чем. Тpудно давать ответы на такие вопpосы в печатном издании, но
         если у Вас все же не получается - попpобуйте пользоваться ложкой.
    
              Доpогая pедакция, это опять Петя. Как Вы и советовали, я
         попpобовал. У меня получилось лучше, но не все. Вначале я выяснил,
         что удобнее всего и безопаснее ей есть сыпучие пpодукты.
              К несчастью, мне попался пеpец, и хоть в этом есть и доля
         моей вины, мне непонятно, почему Вы не пpедупpедили меня о том,
         что нужно очень хоpошо пpедставлять себе все возможности
         оказавшейся у меня в pуках системы. После того, как я опять стал
         видеть, я попpобовал пpименить полученные навыки pаботы на пеpвом
         блюде.
         Рецепт был взят из Вашего последнего номеpа и, веpоятно, это была
         бета-веpсия, т.к. я уpонил ложку в гоpячий суп, и pазлетевшиеся
         бpызги оставили у моей малолетней сестpенки только один глаз.
         Согласитесь, что в ее 34 года это почти гоpе. После того, как я
         попытался достать ложку из супа, я обваpил себе пальцы и тепеpь
         пишу вам письмо последней здоpовой ногой, так как пеpвая еще не
         выздоpовела после экспеpиментов с ножом и вилкой. Скажите мне, что
         я делал не так.
              Доpогой Петя! Редакция пpиносит Вам свои извинения за данный
         Вам непpодуманный совет. Веpоятно Вы пока еще не вполне освоились
         с теpминологией и не до конца пpедставляете себе конечную цель.
         Фактически, задача не является столь сложной. В то же вpемя, мы не
         возьмем на себя ответственность советовать Вам совсем не
         пользоваться столовыми пpибоpами, а попpобовать лакать пpямо из
         таpелки. Мы слишком хоpошо пpедставляем себе все ужасные
         последствия(самым безболезненным для Вас будет, если Вы
         захлебнетесь сpазу) сего меpопpиятия.
              Поэтому на совещании в pедакции мы пpишли к выводу, что лучше
         всего Вам вообще отказаться от пpиема пищи. Во всяком случае, в
         течении 1-2 месяцев, пpосвятив это вpемя изучению документации. Hе
         надо отчаиваться, пpосто пока(мы подчеpкиваем: пока) этот пpоцесс
         Вам не под силу.
    
    ----------------------------------------------------------------------------
    Faithfully, Dmitry.
    Aka DVP.

    https://www.cs.bgu.ac.il/~barnshte/CompHumor/texts/c-sux.txt
    Там еще много всяких баянов: https://www.cs.bgu.ac.il/~barnshte/CompHumor/ кодировка KOI8-R

    j123123, 18 Декабря 2019

    Комментарии (90)
  7. PHP / Говнокод #25809

    −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
    <?php
    
    class A
    {
        public function TestFunc()
        {
            var_dump($this);
            return $this->test;
        }
    }
    
    class B
    {
        public $test;
    
        public function __construct()
        {
            $this->test = "Nice trick";
        }
    
        public function GetTest()
        {
            return A::TestFunc();
        }
    }
    
    $b = new B;
    echo $b->GetTest();

    object(B)#1 (1) {
    ["test"]=>
    string(10) "Nice trick"
    }
    Nice trick

    Именно поэтому я за "PHP 5.3"

    Stallman, 06 Сентября 2019

    Комментарии (90)
  8. C++ / Говнокод #25564

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
    #include <string>
    #include <string_view>
    
    int main() {
      std::string s = "Hellooooooooooooooo ";
      std::string_view sv = s + "World\n";
      std::cout << sv;
    }

    https://alexgaynor.net/2019/apr/21/modern-c++-wont-save-us/
    What's happening here is that s + "World\n" allocates a new std::string, and then is converted to a std::string_view. At this point the temporary std::string is freed, but sv still points at the memory that used to be owned by it. Any future use of sv is a use-after-free vulnerability. Oops! C++ lacks the facilities for the compiler to be aware that sv captures a reference to something where the reference lives longer than the referent. The same issue impacts std::span, also an extremely modern C++ type.

    j123123, 24 Апреля 2019

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    <j123123__> Ну лол, я 29-летний бородатый чел из Харькова который живет с мамкой, пишет прошивки под микроконтроллеры STM32
    <j123123__> Я не мобилизован потому что например дважды в психбольнице лежал, лол
    <j123123__> Ну диагноз тама не говорят, вроде шизо-какое-то расстройство
    <j123123__> А вот представь вот в пледик укрыться с кунчиком и на сишечке прогать

    Узнаем j123123 с новой стороны.

    FrauSchweinhund, 29 Ноября 2018

    Комментарии (90)
  10. C# / Говнокод #24483

    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
    private void OutputLabels(DataTable dt)
    {
       string label; 
    
       // Iterate rows of table
       foreach (DataRow row in dt.Rows)
       {
          int labelLen;
          label = String.Empty;
          label += AddFieldValue(label, row, "Title");
          label += AddFieldValue(label, row, "FirstName");
          label += AddFieldValue(label, row, "MiddleInitial");
          label += AddFieldValue(label, row, "LastName");
          label += AddFieldValue(label, row, "Suffix");
          label += "\n";
          label += AddFieldValue(label, row, "Address1");
          label += AddFieldValue(label, row, "AptNo");
          label += "\n";
          labelLen = label.Length;
          label += AddFieldValue(label, row, "Address2");
          if (label.Length != labelLen)
             label += "\n";
          label += AddFieldValue(label, row, "City");
          label += AddFieldValue(label, row, "State");
          label += AddFieldValue(label, row, "Zip");
          Console.WriteLine(label);
          Console.WriteLine();
       }
    }
    
    private string AddFieldValue(string label, DataRow row, 
                                 string fieldName) 
    {                                
       if (! DBNull.Value.Equals(row[fieldName])) 
          return (string) row[fieldName] + " ";
       else
          return String.Empty;
    }

    label не используется в AddFieldValue. Официальный пример MS - https://docs.microsoft.com/en-us/dotnet/api/system.dbnull.value?view=netframework-4.7.2

    gogishvilli001, 12 Июля 2018

    Комментарии (90)
  11. Lua / Говнокод #24031

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    local buff = ""
    for line in io.lines() do
         buff = buff .. line .. "\n"
    end

    Несмотря на его безобидный вид, этот код может сильно ударить по быстродействию для больших файлов:
    например, чтение файла размером 1 Мб занимает 1,5 минуты

    3oJIoTou_xyu, 29 Марта 2018

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