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

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

    +128

    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
    #include "unpacker.h"
    
    Unpacker::Unpacker(char *name) {
        _splitString = new char*[16];
        _ctx = SDL_RWFromFile(name, "rb");
    }
    
    Unpacker::~Unpacker() {
        delete _splitString;
        SDL_RWclose(_ctx);
        SDL_FreeRW(_ctx);
    }
    
    Dir *Unpacker::getDir(char *path) {;
        int index = 1;
        char pth[256];
        char name[80];
        char *str = "";
        if (!path)
            return NULL;
        _split(path);
        SDL_RWseek(_ctx, 2, SEEK_SET);
        pth[0] = '/'; pth[1] = '\0';
        while (_splitString[index]) {    
            Uint16 count;
            Uint32 hash;
            str = _splitString[index];
            hash = _hash(str);
            count = SDL_ReadLE16(_ctx);
            for (int i=0; i<count; i++) {
                Uint32 h;
                Uint32 offset;
                h = SDL_ReadLE32(_ctx);
                offset = SDL_ReadLE32(_ctx);
                if (hash == h) {
                    Uint8 size;
                    Uint32 curPos = SDL_RWtell(_ctx);
                    SDL_RWseek(_ctx, offset, SEEK_SET);
                    SDL_RWread(_ctx, &size, 1, 1);
                    SDL_RWread(_ctx, name, size, 1);
                    name[size] = '\0';
                    if (!strcmp(str, name)) {
                        if (_splitString[index+1]) {
                             strcat(pth, str);
                             strcat(pth, "/");
                        }
                        break;
                    } else {
                        if (i == count-1)
                            return NULL;
                        SDL_RWseek(_ctx, curPos, SEEK_SET);
                    }
                }
            }
            index++;
        }
        Dir *dir = new Dir;
        strcpy(dir->name,  str);
        strcpy(dir->path, pth);
        dir->dirsCount = SDL_ReadLE16(_ctx);
        dir->dirsOffset = SDL_RWtell(_ctx);
        SDL_RWseek(_ctx, dir->dirsCount*8, SEEK_CUR);
        dir->filesCount = SDL_ReadLE16(_ctx);;
        dir->filesOffset = SDL_RWtell(_ctx);
        return dir;
    }
    
    File *Unpacker::getFile(char *path) {
        char pth[256];
        char nm[80];
        int index = 2;
        _split(path);
        if (!_splitString[1])
            return NULL;
        if (_splitString[2]) {
            strcpy(pth, "/");
            strcpy(pth, _splitString[1]);
            strcat(pth, "/");
        } else {
            Dir *dir = getDir("/");
            return getFile(dir, _splitString[1]);
        }
        while (1) {
            if (_splitString[index+1]) {;
                strcat(pth, _splitString[index]);
                strcat(pth, "/");
            } else {
                strcpy(nm, _splitString[index]);
                break;
            }
            index++;
        }

    Нашел у себя на диске - старое творенье, когда я был мал и глуп... Распаковщик архива на своего формата на основе zlib.

    Pythoner, 09 Октября 2013

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

    +116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Кто может посоветовать сайт, на котором стоит потроллить?
    Хочу отточить свои навыки.
    
    З.Ы. Представляю, как скрежещут зубами тарас и борманд. Слово кабальеро - как только кто нибудь посоветует, заминусую топик.
     )

    Флудинг, троллинг и спаминг.

    Stertor, 16 Сентября 2013

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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    $str = preg_replace ( array_keys ( $new ), array_values ( $new ), $str );
    $str = trim ( $str );
    $str = str_replace ( "       ", "_", $str );
    $str = str_replace ( "      ", "_", $str );
    $str = str_replace ( "     ", "_", $str );
    $str = str_replace ( "    ", "_", $str );
    $str = str_replace ( "   ", "_", $str );
    $str = str_replace ( "  ", "_", $str );
    $str = str_replace ( " ", "_", $str );

    develx0, 16 Сентября 2013

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

    +169

    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
    <?php
    
    // ...
    function init_module_laboratory()
    {
        // ... 871 строка глазовыдирающего кода и далее:
    
        /**
         * Дорогой продолжатель развития этого дерьмого приложения,
         * я перед уходом подготовил для тебя много пряников, чтобы
         * тебе не было скучно. Желаю тебе удачного рабочего времени!
         */
        return !!1?!0:(!!1?(!1?!0:(!!!1?!!1:!1)):!1);
    }

    И такое встречаться может

    greevex, 02 Сентября 2013

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

    +11

    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
    for(int i = posX-width, numBlock = 0; i < posX+width; i++)
        {
            for(int j = posY-height; j < posY+height; j++)
            {
            if(worldInfo[i][j] != air){
                switch(worldInfo[i][j])
                {
                case grass:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[0][i];
                break;
                case dirt:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[1][i];
                break;
                case rock:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[2][i];
                break;
                case water:
                    if(j != 35)
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[3][i];
                    else
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[4][i];
                break;
                case sand:
                    for(i = 0; i < 8; i++) tempCoord[numBlock*8+i] = texCoordList[5][i];
                break;
                }
                numBlock++;
                }
            }
        }

    Мое. Долго искал причину краша. Нашел. Если в кратце, тот тут идет присваивание текстурных коррдинат. Я оставлю это здесь, приятного аппетита!

    pelmenka, 24 Августа 2013

    Комментарии (32)
  7. Си / Говнокод #13591

    +124

    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
    bool getDimensionForKey( const char *key, unsigned int *value, config_file_t *config, unsigned int dimension_max, unsigned int object_size )
    {
    	const char *val;
    	
        int size = 0;
    	int sum = 0;
        
    	bool negative = false;
    	bool percentage = false;
    	
        if (getValueForKey(key, &val, &size, config))
    	{
    		if ( size )
    		{
    			if (*val == '-')
    			{
    				negative = true;
    				val++;
    				size--;
    			}
    			
    			if (val[size-1] == '%')
    			{
    				percentage = true;
    				size--;
    			}
    			
    			// convert string to integer
    			for (sum = 0; size > 0; size--)
    			{
    				if (*val < '0' || *val > '9')
    					return false;
    				
    				sum = (sum * 10) + (*val++ - '0');
    			}
    			
    			if (percentage)
    				sum = ( dimension_max * sum ) / 100;
    			
    			// calculate offset from opposite origin
    			if (negative)
    				sum =  ( ( dimension_max - object_size ) - sum );
    			
    		} else {
    			
    			// null value calculate center
    			sum = ( dimension_max - object_size ) / 2;
    			
    		}
    		
    		*value = (uint16_t) sum;
    		return true;
    	}
    	
    	// key not found
        return false;
    }

    Cтригозаврус функодавус ...

    Stealth, 09 Августа 2013

    Комментарии (32)
  8. Куча / Говнокод #13477

    +124

    1. 1
    "(\{\{([#%$])([^:\}]+)(:([^\}]+))?\}\})"

    Регуляркоговно.
    Заменено на

    "(\{\{([#%$])(.+?)(:(.+))?\}\})"

    vistefan, 25 Июля 2013

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

    +161

    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
    </if>
    															</if>
    														</ul>
    													</if>
    												</td>
    												</if>
    											</tr>
    										</if>
    									</foreach>
    								</table>
    							</div>
    						</div>
    						<br />
    					</div>
    				</if>
    			</foreach>
    		</if>
    	</div>

    facepalm

    CheshirskyCode, 08 Июля 2013

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

    +149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    while($menu = mysql_fetch_assoc($q))
    {
    	?>
    	<option value="<?=$menu['id']?>"<?=($id === $menu['id']) ? ' selected="selected"' : ''?>><?=$menu['title']?></option>
    	<?php
    }
    ?>

    Адовейший пиздец наговнокодил сегодня. Ну не люблю я HTML-теги в PHP писать, о шаблонизаторах никогда не слышал

    3Jlou_OguHo4ka, 30 Июня 2013

    Комментарии (32)
  11. Pascal / Говнокод #13260

    +129

    1. 1
    Что за питух мои г-коды удаляет?

    Stertor, 29 Июня 2013

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