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

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

    +152

    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
    #include "stdafx.h"
    #include "angel.h"
    #include "angelDlg.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    BEGIN_MESSAGE_MAP(CangelApp, CWinApp)
    	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
    END_MESSAGE_MAP()
    
    CangelApp::CangelApp()
    {}
    
    CangelApp theApp;
    
    BOOL CangelApp::InitInstance()
    {
    	InitCommonControls();
    	CWinApp::InitInstance();
    	AfxEnableControlContainer();
    
    	CangelDlg dlg;
    	m_pMainWnd = &dlg;
    	INT_PTR nResponse = dlg.DoModal();
    	if (nResponse == IDOK)
    	{
    		
    	}
    	else if (nResponse == IDCANCEL)
    	{
    		
    	}
    
    	return FALSE;
    }

    Подумаю об этом завтра, ну или когда там?!

    dwinner, 18 Января 2011

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

    +152

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class ListEl{
    public:
    int val;
    ListEl *head;
    ListEl *tail;
    }
    
    class MyList{
    public:
    ListEl *head, *tail;

    Rohanion, 03 Января 2011

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

    +152

    1. 1
    2. 2
    3. 3
    $result = mysql_query ("SELECT f.name, f.category, c.name AS cat_name, f.size, f.datetime, f.filename " .  
                           "FROM ${DB_PREFIX}_files AS f, ${DB_PREFIX}_categories AS c " .
                           "WHERE f.id=$id AND f.category = c.id");

    На момент написания совершенно не подозревал о существовании JOIN'а.

    byss, 27 Декабря 2010

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

    +152

    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
    $src = $_GET["src"];
    $w = $_GET["w"];
    $h = $_GET["h"];
    $q = $_GET["q"];
    $info = pathinfo($src);
    $ext = $info["extension"];
    if($ext == "jpg" or $ext == "jpeg"){
        $img = imagecreatefromjpeg($src);
    }
    else if($ext == "gif"){
        $img = imagecreatefromgif($src);
    }
    else if($ext == "png"){
        $img = imagecreatefrompng($src);
    }
    $x = $w / imagesx($img);
    $y = $h / imagesy($img);
    $k = ($x > $y) ? $y : $x;
    $nw = intval(imagesx($img) * $k);
    $nh = intval(imagesy($img) * $k);
    $img1 = imagecreatetruecolor($nw, $nh);
    // $img1 = imagecreatefromjpeg("bj.jpg");
    imagecopyresampled($img1, $img, 0, 0, 0, 0, $nw, $nh, imagesx($img), imagesy($img));
    header("Content-type: image/jpeg");
    imagejpeg($img1, null, $q);
    imagedestroy($img);
    imagedestroy($img1);

    Кусман отборного калища руки Великого уё... Гудвина =)

    Ice, 23 Декабря 2010

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

    +152

    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
    //CreatorOfBullshit говорит: следите за руками
    void __fastcall TFORM_MENU::pan_newClick(TObject *Sender) //запуск новой игры
    {
      if(fl_sound)sndPlaySound("Data\\Sounds\\push.wav",SND_ASYNC|SND_NODEFAULT);
      tm_showstarthint->Enabled=false;
      pan_cong->Visible=false;
      pan_hider->Visible=false;
      pan_new->Caption="Еще разок";//меняем надпись на кнопке
      pan_new->Hint="Начать новую сборку";
      pan_sign->Color=clBlack;
      lab_timeleft->Caption="00:00";
      lab_timeleft->Hint="...а время течёт, как вода по трубам...";
      tm_gameseconds->Enabled=false; //сначала останавливаем таймер, и после окончания прорисовки стартового поля запускаем его снова
      Label1->Visible=true;
      lab_timeleft->Visible=true;
      game_time_seconds=0;//сброс времени
      game_time_minutes=0;
    
      pb_viewport->Enabled=true;
      for(int i=0;i<128;i++)
      {
        gameplane.recreate();
        if(gameplane.getclosed()<8)
          break;
      }
      game_start_count=gameplane.getclosed();
      gameplane.drawfield();
      lab_per->Caption=IntToStr( (int)( (float)gameplane.getclosed()*100.f/(float)(game_field_width*game_field_height) ) )+"%";
      tm_gameseconds->Enabled=true;  //запускаем таймер
    }
     ...
    //CreatorOfBullshit говорит: "фрагмент из модуля с определениями для класса объекта gameplane" тот самый recreate()
    ...
    void C_GAMEFIELD::recreate()
    {
    /*
      Создаю игровое поле и расположения 
      */
      int i,j;
      for(i=0;i<width;i++)
      {
        for(j=0;j<height;j++)
        {
          pp_field[i][j]=0;
        }//for j
      }//for i
      //определение центральной точки источника воды:
      if( (width&b0001)==0 )
        start_x=(width>>1)-1;
      else
        start_x=(width>>1);
      //_  _  _  _  _  _  _  _  _  _  _  _
      if( (height&b0001)==0 )
        start_y=(height>>1)-1;
      else
        start_y=(height>>1);
      pp_field[start_x][start_y]|=wALWAYSON;//назначение стартовой метки(поднимается флаг)
      crt_crgf();
      checklinkup();
      for(i=0;i<width;i++)for(j=0;j<height;j++)
      {
        pp_mask[i][j]=pp_field[i][j];
      }//for
    }
    ...
    //CreatorOfBullshit говорит: "Теперь проследуем в crt_crgf()"
    void C_GAMEFIELD::crt_crgf() //Соединяет неправильно построеенные трубы 
    { //Проработать мне нужно алгоритм построения!!!
      unsigned __int8 i,j;
      static int brd_right,
                 brd_bottom,
                 bounds;
      crt_setcell(start_x,start_y, TRIPLE);  ///crt_setcell создает трубу, потом тут же ее поворачиваем
      //далее первый шаг построения: сначала создаются совершенно случайные незаконо-
      //мерные ветви, т.е. могут остаться НЕЗАПОЛНЕННЫЕ участки:
      unsigned __int8 startcell=pp_field[start_x][start_y], tryingcell;
      if( (startcell&UP)==UP )
        crt_connect(start_x,start_y-1,DOWN);
      if( (startcell&DOWN)==DOWN )
        crt_connect(start_x,start_y+1,UP);
      if( (startcell&LEFT)==LEFT )
        crt_connect(start_x-1,start_y,RIGHT);
      if( (startcell&RIGHT)==RIGHT )
        crt_connect(start_x+1,start_y,LEFT);
    }
    //CreatorOfBullshit говорит: "Апофеоз говнокодизма - чуть ниже:"
    inline void C_GAMEFIELD::crt_setcell(unsigned __int8 x, unsigned __int8 y, unsigned __int8 pipetype)
    {
      pp_field[x][y]|=pipetype;
      //создаем трубу по заказу и рандумно поворачиваем
      if(random(2))
        rotate_CW(x,y);
      if(random(2))
        rotate_CW(x,y);
      if(random(2))
        rotate_CW(x,y);
    }

    Говнокод написан лично моими руками на первом курсе института. Писал игру в которой нужно поворачивать трубы так чтобы потом по всему игровому полю текла вода. Писал на Буилдере 5.0. Угощайтесь.
    Алсо это не еще не все - там есть фрагмент в котором китайским методом создаются спрайты игровых текстур.
    С:8444

    CreatorOfBullshit, 08 Декабря 2010

    Комментарии (6)
  7. PHP / Говнокод #4295

    +152

    1. 1
    $this->Справочники = null;

    А вроде серьезная система...

    shizzard, 20 Сентября 2010

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

    +152

    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
    bool Pl::load(QString &path){
        if(path.isEmpty()){
            return false;
        }
        QFile file(path);
        if(!file.exists()){
            return false;
        }
        file.open(QIODevice::ReadOnly | QIODevice::Text);
        file.setTextModeEnabled(true);
        if(!file.isOpen()){
            return false;
        }
        QString str;
        QString title;
        while(file.bytesAvailable() > 0){
        str = QString::fromUtf8(file.readLine(1024).trimmed());
            if(str.isEmpty()){
                continue;
            }
            else{
                if(str.at(0) == '#' && title.isEmpty()){
                    if(str.left(10) == "#EXTINF:0,"){
                        title = str.mid(10);
                    }
                    else{
                        title = "";
                    }
                }
            }
            if(this->addTrack(str, title)){
                title = "";
            }
            else{
                QUrl _u(str);
                if(this->addURL(_u, title)){
                    title = "";
                }
            }
        }
        file.close();
        return true;
    }

    Некий кусок кода для парсинга m3u от товарища POPSul

    cutwater, 07 Августа 2010

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

    +152

    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
    98. 98
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    template<typename T> class myVector {
    private:
    	T* data; // Указатель на массив с данными
    	int count; //Кол-во элементов в векторе
    	T maxv, minv; // Максимальный и минимальный элементы
    	void quicksort(T a[], const int& leftarg, const int& rightarg) const // Сортировочка
    	{
    		if (leftarg < rightarg) {
    			T pivotvalue = a[leftarg];
    			int left = leftarg - 1;
    			int right = rightarg + 1;
    			for(;;) {
    
    				while (a[--right] > pivotvalue);
    				while (a[++left] < pivotvalue);
    				if (left >= right) break;
    				T temp = a[right];
    				a[right] = a[left];
    				a[left] = temp;
    			}
    			int pivot = right;
    			quicksort(a, leftarg, pivot);
    			quicksort(a, pivot + 1, rightarg);
    		}
    	}
    public:
    	myVector() : count(0), data(0), maxv(0), minv(0) // Я хз какие дефолтные значения задавать maxv и minv
    	{
    	}
    	~myVector() //Деструктор
    	{
    		if (data)
    			delete [] data;
    	}
    	void operator<<(const T &Value) //Оператор для добавления элемента в вектор
    	{
    		data = (T*)realloc(data, ++count * sizeof(T));
    		data[count-1] = Value;
    		if (maxv < Value) // Чтобы не искать максимальный и минимальный элемент, чекаем значение при добавлении в массив
    			maxv = Value;
    		else 
    			if (minv > Value)
    				minv = Value;
    	}
    	T& operator[](const int &Index)//Оператор [] для доступа по индексу
    	{
    		if (Index >= count) throw 1;
    		return data[Index];
    	}
    	void orderAsc(T *result) const //Сортировка по возрастанию
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    	}
    	void orderDesc(T *result) const
    	{
    		if (!data) throw 1;
    		memcpy(result, data, sizeof(T) * count);
    		quicksort(result, 0, count - 1);
    		int swap, b = count;
    		for(int a = 0; a < --b; a++) {
    			swap = result[a];  result[a] = result[b]; result[b] = swap; 
    		}
    	}
    	T max() const
    	{
    		if (!data) throw 1;
    		return maxv;
    	}
    	T min() const
    	{
    		if (!data) throw 1;
    		return minv;
    	}
    };
    int main()
    {
    	myVector<int> v;
    	for (int i = 0; i < 10; i++)
    		v << rand() % 100; // Заполняем рандомными элементами
    	for (int i = 0; i < 10; i++)
    		printf("%d ", v[i]); // Выводим их
    	printf("\n");
    	int *arr = new int[10];
    	v.orderAsc(arr); //Сортируем по возрастанию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i)); //Выводим результат
    	printf("\n");
    	v.orderDesc(arr); //Сортируем по убыванию
    	for (int i = 0; i < 10; i++)
    		printf("%d ", *(arr + i));//Выводим результат
    	printf("\n%d\n%d", v.max(), v.min()); //Выводим максимальный и минимальный элементы
    	delete [] arr;
    }

    Типа вот внезапно так захотелось создать простейший класс вектора. До STL-ного далеко

    JC_NVKZ, 20 Июля 2010

    Комментарии (11)
  10. JavaScript / Говнокод #3724

    +152

    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
    Map = function() {
        this._entries = new Array();
    }
    
    Map.prototype.containsKey = function(key) {
        return this.getEntry(key)!=null;
    }
    
    Map.prototype.get = function(key) {
        var entry = this.getEntry(key);
        return entry!=null ? entry.value : null;
    }
    
    Map.prototype.put = function(key, value) {
        var entry = this.getEntry(key);
        if (entry!=null) {
            entry.value = value;
        } else {
            entry = new Map.Entry(key, value);
            this._entries[this._entries.length] = entry;
        }
    }
    
    Map.prototype.size = function() {
        return this._entries.length;
    }
    
    Map.prototype.getEntry = function(key) {
        for (var i=0; i<this._entries.length; i++) {
            if (this._entries[i].key==key)
                return this._entries[i];
        }
        return null;
    }
    
    Map.prototype.entries = function() {
        return this._entries;
    }
    
    Map.prototype.keys = function() {
        var result = new Array();
        for (var i=0; i<this._entries.length; i++) {
            result[result.length] = this._entries[i].key;
        }
        return result;
    }
    
    Map.prototype.values = function() {
        var result = new Array();
        for (var i=0; i<this._entries.length; i++) {
            result[result.length] = this._entries[i].value;
        }
        return result;
    }
    
    Map.prototype.addAll = function(map) {
        if (map==null)
            return;
        var oe = map.entries();
        for (var i=0; i<oe.length; i++) {
            this.put(oe[i].key, oe[i].value);
        }
    }
    
    Map.prototype.toString = function() {
        return "[Map{size:"+this._entries.length+", entries:"+this._entries+"}]";
    }
    
    Map.Entry = function(key, value) {
        if (arguments.length==0)
            return;
        this.key = key;
        this.value = value;
    }
    
    Map.Entry.prototype.toString = function() {
        return "[Entry{key:"+this.key+", value:"+this.value+"}]";
    }

    То что любой объект и так работает как Map автор видимо не знал.
    Можно было бы предположить, что автор это знал, но написал этот Map для того чтобы использовать произвольные объекты как ключи, однако во всех обнаруженных использованиях этой Map ключами были строки.

    borka, 17 Июля 2010

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

    +152

    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
    $da=0;
    		foreach($_COOKIE as $w=>$e)
    		{
    		if(($e!='') && (substr($w,0,1)=='!')) {$da++;}
    		}
    		if($da==0) {$arResult["ERRORS"][]="Не выбран товар для оформления заказа!";}
    		
    		for($i=2;$i<=2;$i++)
    		{
    		if($i==1) {$str=$_REQUEST["PROPERTY"]["63"]["0"];}
    		if($i==2) {$str=$_REQUEST["PROPERTY"]["67"]["0"];}
    		$e_1=0;
    		$e_2=1;
    		$e_3=0;
    		for($j=0;$j<=strlen($str)-1;$j++)
    		{
    		if(substr($str,$j,1)!=" ") {$e_1=1;}
    		if(substr($str,$j,1)=="." || substr($str,$j,1)==",") {$e_2=0;}
    		}
    		if((int)$str>0) {$e_3=1;}
    		if($e_1==0 || $e_2==0 || $e_3==0) 
    		{
    		if($i==1) {$arResult["ERRORS"][]="Неправильно заполнено поле 'Количество'!";}
    		if($i==2) {$arResult["ERRORS"][]="Неправильно заполнено поле 'Телефон'!";}
    		}

    Круче обфускатора.

    shiz, 24 Июня 2010

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