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

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

    +142

    1. 1
    2. 2
    3. 3
    var _0xdb2a=["","\x6A\x6F\x69\x6E","\x72\x65\x76\x65\x72\x73\x65","\x73\x70\x6C\x69\x74"];
    function getCoo2(_0x733fx2,_0x733fx3){
        return _0x733fx2[_0xdb2a[3]](_0xdb2a[0])[_0xdb2a[2]]()[_0xdb2a[1]](_0xdb2a[0])+_0x733fx3}

    Чтобы жизнь маслом ботоводам не казалась. Вот вам загадочка - что здесь происходит?

    kyzi007, 23 Июня 2015

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

    +142

    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
    ### TASK 1
    
    R <- 1.987
    
    toSi <- function (value, molar_mass) {
      return (value * 4190 / molar_mass)
    }
    
    delta <- function (experiment, theory) {
      return((experiment - theory)/experiment*100)
    }
    
    einsteinFormula <- function (t, A, B, D) {
      return(A + B * t + D * t^2)
    }
    
    bennewitzRossner <- function (cv, Cnu, n, m, Cd, q) {
      coeff1 = (3*n-6-m-q)/q
      return(cv + R + 1/2 * m * R + Cnu + coeff1*Cd)
    }
    
    heatCapacity <- function(n, links, t, Anu, Bnu, Dnu, Ad, Bd, Dd, m, M) {
      c_nu <- einsteinFormula(t, Anu, Bnu, Dnu)
      #print(c_nu)
      c_d <- einsteinFormula(t, Ad, Bd, Dd)
      #print(c_d)
      C_rot <- sum(c_nu*links)
      C_bend <- sum(c_d*links)
      q <- sum(links)
      C_kalmol <- bennewitzRossner(3*R, C_rot, n, m, C_bend, q)
      C_br <- toSi(C_kalmol, M)
      return(data.frame(C_kalmol, C_br, C_rot, C_bend))
    }
    
    task11 <- function () {
      t_C6H14 <- c(400, 600, 800)
      n_C6H14 <- 20
      m_C6H14 <- 5
      M_C6H14 <- 86.2
      Cp_C6H14_kalmol <- (3 * n_C6H14 - 2) * R
      #print(Cp_C6H14_kalmol)
      Cp_C6H14_mkt <- toSi(Cp_C6H14_kalmol, M_C6H14)
     # print(Cp_C6H14_mkt)
      Cp_C6H14_exp <- c(1890, 2611, 3159)
      deltaC <- delta(Cp_C6H14_exp, Cp_C6H14_mkt)
      cp_C6H14_1 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        400, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp_C6H14_2 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        600, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp_C6H14_3 <- heatCapacity(
        20, 
        c(5, 14), #Links number
        800, #Temperatures
        c(-1.09, 0.229), c(6*10^-3, -1.224*10^-3), c(-4.495*10^-6, 1.658*10^-6), #A, B, D rotational
        c(0.73, -0.928), c(3.414*10^-3, 3.9*10^-3), c(-2.577*10^-6, -1.324*10^-6), #A, B, D bending
        m_C6H14, 86.2
      )
      cp <- c(cp_C6H14_1$C_br, cp_C6H14_2$C_br, cp_C6H14_3$C_br)
      print(c(cp_C6H14_1$C_rot, cp_C6H14_2$C_rot, cp_C6H14_3$C_rot))
      print(c(cp_C6H14_1$C_bend, cp_C6H14_2$C_bend, cp_C6H14_3$C_bend))
      deltaC_br <- delta(Cp_C6H14_exp, cp)
      #r <- data.frame(t, Cp_C6H14_mkt, Cp_C6H14_exp, cp, deltaC, deltaC_br)
      return(data.frame(t_C6H14, Cp_C6H14_mkt, Cp_C6H14_exp, deltaC, cp, deltaC_br))
    }

    Мой грязный говнокод на R. Решал дз в инст, рассчет теплоемкости дряни по методу -Д-ж-и-г-у-р-д-ы-и-Б-а-р-р-и-А-л-е-б-а-с-о-в-а- Бенневица-Росснера. Шлю в кучу, потому что нет раздела для эрочки :( Особая ржака начинается со строчки №46.

    k1r1ll0v, 23 Июня 2015

    Комментарии (11)
  4. PHP / Говнокод #18381

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    foreach($_REQUEST as $key => &$val) {
    	$val = htmlspecialchars(stripslashes(trim($val)));
    }
    $officeId = intval($_REQUEST["office-id"]);
    $date = $_REQUEST["date"];
    // [...]

    Эпик вин, однозначно

    creamy, 22 Июня 2015

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

    +142

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    float SGammaUIPanel::OnGetGamma() const
    {
      float DisplayGamma = GEngine->DisplayGamma;
      return GEngine ? DisplayGamma : 2.2f;
    }

    Этот и другие прелести из UE в статье https://www.unrealengine.com/blog/how-pvs-studio-team-improved-unreal-engines-code

    makc3d, 22 Июня 2015

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

    +142

    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
    #define ADD_TYPE(type, tname, plname) \
    	int Get ## tname ## LocByName(string name) const\
    	{\
    		assert(MyInterface!=null);\
    		auto index=MyInterface.data->get_id_by_name(name);\
    		assert(index==-1 || MyInterface.data->Structure.Declarations[index].Type==ValueType::tname);\
    		return index;\
    	}\
    	ShaderParameters& Set ## tname (int loc, type val)\
    	{\
    		return Set ## plname (loc, &val, 0, 1);\
    	}\
    	ShaderParameters& Set ## tname (string name, type val)\
    	{\
    		return Set ## tname (Get ## tname ## LocByName(name), val);\
    	}\
    	ShaderParameters& Set ## plname (int loc, const type* vals, ushort first, ushort count)\
    	{\
    		if(loc==-1) return *this;\
    		assert(MyInterface!=null);\
    		update_id=++MyInterface.data->num_updates;\
    		values.Set(loc, vals, first, count);\
    		return *this;\
    	}\
    	ShaderParameters& Set ## plname (string name, const type* vals, ushort first, ushort count)\
    	{\
    		return Set ## plname (Get ## tname ## LocByName(name), vals, first, count);\
    	}\
    	type Get ## tname (int loc, ushort i=0) const\
    	{\
    		if(loc==-1) return type();\
    		return values.Get<type>(loc, i);\
    	}\
    	type Get ## tname (string name, ushort i=0) const\
    	{\
    		return Get ## tname (Get ## tname ## LocByName(name), i);\
    	}
    
    	ADD_TYPE(float, Float, Floats);
    	ADD_TYPE(Math::vec2, Vec2, Vecs2);
    	ADD_TYPE(Math::vec3, Vec3, Vecs3);
    	ADD_TYPE(Math::vec4, Vec4, Vecs4);
    	ADD_TYPE(int, Int, Ints);
    	ADD_TYPE(Math::ivec2, IVec2, IVecs2);
    	ADD_TYPE(Math::ivec3, IVec3, IVecs3);
    	ADD_TYPE(Math::ivec4, IVec4, IVecs4);
    	ADD_TYPE(Math::mat3, Mat3, Mats3);
    	ADD_TYPE(Math::mat4, Mat4, Mats4);
    
    #undef ADD_TYPE

    Вот так в моём движке идёт работа с параметрами шейдеров. Макросы делал, чтобы избежать копипаста. Выглядит ужасно, отлаживать неудобно, но зато использовать удобно. Буду думать, как красиво перевести это на шаблоны, чтобы не потерять удобство использования.

    gammaker, 20 Июня 2015

    Комментарии (0)
  7. C++ / Говнокод #18372

    +142

    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
    template<class T> 
    void KillGorynich()
    {
    	T counter = 1;
    
    	while (true)
    	{
    		T newCount = counter + counter;
    
    		if (newCount > counter)
    		{
    			std::cout << "Отрубил Илья Муромец змею горынчу " << counter << " голов, а на их месте " << newCount << " выросло\n";
    			counter = newCount;
    		}
    		else
    		{
    			std::cout << "Отрубил Илья Муромец змею горынчу " << counter << " голов, и умер змей горыныч\n";
    			char * bits = "";
    
    			switch (sizeof(T) * 8)
    			{
    			case 8:
    				printf("Потому что восьмибитный был\n");
    				break;
    			case 16:
    				printf("Потому что шестнадцатибитный был\n");
    				break;
    			case 32:
    				printf("Потому что тридцатидвухбитный был\n");
    				break;
    			case 64:
    				printf("Потому что шестидесятичетырехбитный был\n");
    				break;
    			}
    
    			break;
    		}
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	setlocale(LC_ALL, "russian");	
     	//KillGorynich<unsigned short>();
     	KillGorynich<unsigned int>();
     	//KillGorynich<unsigned long long>(); 
     	//KillGorynich<long double>();
    	
    	while (!_kbhit());
    	return 0;
    }

    Шаблонизм головного мозга.

    CrazyRussian, 19 Июня 2015

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

    +142

    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
    private DelegateCommand loginCommand;
    
        public string Username { get; set; }
        public string Password { get; set; }
    
    
        public ICommand LoginCommand
        {
            get
            {
                if (loginCommand == null)
                {
                    loginCommand = new DelegateCommand(
                        Login, CanLogin );
                }
                return loginCommand;
            }
        }
    
        private bool CanLogin()
        {
            return !string.IsNullOrEmpty(Username);
        }
    
        private void Login()
        {
            bool result = securityService.IsValidLogin(Username, Password);
    
            if (result) { }
            else { }
        }

    Паблик стринг, чтоб тебя

    Aero, 19 Июня 2015

    Комментарии (0)
  9. Java / Говнокод #18366

    +142

    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
    private boolean get(CharArrayExt szNum, CountryAreaContainer container)  {
            char cCur = 0;
            if(!szNum.isEmpty()) {
                cCur = szNum.charAt(0);
            }
    
            Country lpSettingsCountry = isRemoveNPrefixAfterCC();
    
            if ((cCur != 0) && lpSettingsCountry != null) {
                int iLen = lpSettingsCountry.getNationalPrefix().length();
    
                if ((iLen > 0) && szNum.startsWith(lpSettingsCountry.getNationalPrefix())) {
                    szNum.cut(iLen);
                    cCur = szNum.charAt(0);
                    container.areaOffset = iLen;
                }
            }
    
            if ((cCur != 0) && isNodeExist(cCur)) {
                if(getNode(cCur).get(szNum.cut(1), container)) {
                    return true;
                }
            }
    
            int iCount = items.size();
    
            if (iCount == 1) { //Normally
                NodeItemBase lpItem = items.get(0);
                if (lpItem.isArea()) {
                    container.area = (Area) lpItem;
                }
                container.country = lpItem.getCountry();
                return true;
            } else {
                if (iCount > 1) {
                    for (int i = 0; i < iCount; i++) {
                        NodeItemBase lpItem = items.get(i);
    
                        if (lpItem.isCountry()) {
                            Country lpCountry = (Country) lpItem;
    
                            if (lpCountry.getAreas().size() == 0) {
                                container.country = lpCountry;
                                return true;
                            }
                        }
                    }
                }
            }
    
            return false;
     }

    Кто писал этот код - знайте, Я Вас НЕНАВИЖУ!!!

    zaebalsya, 18 Июня 2015

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

    +142

    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
    void AttachToParser(Parser* pParser)
    {
    	parser=pParser;
    		
    	static const char* const typeNames[]={"ShaderInterface", "ShaderModule", "ShaderModuleType", "ShaderModulePattern", "ShaderTemplate"};
    	typedef void (ShaderGeneratorParser::* StructureProcessor)();
    	static StructureProcessor processors[]={&ShaderGeneratorParser::ProcessShaderInterface, &ShaderGeneratorParser::ProcessShaderModule,
    		&ShaderGeneratorParser::ProcessShaderModuleType, &ShaderGeneratorParser::ProcessShaderModulePattern, &ShaderGeneratorParser::ProcessShaderTemplate};
    
    	for(uint i=0; i<numof(processors); i++)
    	{
    		auto processor=processors[i];
    		ShaderGeneratorParser mycopy=*this;
    		parser->DeclarationBlockParsers.Append(typeNames[i], [mycopy, processor]() mutable {(mycopy.*processor)();});
    	}
    }

    Делаю парсер конфигов для своего игрового движка. Он готов наверное всего на 10% и представлял собой один класс, который уже разросся. Стало неудобно по нему передвигаться. Решил разбить парсер на модули. Это код того, как один из модулей цепляется к основному классу парсера.
    Этот модуль умеет парсить 5 разных блоков, объединённых общим назначением - сборка шейдеров из модулей. За каждый тип блоков отвечает своя функция. Об этом функция и сообщает основному классу.

    Цель такая, чтобы модуль работал даже после удаления самого экземпляра. Для этого пришлось пропихнуть копию экземпляра внутрь std::function. Более нормального способа, чем через лямбду с замканием, я не нашёл.

    gammaker, 18 Июня 2015

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

    +142

    1. 1
    2. 2
    3. 3
    return ("" + ((10 - (acn = "229" + acn)
                            .Select((c, с) => (int)(c - '0') * (с % 2 + 1))
                            .Sum(c => c / 10 + c % 10) % 10) % 10)).Insert(0, acn);

    symon, 18 Июня 2015

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