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

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

    +140

    1. 1
    http://yadi.sk/d/4HDnPUi2MCCRa

    Мисато и говнокод.

    Здесь мы видим пять прототипов WinMain'а подряд, а шестой, который чуть пониже, использует вывод типов сишкофичу int-по-умолчанию...

    P.S. Скорее всего этот пост заминусуют за оффтоп и передачу по ссылке, но я просто не мог не выложить этот снимок ;)

    bormand, 10 Апреля 2014

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

    0

    1. 1
    Бесконечный оффтоп имени Борманда #19

    #1: https://govnokod.ru/25864 https://govnokod.xyz/_25864
    #2: https://govnokod.ru/25921 https://govnokod.xyz/_25921
    #3: https://govnokod.ru/26544 https://govnokod.xyz/_26544
    #4: https://govnokod.ru/26838 https://govnokod.xyz/_26838
    #5: https://govnokod.ru/27625 https://govnokod.xyz/_27625
    #6: https://govnokod.ru/27736 https://govnokod.xyz/_27736
    #7: https://govnokod.ru/27739 https://govnokod.xyz/_27739
    #8: https://govnokod.ru/27745 https://govnokod.xyz/_27745
    #9: https://govnokod.ru/28307 https://govnokod.xyz/_28307
    #10: https://govnokod.ru/28631 https://govnokod.xyz/_28631
    #11: (vanished) https://govnokod.xyz/_28742
    #12: (vanished) https://govnokod.xyz/_28752
    #13: (vanished) https://govnokod.xyz/_28754
    #14: https://govnokod.ru/28759 https://govnokod.xyz/_28759
    #15: https://govnokod.ru/28765 https://govnokod.xyz/_28765
    #16: (vanished) https://govnokod.xyz/_28818
    #17: (vanished) https://govnokod.xyz/_28819
    #18: https://govnokod.ru/28822 https://govnokod.xyz/_28822

    nepeKamHblu_nemyx, 11 Сентября 2023

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

    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
    // https://git.zx2c4.com/BruteZip/tree/read.c?id=e4e9c17b99e0d108136b8a07632b1ebaa7d09d28#n26
    
    int main(int argc, char *argv[])
    {
    	union {
    		long int l;
    		char c[sizeof(long int)];
    	} u;
    	u.l = 1;
    	if (u.c[sizeof(long int) - 1] == 1) {
    		printf("This program only runs on little endian archs, because I'm lazy. Sorry.\n");
    		return -2;
    	}

    Хуйня какая-то. Ведь sizeof(long int) может быть равен sizeof(char).

    Но над такой питушней обычно никто не задумывается

    j123123, 13 Февраля 2019

    Комментарии (223)
  5. 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)
  6. 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)
  7. Си / Говнокод #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)
  8. 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)
  9. 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)
  10. Куча / Говнокод #23901

    −7

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

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

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

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

    vistefan, 08 Марта 2018

    Комментарии (220)
  11. 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)