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

    Всего: 246

  2. C++ / Говнокод #20087

    +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
    void	Game::Loadlevel(int which){
     stealthloading=0;
    
     if(which==0)Loadlevel((char *)":Data:Maps:map1");
     else if(which==1)Loadlevel((char *)":Data:Maps:map2");
     else if(which==2)Loadlevel((char *)":Data:Maps:map3");
     // [...]
    }
    
    // [Почему (char *)? Да вот же!]
    
    void	Game::Loadlevel(char *name){
     int i,j,k,l,m;
     static int oldlevel;
     int templength;
     float lamefloat;
     int lameint;
      // [...]
    }

    Ебём const машиной Тьюринга. Всё тот же https://hg.icculus.org/icculus/lugaru/file/97b303e79826/Source/GameTick.cpp , прямо-таки сокровищница с говном.

    gost, 27 Мая 2016

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(((player[i].targetanimation!=getupfrombackanim&&player[i].targetanimation!=getupfromfrontanim)||player[i].skeleton.free)&&((player[k].targetanimation!=getupfrombackanim&&player[k].targetanimation!=getupfromfrontanim)||player[k].skeleton.free))
        if(((((findLengthfast(&rotatetarget)>150&&(i!=0&&k!=0))||(findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll/*currentanimation==rabbitkickanim*/&&(i==0||k==0)))&&normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&((i==0||k==0)||((player[i].skeleton.oldfree==1&&k!=0&&animation[player[k].currentanimation].attack==neutral)||(player[k].skeleton.oldfree==1&&i!=0&&animation[player[i].currentanimation].attack==neutral)||(player[i].isFlip()&&!player[i].skeleton.oldfree&&(i==0||k==0))||(player[k].isFlip()&&!player[k].skeleton.oldfree&&(i==0||k==0))||(i==0||k==0))))||((player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&(i==0||k==0)&&(!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree))){
            //If hit by body
            if((i!=0||player[i].skeleton.free)&&(k!=0||player[k].skeleton.free)||(animation[player[i].targetanimation].height==highheight&&animation[player[k].targetanimation].height==highheight)){
                static float gLoc[3];
                // ...

    Не могу не запостить. Кажется, это самый длинный говнокод, что я видел.
    По мотиву #20073, из http://hg.icculus.org/icculus/lugaru/file/97b303e79826/Source/GameTick.cpp .

    PS, на всякий случай поставлю C++ - где-то в недрах второй строчки он наверняка есть.

    gost, 25 Мая 2016

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

    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
    u_long thisIp = htonl(this->sockaddr.sin_addr.S_un.S_addr);
        u_long otherIp = htonl(other.sockaddr.sin_addr.S_un.S_addr);
        u_short thisPort = htons(this->sockaddr.sin_port);
        u_short otherPort = htons(other.sockaddr.sin_port);
    
        // ip1 + port1 < ip2 + port2
        if (thisIp < otherIp)
        {
            if (thisPort <= otherPort)
            {
                return true;
            }
            else
            {
                return ((unsigned)(thisPort - otherPort) < (unsigned)(otherIp - thisIp));
            }
        }
        else
        {
            if (thisPort >= otherPort)
            {
                return false;
            }
            else
            {
                return ((unsigned)(thisIp - otherIp) < (unsigned)(otherPort - thisPort));
            }
        }

    Сравнить IPv4 адрес + порт. Т.е., по сути, (thisIP + thisPort) < (otherIP + otherPort).
    unsigned long long, приди!

    gost, 21 Мая 2016

    Комментарии (23)
  5. PHP / Говнокод #19969

    +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
    foreach(mpqn(mpqw("SELECT * FROM {$conf['db']['prefix']}modules_index", "Список модулей", function($error) use($conf){
    	if(strpos($error, "doesn't exist")){
    		qw(pre("ALTER TABLE {$conf['db']['prefix']}modules RENAME {$conf['db']['prefix']}modules_index"));
    	}else{ pre("Ошибка обработки ошибки", $error); }
    })) as $modules){
    	if(array_search($conf['user']['uname'], explode(',', $conf['settings']['admin_usr'])) !== false) $modules['access'] = 5;
    	$conf['modules'][ $modules['folder'] ] = $modules;
    	$conf['modules'][ $modules['folder'] ]['modname'] = $modules['modname'] = (strpos($_SERVER['HTTP_HOST'], "xn--") !== false) ? mb_strtolower($modules['name'], 'UTF-8') : $modules['folder'];
    	$conf['modules'][ $modules['modname'] ] = &$conf['modules'][ $modules['folder'] ];
    	$conf['modules'][ mb_strtolower($modules['name']) ] = &$conf['modules'][ $modules['folder'] ];
    	$conf['modules'][ $modules['id'] ] = &$conf['modules'][ $modules['folder'] ];
    }

    https://github.com/mpak2/mpak.su/blob/master/index.php
    https://habrahabr.ru/post/283166/ - "Самый простой способ создать сайт"

    gost, 10 Мая 2016

    Комментарии (6)
  6. JavaScript / Говнокод #19939

    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
    function floatToStringPrec(f, precisionDigits)
    {
        var PRECISION = Math.pow(10, precisionDigits);
        
        var integerPart = Math.floor(f);
        var fractionalPart = f % 1;
        if (fractionalPart == 0)
        {
            return integerPart.toString();
        }
        
        var zeroesInFracPart = -Math.log10(fractionalPart);
        if (Math.floor(zeroesInFracPart) == zeroesInFracPart)
        {
            zeroesInFracPart--;
        }
        else
        {
            zeroesInFracPart = Math.floor(zeroesInFracPart);
        }
        
        fractionalPart = Math.round(fractionalPart * PRECISION);
    
        while (fractionalPart % 10 == 0)
        {
             fractionalPart /= 10;
        }
        
        var zeroes = '';
        
        if (zeroesInFracPart > 0)
        {
            zeroes = Array(zeroesInFracPart + 1).join('0');
        }
        
        return integerPart.toString() + '.' + zeroes + fractionalPart.toString();
    }

    Преобразовать плавающего питуха в строку; сохранить не более precisionDigits цифр после запятой (остальные - округлить).

    gost, 05 Мая 2016

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

    +6

    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
    #include <iostream>
        using namespace std;
         
        struct One
        {
          bool operator==(const One &) { cout << "hello from One!" << endl; return true; }
          bool operator==(unsigned int) { cout << "hello from One!" << endl;  return true; }
        };
        One operator "" x( unsigned long long int ) { return One{}; }
        One operator "" xMAGICK( unsigned long long int ) { return One{}; }
         
        int main()
        {
          cout << (0xMAGICK == 0x);
         
          return 0;
        }

    http://ideone.com/gGYFce
    Расширяем множество шестнадцатеричных цифр при помощи UDL
    В C++17 осталось разрешить перегрузку операторов встроенных типов - вот тогда можно будет оторваться по-полной!

    gost, 05 Мая 2016

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

    +3

    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
    public class MyEnglishRadGridLocalizationProvider : RadGridLocalizationProvider
    {
        public override string GetLocalizedString(string id)
        {
            switch (id)
            {
                case RadGridStringId.ConditionalFormattingPleaseSelectValidCellValue: return "Please select valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValue: return "Please set a valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValues: return "Please set a valid cell values";
                case RadGridStringId.ConditionalFormattingPleaseSetValidExpression: return "Please set a valid expression";
                case RadGridStringId.ConditionalFormattingItem: return "Item";
                case RadGridStringId.ConditionalFormattingInvalidParameters: return "Invalid parameters";
                case RadGridStringId.FilterFunctionBetween: return "Between";
                case RadGridStringId.FilterFunctionContains: return "Contains";
                case RadGridStringId.FilterFunctionDoesNotContain: return "Does not contain";
                case RadGridStringId.FilterFunctionEndsWith: return "Ends with";
                case RadGridStringId.FilterFunctionEqualTo: return "Equals";
                case RadGridStringId.FilterFunctionGreaterThan: return "Greater than";
                case RadGridStringId.FilterFunctionGreaterThanOrEqualTo: return "Greater than or equal to";
                case RadGridStringId.FilterFunctionIsEmpty: return "Is empty";
                case RadGridStringId.FilterFunctionIsNull: return "Is null";

    Зачем мне ресурсы и конфиги локализации, у меня нет времени чтобы ебаться с ними!
    Лучше я захардкожу локализацию ещё раз!

    http://docs.telerik.com/devtools/winforms/gridview/localization/localization

    gost, 12 Апреля 2016

    Комментарии (9)
  9. Python / Говнокод #19786

    −47

    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
    NATAL_KEYBOARD = (('1234567890-=',
                       'йцукенгшщзхъ',
                       'фывапролджэээ',
                       'ячсмитьбю.ьб'),
                      ('1234567890-=',
                       'qwertyuiop[]',
                       'asdfghjkl;\'\\',
                       'zxcvbnm,.///'))
    
    def natal_typo(char):
        if not char.isalnum():
            return char
     
        char_lower = char.lower()
        for keyboard in range(len(NATAL_KEYBOARD)):
            for row in range(len(NATAL_KEYBOARD[keyboard])):
                if char_lower in NATAL_KEYBOARD[keyboard][row]:
                    col = NATAL_KEYBOARD[keyboard][row].index(char_lower)
                    if random_bool(0.7):
                        col_new = bounds(0, len(NATAL_KEYBOARD[keyboard][row]) - 1,
                                         col + random.choice([-1, 1]))
                        row_new = row
                    else:
                        col_new = col
                        row_new = bounds(0, len(NATAL_KEYBOARD[keyboard]) - 1,
                                         row + random.choice([-1, 1]))
                    if char.isupper():
                        return NATAL_KEYBOARD[keyboard][row_new][col_new].upper()
                    else:
                        return NATAL_KEYBOARD[keyboard][row_new][col_new]
        return char

    Натализационный ворецианизатор 0.2. Подробности на говнофоруме/viewtopic.php?pid=2372.

    gost, 09 Апреля 2016

    Комментарии (36)
  10. Python / Говнокод #19773

    −48

    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
    def vorec_char(char):
        for i in range(len(vorec_keyboard)):
            if char in vorec_keyboard[i]:
                idx = vorec_keyboard[i].index(char)
                if idx > 0:
                    if idx < len(vorec_keyboard[i]) - 1:
                        if random_bool(0.5):
                            idx -= 1
                        else:
                            idx += 1
                    else:
                        idx -= 1
                else:
                    idx += 1
                    
                y = i
                if y > 0:
                    if y < len(vorec_keyboard) - 1:
                        if random_bool(0.5):
                            y -= 1
                        else:
                            y += 1
                    else:
                        y -= 1
                else:
                    y += 1
                return vorec_keyboard[y][idx]
        return char

    Ворецианизатор текстов: жалкая попытка подражания стилю Мастера Вореций.
    Скачать бесплатно без смс тут http://pastebin.com/EWFTxyC4. По исходнику тоже прошёлся ворецианизатором, да.

    python[4] (мфа:; в ра4пространено русском языке название питбн[5]) — высокоуровневый прог1аммирования назначения2ориентированн4й общего язык на повышение производительностр разработчик и читаемн5ти ядра минималистичен. кода. синтаксис python то в времы же стандартная библио1ек3 большой вкллчает 5ескол0ко объём полезных18ункций.

    python поддерживает 1арадигм программирования чиыле том в структ4р1ое, объектно-бриентированное, чу7кциональное, императи0ное основные и архитектур6ые аспектно-ориенти0оваоное. ч4рты — динамическа памятью,6п9лная управление типизация, обработки автоматическо3 интроспекция исключений, механи9м вычислений поддержка многопоточных удобные и высокоуровневые в данных. код стьуктуры python организовываетс в функции и классы которые объединят2ся в модулр могут (они в очередь объединены свол в быть могут являетыя реализуцией python интерпретатор паке4ы).

    эталон15й поддерживающий cpython используемых больш4оство он п7атфогм[6]. активно распространяетс под счободной лицензией software python позво7яющей license foundation иыпол0зовать его 2 любых приложениях без ограничений включая проприета2ные[7]. есть реализации (с возможностью для jvm msil компиляции) интерпр4таторов (6 возможнн3тью llvm других
    66129т0 21227390 664133 9687736 3858726080 т8237900378 100562 25077

    и предла2а0т pypy компиляции), проект реализацию 25мом python python за2раты измен0ная что6уменьшаео н на я6ык2 и экспериментов0над пос6ановку возможностями.

    gost, 07 Апреля 2016

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

    +8

    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
    template <size_t capacity, bool is_signed>
    class fixed_int
    {	
        // Описание ошибки компиляции в случае использования не поддерживаемой размерности 
        template <int x> struct unsupported_capacity { int i[1/(x-x)]; };
        template <> struct unsupported_capacity<1> {};
        template <> struct unsupported_capacity<2> {};
        template <> struct unsupported_capacity<4> {};
        template <> struct unsupported_capacity<8> {};
    
        // Свойства базовых типов, необходимые для перебора
        template<typename type> struct type_traits;
        template<> struct type_traits <unsigned char> { typedef unsigned char current_type; typedef unsigned short next_type; };
        template<> struct type_traits <unsigned short> { typedef unsigned short current_type; typedef unsigned int next_type; };
        template<> struct type_traits <unsigned int> { typedef unsigned int current_type; typedef unsigned long next_type; };
        template<> struct type_traits <unsigned long> {	typedef unsigned long current_type; typedef unsigned long long next_type; };
        template<> struct type_traits <unsigned long long int> { typedef unsigned long long int current_type;  typedef unsupported_capacity<capacity> next_type; };
        template<> struct type_traits <signed char> { typedef signed char current_type; typedef short next_type; };
        template<> struct type_traits <short> { typedef short current_type; typedef int next_type; };
        template<> struct type_traits <int> { typedef int current_type; typedef long next_type; };
        template<> struct type_traits <long> { typedef long current_type; typedef long long next_type; };
        template<> struct type_traits <long long int> { typedef long long int current_type;  typedef unsupported_capacity<capacity> next_type;};
    
        // Алгоритм выбора типа
        template<typename type, bool> 
        struct type_choice 
        { 
            typedef typename type_traits<type>::current_type std_type; 
        };
        template<typename type> 
        struct type_choice<type, false> 
        { 
            typedef typename type_traits<type>::next_type next_type; 
            typedef typename type_choice<next_type, sizeof(next_type) == capacity>::std_type std_type; 
        };
    
        // Базовый тип для начала подбора
        template <bool is_signed> struct base_type_selector { typedef signed char base_type; };
        template <> struct base_type_selector<false> { typedef unsigned char base_type; };
    
    public:
    
        typedef typename type_choice< typename base_type_selector<is_signed>::base_type, sizeof(base_type_selector<is_signed>::base_type) == capacity >::std_type type;
    
    };

    "Зачем мне нужен stdint.h?
    У меня нет времени, чтобы ебаться с ним!
    Лучше я высру ещё десяток-другой шаблонов!"
    https://habrahabr.ru/post/280542/

    PS,
    Пятая строка - вообще угар.

    gost, 31 Марта 2016

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