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

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int i=0;
    for (i=0;i<2;)
    {cout<<"Enter M takoe 4to Bbl -> m>0 .\n ";
    cin>>M;
    if (M>0)
    i=76;
    }

    Из лабы однокурсника по C++.

    SemenBooxy, 29 Ноября 2010

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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    std::vector<double> WBuffer;
    std::vector<double> CleanWBuffer;
    std::vector<Color> PixelBuffer;
    std::vector<Color> CleanPixelBuffer;
    
    void Scene3D::ClearBuffers()
    {
            const size_t n = static_cast<size_t>(ScreenSize[0] * ScreenSize[1]);
    
            memcpy(&*(WBuffer.begin()), &*(CleanWBuffer.begin()), n * sizeof(*(WBuffer.begin())));
            memcpy(&*(PixelBuffer.begin()), &*(CleanPixelBuffer.begin()), n * sizeof(*(PixelBuffer.begin())));
    }

    Быстрая очистка буферов.
    CleanWBuffer предварительно заполнен 0.0, CleanPixelBuffer предварительно заполнен нужным цветом.

    Можно было воспользоваться std::fill, но оно работает в несколько раз дольше.


    Пришлось так вот лезть в потроха std::vector. Доставляют подряд идущие & и *.

    burdakovd, 12 Ноября 2010

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

    +155

    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
    /**
         * Обновление информации о пользователе
         *
         * @param integer $user_id
         * @param array $data
         * @return Zend_Db_Statement_Pdo
         */
        public function updateProfile($user_id, $data)
        {
            // TODO: сделать человеческую валидацию
            $params = $keys = array();
    
            if ($data['login'] !== NULL) {
                $keys[] = 'u_login = ?';
                $params[] = $data['login'];
            }
    
            if (Zend_Validate::is($data['email'], 'EmailAddress')) {
                $keys[] = 'u_email = ?';
                $params[] = $data['email'];
            }
    
            if ($data['sname'] !== NULL) {
                $keys[] = 'u_sname = ?';
                $params[] = $data['sname'];
            }
    
            if ($data['name'] !== NULL) {
                $keys[] = 'u_name = ?';
                $params[] = $data['name'];
            }
    
            if ($data['fname'] !== NULL) {
                $keys[] = 'u_fname = ?';
                $params[] = $data['fname'];
            }
    
            if ($data['birthdate'] !== NULL) {
                $keys[] = 'u_birthdate = ?';
                $params[] = $data['birthdate'];
            } else {
                $keys[] = 'u_birthdate = NULL';
            }
    
            if ($data['city'] !== NULL) {
                $keys[] = 'u_c_id = ?';
                $params[] = (int) $data['city'];
            }
    
            if ($data['info'] !== NULL) {
                $keys[] = 'u_info = ?';
                $params[] = $data['info'];
            }
    
            if ($data['sign'] !== NULL) {
                $keys[] = 'u_sign = ?';
                $params[] = $data['sign'];
            }
    
            if ($data['sex'] === 'M' OR $data['sex'] === 'F') {
                $keys[] = 'u_sex = ?';
                $params[] = $data['sex'];
            }
    
            if ($data['subscribe'] === 'on' AND ($data['subtype'] === 'T' OR $data['subtype'] === 'H')) {
                $keys[] = 'u_subscribed = ?';
                $params[] = $data['subtype'] === 'T' ? 1 : 2;
            } else {
                $keys[] = 'u_subscribed = ?';
                $params[] = 0;
            }
    
            $sql = 'UPDATE users SET ' . implode(', ', $keys) . ' WHERE u_id = ' . (int) $user_id;
            $query = $this->db->query($sql, $params);
    
            $this->clearUserCache($user_id);
    
            return $query;
        }

    nergal, 26 Августа 2010

    Комментарии (39)
  5. Java / Говнокод #3998

    +115

    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
    static final class Single extends Node {
            Node dup(boolean not) {
                if (not)
                    return new NotSingle(ch);
                else
                    return new Single(ch);
            }
            boolean study(TreeInfo info) {
                info.minLength++;
                info.maxLength++;
                return next.study(info);
            }
    static final class NotSingle extends Node {
            Node dup(boolean not) {
                if (not)
                    return new Single(ch);
                else
                    return new NotSingle(ch);
            }
            boolean study(TreeInfo info) {
                info.minLength++;
                info.maxLength++;
                return next.study(info);
            }
        }
    static final class SingleA extends Node {
            Node dup(boolean not) {
                if (not)
                    return new NotSingleA(ch);
                else
                    return new SingleA(ch);
            }
            boolean study(TreeInfo info) {
                info.minLength++;
                info.maxLength++;
                return next.study(info);
            }
        }
    
        static final class NotSingleA extends Node {
            int ch;
            NotSingleA(int n) {
                ch = ASCII.toLower(n);
            }
            Node dup(boolean not) {
                if (not)
                    return new SingleA(ch);
                else
                    return new NotSingleA(ch);
            }
    
            boolean study(TreeInfo info) {
                info.minLength++;
                info.maxLength++;
                return next.study(info);
            }
        }
    
        static final class Ctype extends Node 
            Node dup(boolean not) {
                if (not) {
                    return new NotCtype(ctype);
                } else {
                    return new Ctype(ctype);
                }
            }
            boolean study(TreeInfo info) {
                info.minLength++;
                info.maxLength++;
                return next.study(info);
            }
        }
    
    далее идут 
    static final class SingleU extends Node {
    static final class NotCtype extends Node {
    static final class NotSingleU extends Node {
    c очевидно какими методами внутри

    суровое ООП, главное что это не школьная поделка, а серъезнейший продукт
    продолжение #3976 #3975 #3940

    3.14159265, 16 Августа 2010

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

    +170

    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
    //Файл teamWorkFile.h:
    static int teamWork(int e)
    {
    #if N==0
    	return 0;
    #elif N==1
    	return Work52(e+1);
    #elif
    	return WorkN(N);
    #endif
    };
    
    //Файл teamWork.h:
    //...
    #define MaxProc 6
    typedef int (*ProcTypeTeamWork)(int e);
    ProcTypeTeamWork Proc[MaxProc]; 
    #define N 0
    #define teamWork ProcName0
    #include "teamWorkFile.h"
    #undef teamWork
    #undef N
    #define N 1
    #define teamWork ProcName1
    #include "teamWorkFile.h"
    #undef teamWork
    #undef N
    int InitMultiProc()
    {
    	Proc[0]=ProcName0;
    	Proc[1]=ProcName1;
    	Proc[2]=ProcName1;
    	Proc[4]=ProcName0;
    	Proc[5]=ProcName1;
    	return 0;
    };
    
    //Файл teamWorkLib.cpp:
    #include "teamWork.h"
    //...
    InitMultiProc();
    ProcTypeTeamWork SuperProc=Proc[5];
    //Дальше в этом файле вызовы в стиле Proc[i](e);, SuperProc(255); и тд...

    Удивительный код состоит из 3х файлов(teamWorkLib.cpp, teamWork.h, teamWorkFile.h), но он того стоит.

    Говногость, 23 Июня 2010

    Комментарии (39)
  7. Java / Говнокод #3528

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    //java.io.Bits
        static void putDouble(byte[] b, int off, double val) {
    	long j = Double.doubleToLongBits(val);
    	b[off + 7] = (byte) (j >>> 0);
    	b[off + 6] = (byte) (j >>> 8);
    	b[off + 5] = (byte) (j >>> 16);
    	b[off + 4] = (byte) (j >>> 24);
    	b[off + 3] = (byte) (j >>> 32);
    	b[off + 2] = (byte) (j >>> 40);
    	b[off + 1] = (byte) (j >>> 48);
    	b[off + 0] = (byte) (j >>> 56);
        }

    остальное содержимое класса в таком же стиле

    3.14159265, 21 Июня 2010

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

    +1001

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    struct Dir {
        Dir(const char* name) {
            d = opendir("/var/log");
        }
        ~Dir();
        const char* next();
        bool operator== (DIR* other);
    private:
        DIR* d;
    };
    ...
    Dir var_log("/var/log");

    evlad, 03 Июня 2010

    Комментарии (39)
  9. PHP / Говнокод #2894

    +185.4

    1. 1
    2. 2
    3. 3
    4. 4
    function epic_die(){
        mysql_close();
        die();
    }

    Автор не я)

    a13ks3y, 29 Марта 2010

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

    +164.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
    <HTML>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
    </meta>
    <BODY>
    <style>
    <? include "style.css"; ?>
    </style>
    <?
    include "menu.php";
    include "main.php";
    ?>
    </BODY>
    </HTML>

    Своеобразный способ подключения стилей)))
    Из ЛС вконтакта.

    Subsanek, 12 Марта 2010

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

    +349.7

    1. 1
    define("_WINDOWS_",file_exists("c:\autoexec.bat") ? TRUE : FALSE);

    :)

    guest, 31 Марта 2009

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