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

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

    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
    class Cat {
      constructor(
        public name: string) {
      }
      toCoolCat(coolness: number): CoolCat {
        return new CoolCat(this.name, coolness);
      }
    }
    // ...
    class CoolCat extends Cat {
      constructor(
        name: string,
        public coolness: number) {
    
        super(name);
      }
    }
    //...
    function addCoolCat(coolness: number, cat: Cat): void {
      this.coolCats.push(cat.toCoolCat(coolness);
    }
    //...
    addCoolCat(80, {name: 'Greycat'});

    Вроде TypeScript, а на самом деле NotCompletelyTypeScript.
    Во время выполнения получим ошибку "cat.toCoolCat is not a function". Тем не менее, компилятор TypeScript позволяет это (а конкретно, строку 23) скомпилировать. Хотелось бы, чтобы не позволял.

    wissenstein, 19 Декабря 2018

    Комментарии (221)
  3. C# / Говнокод #14348

    +141

    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
    private void pictureBox1_Paint(object sender, PaintEventArgs e)
             {
               //Перегруженый метод Paint
     
                //Если нужно будет работать с графиксом в других методах (рисовать на нем в других методах)
                //сделайте его глобальным
                //Graphics gr = this.CreateGraphics();//Создаем объект графикс из окна
     
                 Graphics gr = e.Graphics;
                int w = this.ClientSize.Width;//размеры клиентской области
                int h = this.ClientSize.Height;//размеры клиентской области
                
                int widthLines = 20;//Ширина клетки
                int heightLines = 20;//Высота клетки
                for(int i = 0; i < w; i += widthLines)
                {
                    //Вертикальные линии
                    gr.DrawLine(new Pen(Brushes.Blue), new Point(i + widthLines, 0), new Point(i + widthLines, h));
                    //Горизонтальные линии
                    gr.DrawLine(new Pen(Brushes.Blue), new Point(0, i + heightLines), new Point(w, i + heightLines));
                }
          
              
               //Graphics gr = e.Graphics;
     
                graf_func();
                 
                Pen p = new Pen(Color.Red, 3);// цвет линии и ширина
     
                Point p1 = new Point(10, data_graf_x[0]);// первая точка
                Point p2 = new Point(20, data_graf_x[1]);// вторая точка  1-y 2-x 1
                Point p3 = new Point(30, data_graf_x[2]);// вторая точка  1-y 2-x 2
                Point p4 = new Point(40, data_graf_x[3]);// вторая точка  1-y 2-x 3
                Point p5 = new Point(50, data_graf_x[4]);// вторая точка  1-y 2-x
                Point p6 = new Point(60, data_graf_x[5]);// вторая точка  1-y 2-x
                Point p7 = new Point(70, data_graf_x[6]);// вторая точка  1-y 2-x
                Point p8 = new Point(80, data_graf_x[7]);// вторая точка  1-y 2-x
                Point p9 = new Point(90, data_graf_x[8]);// вторая точка  1-y 2-x
                Point p10 = new Point(100, data_graf_x[9]);// вторая точка  1-y 2-x
                Point p11 = new Point(110, data_graf_x[10]);// вторая точка  1-y 2-x
                Point p12 = new Point(120, data_graf_x[11]);// вторая точка  1-y 2-x
                Point p13 = new Point(130, data_graf_x[12]);// вторая точка  1-y 2-x
                Point p14 = new Point(140, data_graf_x[13]);// вторая точка  1-y 2-x
                Point p15 = new Point(150, data_graf_x[14]);// вторая точка  1-y 2-x
                Point p16 = new Point(160, data_graf_x[15]);// вторая точка  1-y 2-x
                Point p17 = new Point(170, data_graf_x[16]);// вторая точка  1-y 2-x
                Point p18 = new Point(180, data_graf_x[17]);// вторая точка  1-y 2-x
                Point p19 = new Point(190, data_graf_x[18]);// вторая точка  1-y 2-x
                Point p20 = new Point(200, data_graf_x[19]);// вторая точка  1-y 2-x
                Point p21 = new Point(210, data_graf_x[20]);// вторая точка  1-y 2-x
                Point p22 = new Point(220, data_graf_x[21]);// первая точка
                Point p23 = new Point(230, data_graf_x[22]);// вторая точка  1-y 2-x 1
                Point p24 = new Point(240, data_graf_x[23]);// вторая точка  1-y 2-x 2
                Point p25 = new Point(250, data_graf_x[24]);// вторая точка  1-y 2-x 3
                Point p26 = new Point(260, data_graf_x[25]);// вторая точка  1-y 2-x
                Point p27 = new Point(270, data_graf_x[26]);// вторая точка  1-y 2-x
                Point p28 = new Point(280, data_graf_x[27]);// вторая точка  1-y 2-x
                Point p29 = new Point(290, data_graf_x[28]);// вторая точка  1-y 2-x
                Point p30 = new Point(300, data_graf_x[29]);// вторая точка  1-y 2-x
     
                Point p31 = new Point(310, data_graf_x[30]);// вторая точка  1-y 2-x
     
                //...
    
                Point p180 = new Point(900, data_graf_y[89]);// вторая точка  1-y 2-x
     
                Point[]  my_point = 
                {
                 p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30,  
                 p31,p32,p33,p34,p35,p36,p37,p38,p39,p40,p41,p42,p43,p44,p45,p46,p47,p48,p49,p50,p51,p52,p53,p54,p55,p56,p57,p58,p59,p60,  
                 p61,p62,p63,p64,p65,p66,p67,p68,p69,p70,p71,p72,p73,p74,p75,p76,p77,p78,p79,p80,p81,p82,p83,p84,p85,p86,p87,p88,p89,p90
                };
     
                Point[] my_point1 = 
                {
                 p91,p92,p93,p94,p95,p96,p97,p98,p99,p100,p101,p102,p103,p104,p105,p106,p107,p108,p109,p110,p111,p112,p113,p114,p115,p116,p117,p118,p119,p120,  
                 p121,p122,p123,p124,p125,p126,p127,p128,p129,p130,p131,p132,p133, p134,p135,p136,p137,p138,p139,p140,p141,p142,p143,p144,p145,p146,p147,p148,p149,p150,  
                 p151,p152,p153,p154,p155,p156,p157,p158,p159,p160,p161,p162,p163,p164,p165,p166,p167,p168,p169,p170,p171,p172,p173,p174,p175,p176,p177,p178,p179,p180
                };

    p180... мама дорогая... Боюсб даже представить, сколько временина это ушло, не говоря про ресурс клавиш ctlr, c и v.

    При попытке добавить хотя бы 100 строк (из 200) пишет "Такой длинный код врядли может быть смешным. Пожалуйста, ограничьтесь сотней строк и 6000 символами."
    Даже забавно

    источник творения
    http://www.cyberforum.ru/csharp-beginners/thread1069910.html

    Psilon, 13 Января 2014

    Комментарии (221)
  4. Си / Говнокод #13187

    +136

    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
    #include <stdio.h>
    #include <math.h>
    
    const double g = 10; // да, 10
    
    int main() {
        double v0; // начальная скорость снаряда в метрах в секунду
        double angle; // угол в градусах относительно плоскости земли
    
        scanf("%lf%lf", &v0, &angle);
    
        angle = angle / 180 * M_PI; // переводим градусы в радианы
    
        /*
            уравнения движения в нашем случае просты:
            x = v0 * t * cos(angle)
            y = v0 * t * sin(angle) - g * t * t / 2
    
            в момент удара о землю y будет равен 0 (по условию задачи)
            из второго уравнения выразим время:
            t = 2*v0*sin(angle)/g
    
            за это время снаряд улетит на v0 * t * cos(angle)
            x = 2 * v0 * v0 * cos(angle) * sin(angle) / g
    
            Формулу можно упростить до v0 * v0 * sin(2*angle) / g
        */
    
        double x = v0 * v0 * sin(2 * angle) / g;
    
        printf("x = %.0lf\n", x);
    
        return 0;
    }

    Референсный код для superhackkiller1997.

    Простейшая задачка о полете снаряда. Ветер и сопротивление воздуха не учитываем. Стрельбы производятся на равнине (т.е. высоту в момент выстрела и в момент попадания в землю считаем одинаковой).

    Входные данные: начальная скорость снаряда (в метрах в секунду), угол относительно плоскости земли (в градусах).
    g принимаем равным 10 м/с².

    Выходные данные: расстояние от пушки, на котором снаряд ударится о землю (в метрах, такой точности будет вполне достаточно).

    Примеры:
    v0 = 200, angle = 45 => x = 4000
    v0 = 200, angle = 30 => x = 3464
    v0 = 200, angle = 90 => x = 0

    Продемонстрируй нам, как бы ты решил эту несложную задачку со своим представлением чисел (не fixed и не float). На входе, как видишь, все числа целые, на выходе тоже.

    bormand, 17 Июня 2013

    Комментарии (221)
  5. Куча / Говнокод #29123

    0

    1. 1
    Просто оффтоп #42

    #12: https://govnokod.ru/27153 https://govnokod.xyz/_27153
    #13: https://govnokod.ru/27159 https://govnokod.xyz/_27159
    #14: https://govnokod.ru/27200 https://govnokod.xyz/_27200
    #15: https://govnokod.ru/27237 https://govnokod.xyz/_27237
    #16: (vanished) https://govnokod.xyz/_27282
    #17: https://govnokod.ru/27319 https://govnokod.xyz/_27319
    #18: https://govnokod.ru/27380 https://govnokod.xyz/_27380
    #19: (vanished) https://govnokod.xyz/_27500
    #20: https://govnokod.ru/27607 https://govnokod.xyz/_27607
    #21: https://govnokod.ru/27951 https://govnokod.xyz/_27951
    #22: https://govnokod.ru/28076 https://govnokod.xyz/_28076
    #23: https://govnokod.ru/28266 https://govnokod.xyz/_28266
    #24: https://govnokod.ru/28373 https://govnokod.xyz/_28373
    #25: https://govnokod.ru/28474 https://govnokod.xyz/_28474
    #26: https://govnokod.ru/28563 https://govnokod.xyz/_28563
    #27: https://govnokod.ru/28645 https://govnokod.xyz/_28645
    #28: (vanished) https://govnokod.xyz/_28664
    #29: https://govnokod.ru/28674 https://govnokod.xyz/_28674
    #30: https://govnokod.ru/28680 https://govnokod.xyz/_28680
    #31: https://govnokod.ru/28688 https://govnokod.xyz/_28688
    #32: https://govnokod.ru/28695 https://govnokod.xyz/_28695
    #33: https://govnokod.ru/28702 https://govnokod.xyz/_28702
    #34: (vanished) https://govnokod.xyz/_28708
    #35: https://govnokod.ru/28715 https://govnokod.xyz/_28715
    #36: https://govnokod.ru/28725 https://govnokod.xyz/_28725
    #37: https://govnokod.ru/28733 https://govnokod.xyz/_28733
    #38: (vanished) https://govnokod.xyz/_28748
    #39: https://govnokod.ru/28758 https://govnokod.xyz/_28758
    #40: https://govnokod.ru/28885 https://govnokod.xyz/_28885
    #41: https://govnokod.ru/29061 https://govnokod.xyz/_29061

    nepeKamHblu_nemyx, 19 Апреля 2025

    Комментарии (220)
  6. Go / Говнокод #27924

    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
    func down(h Interface, i0, n int) bool {
    	i := i0
    	for {
    		j1 := 2*i + 1
    		if j1 >= n || j1 < 0 { // j1 < 0 after int overflow
    			break
    		}
    		j := j1 // left child
    		if j2 := j1 + 1; j2 < n && h.Less(j2, j1) {
    			j = j2 // = 2*i + 2  // right child
    		}
    		if !h.Less(j, i) {
    			break
    		}
    		h.Swap(i, j)
    		i = j
    	}
    	return i > i0
    }

    Какие же интерфейсы в Go скудные, что заставляют разработчиков использовать функции API внутри вспомогательных в пределах одной сущности. Взято из: https://github.com/golang/go/blob/master/src/container/heap/heap.go

    JaneBurt, 06 Января 2022

    Комментарии (220)
  7. Lua / Говнокод #27079

    −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
    ont = love.graphics.newFont("/font/RobotoMono-Regular.ttf",14);
    love.graphics.setFont(font);
    
    box = {
      draw = false;
      }
    function box:cr(d,variant)
      --self.draw = false;
      self.d = d;
      self.var = variant or {};
      table.insert(self.var,">> Quit");
      --table.insert(self.var,">> retry");
      self.str = 0;
      self.v = vector(0,(love.graphics.getHeight()/2)-150);
      self.h = 300;
      self.w = 800;
    end
    
    function box:up(dt)
      
    end
    
    function box:dr()
      if self.draw then
        love.graphics.setColor(0,0,0);
        love.graphics.rectangle("fill",self.v.x,self.v.y,self.w,self.h);
        love.graphics.setColor(1,1,1);
        love.graphics.print(self.d,self.v.x,self.v.y);
        love.graphics.print(self.str,self.v.x,self.v.y+20);
        for k,v in pairs(self.var) do
          if k == self.str then
            --love.graphics.setColor(1,1,1);
            love.graphics.draw(animmouse.img.RMB,self.v.x+font:getWidth(v),self.v.y+200+((k-1)*20))
            love.graphics.setColor(1,1,0);
          else
            love.graphics.setColor(1,1,1);
          end
          love.graphics.print(v,self.v.x,self.v.y+200+((k-1)*20));
         
        end
      end
    end
    
    function box:mw(y)
      if self.draw then
        local lt = #self.var;
        self.str = self.str - y;
        if 1 > self.str then
          self.str = lt;
        elseif lt < self.str then
          self.str = 1;
        end
      end
    end
    
    function box:mp(x,y,b)
      if self.draw then
        if b == 2 then
          if self.str == #self.var then
            self.draw = false
          end
        end
      end
    end

    lalalalallallalalalalallallalalalalallal lalalalalallallalalalalallallalalalalall allalalalalallallalalalalallallalalalala llallalalalalallallalalalalallallalalala lallallalalalalallallalalalalallallalala lalallallalalalalallallalalalalallallala lalalallallalalalalallallalalalalallalla lalalalallallalalalalallallalalalalallal lalalalalallallalalalalallallalalalalall allalalalalallallalalalalallallalalalala llallalalalalallallalalalalallallalalala lallallalalalalallallalalalalallallalala lalallallalalalalallallalalalalallallala lalalallallalalalalallalla

    3oJIoTou_xyu, 03 Ноября 2020

    Комментарии (220)
  8. Куча / Говнокод #23901

    −7

    1. 1
    Ещё один тред обсуждения несбыточного мифического «нового ГК»

    Такие мысли появиласть в результате флеймов с 1024-- и вообще.

    На новом говнокоде вместо модерации должены быть:
    1. Механизм скрыльничества на уровне сайта/api
    2. Как на имиджбордах, все посты и комменты должны подчищаться из базы после определенного скрока давности, чтобы не нужно было вмешательство никаких админов и модераторов. Это хорошо решает проблему любых набегов. Но некоторые посты пользователи могут пометить как важные, которые не следует удалять. Для этого они должны выразить такое желание в явной форме, например, нажимая на кнопку «cохранить». Проблема в том, что ботоводы могут сохранять свои комменты и посты скриптами, поэтому нужно ввести хорошую капчу и какой-то сложно вычислимый DRM, вычисляя который ты приносишь пользу новому ГК в любой форме. Это либо вычисление биткоинов на кошелёк, с которого оплачивается хостинг, либо ещё какая-то форма принесения пользы сообществу. Вот об этом и предлагаю поговорить: в каких формах вообще можно принести пользу ГК, так, чтобы для оценки пользы и подтверждения факта принесения пользы не требовалось вмешательство модераторов и админов?

    Срать в текущих, ещё не умерших разделах, это никак не помешает, но мусор достаточно быстро потрётся и останутся только те комменты, которые сообщество считает полезными. Кроме того, думаю, если спамер окупает свои действия полезной работой по отношению к сайту (например, оплачивает хостинг), он имеет полное право спамить, потому что механизмы скрытия доступны всем из коробки.

    vistefan, 08 Марта 2018

    Комментарии (220)
  9. C++ / Говнокод #12413

    +23

    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
    volatile bool b;
    
    class BoolKeeper
    {
      bool &fb;
    public:
      BoolKeeper(bool &b) 
      {
        while (b);
        b = true;
      }
      ~BoolKeeper ()
      {
        b = false;
      }  
    }
    
    void Thread1
    {
      BoolKeeper ololo(b);
      // что-то делаем
    }
    
    void Thread2
    {
      // что-то делаем
      BoolKeeper ololo(b); 
      // что-то делаем, причём в этом месте нам важен факт, что Thread1 не выполняется
    }

    http://www.gamedev.ru/flame/forum/?id=171558

    LispGovno, 13 Января 2013

    Комментарии (219)
  10. PHP / Говнокод #5012

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $ecapacity = "0";
    if (isset($_POST['ecapacity2'])) {
    	$ecapacity = $_POST['ecapacity1'] . "." . $_POST['ecapacity2'];
    } else {
    	$ecapacity = $_POST['ecapacity1'];
    }
    if ($ecapacity != "--.") {
    	$where = $where + array('e_capacity' => $ecapacity);
    	$where = $where + array('engine' => $ecapacity);
    } else {
    	$where = $where + array('e_capacity' => '0');
    }

    нужно было ввести число с точкой, к чему было вводить два поля ввода разделённых точкой, и два поля в БД float и varchar мне до сих пор не понятно. видимо заборное ЛСД чуваку попалось

    DrFreez, 21 Декабря 2010

    Комментарии (219)
  11. JavaScript / Говнокод #25778

    −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
    // Python
      str = "1,2,3,4,5,6"
      print(str.replace(",", " ")) #1 2 3 4 5 6
    // C# 
      String str = "1,2,3,4,5,6";
      Console.WriteLine(str.Replace(',', ' ')); //1 2 3 4 5 6
    // Java
      String str = "1,2,3,4,5,6";
      System.out.println(str.replace(',',' ')); //1 2 3 4 5 6
    // Javascript
      const str = "1,2,3,4,5,6"
      console.log(str.replace(',', ' ')) //1 2,3,4,5,6

    Почему? А хуй его знает

    bootcamp_dropout, 27 Августа 2019

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