1. Список говнокодов пользователя TarasB

    Всего: 95

  2. Pascal / Говнокод #12544

    +106

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for j := Low(Matrix) to High(Matrix) do begin
        Caption := 'Processing ' + IntToStr(j) + ' of ' + IntToStr(High(Matrix));
        for i := Low(Matrix[j]) to High(Matrix[j]) do begin
            SendMessage(PictureWindow, WM_MOUSEMOVE, 0, MakeLPARAM(i,j));
            S := GetCaption(TemperatureWindow);
            Matrix[j,i].V := StrToFloat(S);
        end;
    end;

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

    TarasB, 06 Февраля 2013

    Комментарии (3)
  3. Pascal / Говнокод #12472

    +98

    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
    Сижу такой набираю код
    
    program Project6;
    
    {$APPTYPE CONSOLE}
    var i,j: integer;
    
    begin
      repeat
        readln(j);
        i := 0;
        if (j=0) then
          i := 1
        else
          break;
        Writeln(i);
      until false;
    end.
    [Hint] : Value assigned to 'i' never used
    
    Ну ладно, похер, уберу
    
    program Project6;
    
    {$APPTYPE CONSOLE}
    var i,j: integer;
    
    begin
      repeat
        readln(j);
       // i := 0;
        if (j=0) then
          i := 1
        else
          break;
        Writeln(i);
      until false;
    end.
    [Warning] : Variable 'i' might not have been initialized
    
                                                                                    
                                                                                    
                                                                                    
                                                                                    
                                 _________________                                  
                     g@@@@@44444*********9444@@@@@@@@@@@Mggg__                      
                   g@M"         _an**"""""""**Vw=G______"%%@@@@@gg_                 
                 ,@@`        a^"  __a=~v-vvv~~,___         _____`"*@gg_             
                a@@       _M" _m*"` _______     `""""""""""`    "   "9@g_           
                @@      a" ,m"_ar*"'`     -,         ,amv****-~,       9@g          
               @@        .* u"              C         ,~        "\       @          
              d@           '    __gg____              `                  @y         
             g@             ,g@@@@@@@@4@@gg_          C   ______         9@g        
           g@@.>~.     __  a@""@@@@@@__  "9@g         ,g@@@@**4@@_        "@g_      
         g@"$-*"""     *Y, @@@@*""**4@@@g__$@C     ggg@@@@@@@@@@*" "'" ""Mg`8@g     
       g@",`  ,g@@@@@@@g_       _g@     ""@M"      `"@@"                *n_"C"@@    
      g@'    p@"    ,`"@@@ggggg@@"                   8]      ,_  _gM@@@@g ' 'C8@    
      @@    j@     8@_    `"""'                      8@g_    3@g@@@`,  `"    ][@    
      @L    8@  _g@@@@@gg_              _gMMy         "9@g_    `""' 8L       j8@    
      @k    3@ d@@@@   "@@@gg_   *""""" @"``___         '@@g_       @@C  n"  Q@     
      "@C $  9k    @@_    "8@@@@gg_     @g_fM4@@M      g@""" "n.   a@@@  _m*3@"     
       "@g N,      9@@gg_  8@ `""9@@@gg__"         8gg@M        _g@@@d@k   a@%      
        "@@g_'      "@@@@@@@@g_     `"8@@@@ggg____  ""`   ___gg@@@@ 8@@@   @@       
          "@g_       '@g `"@@@@gg__   @L  `"""4@@@@@@@@@@@@@@@@"  @C @@@  3@        
            9@_       `@g  3@"9@@@@@@g@        [@     @@     4@y  @kg@@@  [@        
             9@         8@gd@   '"9@@@@@@@gggggd@gggggd@gggggg@W@@@@@@@@  [@        
              8g         "@@g        @""9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F  [@        
               @g          "@@g_    d@     '""@@@@@@@@@@@@@@@@@@@@@@@$@   3@        
               `@g_          "@@@g_j@'        @C  ``"3@@"""8@""j@'j@g@@   3@        
                 9@g_ ~__ ~._  `"@@@@g_       @C     8@   g@^ p@^ "@@M     @C       
                   "@@g "9m_ "Nq_  "*@@@@ggggg@______@____@@gg@@@@@M"      @L       
                     "9@@g_`"Mm_`"Nq_   """"*4@@@@@@@@@@M@@4*"""'          8k       
                        "9@@g_ ""Mm_"*w__       ~~~~ aaa~~        _/       $@       
                           `"@@gg_  "*WG_"*w~.____          ___am*"    /   [@       
                               "*@@gg    `"*-~<.__         `       __M"    3@       
                                   "9@gg_         `""'** ------**""`       d@       
                                      `"@@ggggg__                        ,d@        
                                          ""9@@@@@gg__                __g@"         
                                                 `""*4@@@@MggggggggM@@@@"           
                                                         `""""""""""'

    TarasB, 24 Января 2013

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

    +21

    1. 1
    angle_in_radians = acos(dot(normalize(o-a), normalize(o-b)));

    Векторы такие сложные, а операции с ними так трудно запомнить, что даже игроделы не могут это сделать.

    TarasB, 20 Января 2013

    Комментарии (237)
  5. Си / Говнокод #12421

    +118

    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
    void dwflt_to_str(DWORD dw, char *pch, int &nsmb)
    {
      DWORD dw_a = dw;
      char ch_a;
      char tbldec[] = "0123456789";
      nsmb = 0;
      if (dw_a == 0) { pch[0] = '0'; nsmb++; goto lab2; }
      while (dw_a != 0)
      {
        pch[nsmb] = tbldec[dw_a%10]; dw_a /= 10; nsmb++;
      }
      dw_a = nsmb/2;
      while (dw_a)
      {
        ch_a = pch[nsmb - dw_a]; pch[nsmb - dw_a] = pch[dw_a - 1]; pch[dw_a - 1] = ch_a; dw_a--;
      }
    lab2:
      pch[nsmb] = 0;
    }
    
    const int n_fr2 = 7; // - эта константа определяет фиксированное число цифр после точки в выводимой строке, представляющей float.
    
    void float_to_str(float flt, char *pchar, int &nsmb)
    {
      int i, deg, ns_int, ns_frac;
      double frac_dbl;
      DWORD dw_f, mant, intg, fract;
      DW_FL f_flt;
      char szfl_int[16], szfl_frac[16];
      f_flt.fl = flt;
      dw_f = f_flt.dw;
      if (dw_f == 0) { pchar[0] = '0'; pchar[1] = '.'; pchar[2] = '0'; pchar[3] = 0; nsmb = 3; return; }
      if (dw_f & 0x80000000) { pchar[0] = '-'; } else { pchar[0] = '+'; }
      deg = int((dw_f & 0x7F800000) >> 23) - 127;
      mant = (dw_f & 0x007FFFFF) | 0x00800000;
      if (deg == 0) { intg = 1; fract = dw_f & 0x007FFFFF; goto lab_1; }
      if (deg > 0) { intg = mant >> (23 - deg); fract = ((dw_f & 0x007FFFFF) << deg) & 0x007FFFFF; goto lab_1; }
      if (deg < 0) { intg = 0; fract = ((dw_f & 0x007FFFFF) | 0x00800000) >> (-deg); }
    lab_1:
      frac_dbl = double(fract)*1.1920928955078125;// 1.1920928955078125 = 10^n_fr2 / 2^23 = 10^7 / 2^23
      fract = (int)frac_dbl;
    
      dwflt_to_str(intg, szfl_int, ns_int);
      nsmb = 1; i = ns_int; while (i) { pchar[i + 1] = szfl_int[i]; i--; } pchar[1] = szfl_int[0];
      nsmb += ns_int; pchar[nsmb] = '.'; nsmb++;
    
      dwflt_to_str(fract, szfl_frac, ns_frac); szfl_frac[n_fr2] = 0;
      i = ns_frac; while (i) { szfl_frac[6 - ns_frac + i] = szfl_frac[i - 1]; i--; }
      i = n_fr2 - ns_frac; while (i) { szfl_frac[i - 1] = '0'; i--; }
    
      i = n_fr2 - 1; while (i) { pchar[nsmb + i] = szfl_frac[i]; i--; } pchar[nsmb] = szfl_frac[0];
      nsmb += n_fr2; pchar[nsmb] = 0;
    }
    void float_to_str_exp(float flt, char *pchar, int &nsmb)
    {
      int i, deg, poli, ns_int, ns_frac, ns_poli;
      double frac_dbl;
      DWORD dw_f, mant, intg, fract;
      DW_FL f_flt;
      char szfl_int[16], szfl_frac[16];
      f_flt.fl = flt;
      dw_f = f_flt.dw;
      if (dw_f == 0) { pchar[0] = '0'; pchar[1] = '.'; pchar[2] = '0'; pchar[3] = 0; nsmb = 3; return; }
      if (dw_f & 0x80000000) { pchar[0] = '-'; } else { pchar[0] = '+'; }
      deg = int((dw_f & 0x7F800000) >> 23) - 127;
      mant = (dw_f & 0x007FFFFF) | 0x00800000;
      if (deg == 0) { intg = 1; fract = dw_f & 0x007FFFFF; goto lab_1; }
      if (deg > 0) { intg = mant >> (23 - deg); fract = ((dw_f & 0x007FFFFF) << deg) & 0x007FFFFF; goto lab_1; }
      if (deg < 0) { intg = 0; fract = ((dw_f & 0x007FFFFF) | 0x00800000) >> (-deg); }
    lab_1:
      frac_dbl = double(fract)*1.1920928955078125;// 1.1920928955078125 = 10^n_fr2 / 2^23 = 10^7 / 2^23
      fract = (int)frac_dbl;
    
      dwflt_to_str(intg, szfl_int, ns_int);
      dwflt_to_str(fract, szfl_frac, ns_frac); szfl_frac[n_fr2] = 0;
      if (intg != 0)
      {
        nsmb = 1; i = ns_int; while (i) { pchar[i + 2] = szfl_int[i]; i--; } pchar[1] = szfl_int[0];
        pchar[2] = '.'; nsmb += ns_int + 1; poli = ns_int - 1;
      }
      else
      {
        i = ns_frac - 1; while (i) { pchar[2 + i] = szfl_frac[i]; i--; } pchar[1] = szfl_frac[0];
        pchar[2] = '.'; nsmb = 3;//nsmb += ns_frac + 1;
        poli = ns_frac - n_fr2 - 1; goto lab_2;
      }
    
      i = ns_frac; while (i) { szfl_frac[6 - ns_frac + i] = szfl_frac[i - 1]; i--; }
      i = n_fr2 - ns_frac; while (i) { szfl_frac[i - 1] = '0'; i--; }
    
      i = n_fr2 - 1; while (i) { pchar[nsmb + i] = szfl_frac[i]; i--; } pchar[nsmb] = szfl_frac[0];
    lab_2:
      nsmb += n_fr2; pchar[nsmb] = 'E';
    
      int_to_str(poli, &pchar[nsmb + 1], ns_poli);
      nsmb += ns_poli + 1; pchar[nsmb] = 0;
    }

    оттуда

    TarasB, 15 Января 2013

    Комментарии (35)
  6. C++ / Говнокод #12316

    +10

    1. 1
    virtual ~T() {}

    нахуя?
    у всех наследников то же самое и наличие чего-либо внутри не предполагается
    Первая ссылка по гуглозапросу "c++ mersenne twister" выдаёт склад оопиозного говнокода:
    http://www.bedaux.net/mtrand/

    TarasB, 19 Декабря 2012

    Комментарии (104)
  7. Pascal / Говнокод #12304

    +82

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var
      u: longint;
     
    begin
      u := $-80000000;
      writeln(u);
    end.

    Жуквери в Дельфи7. Компилируется.

    TarasB, 18 Декабря 2012

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

    +140

    1. 1
    for (size_t i=cnt-1; i<cnt; --i)

    цикол наоборот для типа без знака

    TarasB, 13 Декабря 2012

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

    +25

    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
    template <typename T> struct Pool { static std::vector<T> data; };
    
    std::vector<tbphys::Body> Pool<tbphys::Body>::data;
    std::vector<Ball>         Pool<Ball>        ::data;
    std::vector<Wall>         Pool<Wall>        ::data;
    std::vector<Bat>          Pool<Bat>         ::data;
    std::vector<Brick>        Pool<Brick>       ::data;
    
    template <typename T, typename U> struct List
    {
    	typedef T Head;
    	typedef U Tail;
    };
    
    struct End {};
    
    typedef List<tbphys::Body, List<Brick, List<Bat, List<Ball, List<Wall, End> > > > > Components;
    typedef List<Brick, List<Bat, List<Ball, List<Wall, End> > > > DrawableComponents;
    typedef List<Brick, List<Ball, List<Bat, End> > > MovableComponents;
    
    const size_t badindex = size_t(-1);
    
    struct GameBody
    {
    	size_t self,body,bat,brick,wall,ball;
    
    	template <typename T> size_t& IndexOf ();
    	template <> size_t& IndexOf <tbphys::Body> () {return body;}
    	template <> size_t& IndexOf <Bat  >        () {return bat;}
    	template <> size_t& IndexOf <Brick>        () {return brick;}
    	template <> size_t& IndexOf <Wall >        () {return wall;}
    	template <> size_t& IndexOf <Ball >        () {return ball;}
    
    	template <typename T>
    	T& AddComponent ()
    	{
    		size_t index = Pool<T>::data.size();
    		Pool<T>::data.resize(index+1);
    		T& result = Pool<T>::data[index];
    
    		result.hostIndex = self;	
    		IndexOf<T>() = index;
    		return result;
    	}
    
    	template <typename T> void SetBadIndex ()
    	{
    		IndexOf<T::Head> () = badindex;
    		SetBadIndex<T::Tail> ();
    	}
    	template <> void SetBadIndex <End> () {}
    };

    Сколько тут говнопаттернов крестоблядского крестоязыка?

    TarasB, 22 Октября 2012

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

    +35

    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
    void GetDPI ()
    {
    	jclass c; jmethodID m; jobject o, dm; jfieldID fxdpi, fydpi;
    
    	c = env->FindClass		("android/util/DisplayMetrics");
    	m = env->GetMethodID		(c, "<init>", "()V");
    	dm = env->NewObject		(c, m);
    
    	fxdpi = env->GetFieldID		(c, "xdpi", "F");
    	fydpi = env->GetFieldID		(c, "ydpi", "F");
    
    	c = env->FindClass		("android/app/NativeActivity");
    	m = env->GetMethodID		(c, "getWindowManager", "()Landroid/view/WindowManager;");
    	o = env->CallObjectMethod	(appState->activity->clazz, m);
    
    	c = env->GetObjectClass		(o);
    	m = env->GetMethodID		(c, "getDefaultDisplay", "()Landroid/view/Display;");
    	o = env->CallObjectMethod	(o, m);
    
    	c = env->GetObjectClass		(o);
    	m = env->GetMethodID		(c, "getMetrics", "(Landroid/util/DisplayMetrics;)V");
    	o = env->CallObjectMethod	(o, m, dm);
    
    	xdpi = env->GetFloatField	(dm, fxdpi);
    	ydpi = env->GetFloatField	(dm, fydpi);
    	LOGI("dpi is (%f, %f)", xdpi, ydpi);
    }

    Пишем под ведроид, дёргаем жабьи методы
    На жабе:
    DisplayMetrics d = new DisplayMetrics;
    getWindowManager.getDefaultDisplay.getMe trics(d);
    xdpi=d.xdpi;
    ydpi=d.ydpi;

    TarasB, 27 Сентября 2012

    Комментарии (61)
  11. C# / Говнокод #11726

    +117

    1. 1
    new bool();

    сишарпненько...

    TarasB, 08 Сентября 2012

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