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

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

    +57

    1. 1
    http://pastebin.ru/IvyLrrEr

    так и живём, реализация "зоопарка" на С++ после прочтения "банды четырёх"

    bitchboy, 10 Декабря 2014

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

    +76

    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
    /**
     * all object cocomponents must be not the same objects in dump - to eliminate strange situations:
     * 
     * @param copySet
     */
    private void createAllNewComplexObjects(HashMap copySet) {
    	if (copySet != null) {
    		for (Iterator i = copySet.keySet().iterator(); i.hasNext();) {
    			Object key = i.next();
    			Object o = copySet.get(key);
    			Object newObject = madeNewObect(o);
    			copySet.put(key, newObject);
    		}
    	}
    }
    
    /**
     * create new instance of the object - if it is of known type. Hashes will bethe same
     * 
     * @param oldObject
     * @return
     */
    private Object madeNewObect(Object oldObject) {
    	if (oldObject instanceof String) {
    		return new String((String) oldObject);
    	}
    	if (oldObject instanceof Point) {
    		return new Point((Point) oldObject);
    	}
    	if (oldObject instanceof Vector2D) {
    		return new Vector2D((Vector2D) oldObject);
    	}
    	if (oldObject instanceof RGBA) {
    		RGBA c = (RGBA) oldObject;
    		return new RGBA(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha());
    	}
    	if (oldObject instanceof Integer) {
    		return new Integer(((Integer) oldObject).intValue());
    	}
    	if (oldObject instanceof Double) {
    		return new Double(((Double) oldObject).doubleValue());
    	}
    	if (oldObject instanceof Boolean) {
    		return new Boolean(((Boolean) oldObject).booleanValue());
    	}
    	if (oldObject instanceof Float) {
    		return new Float(((Float) oldObject).floatValue());
    	}
    
    	if (oldObject instanceof HashMap) {
    		createAllNewComplexObjects((HashMap) oldObject);
    		return oldObject;
    	}
    
    	return oldObject;
    
    }

    В продолжение темы конструктора String(String).

    someone, 05 Декабря 2014

    Комментарии (5)
  4. Си / Говнокод #17245

    +136

    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
    int Sys_FunctionCmp(void *f1, void *f2) {
    
    	int i, j, l;
    	byte func_end[32] = {0xC3, 0x90, 0x90, 0x00};
    	byte *ptr, *ptr2;
    	byte *f1_ptr, *f2_ptr;
    
    	ptr = (byte *) f1;
    	if (*(byte *)ptr == 0xE9) {
    		//Com_Printf("f1 %p1 jmp %d\n", (int *) f1, *(int*)(ptr+1));
    		f1_ptr = (byte*)(((byte*)f1) + (*(int *)(ptr+1)) + 5);
    	}
    	else {
    		f1_ptr = ptr;
    	}
    	//Com_Printf("f1 ptr %p\n", f1_ptr);
    
    	ptr = (byte *) f2;
    	if (*(byte *)ptr == 0xE9) {
    		//Com_Printf("f2 %p jmp %d\n", (int *) f2, *(int*)(ptr+1));
    		f2_ptr = (byte*)(((byte*)f2) + (*(int *)(ptr+1)) + 5);
    	}
    	else {
    		f2_ptr = ptr;
    	}
    	//Com_Printf("f2 ptr %p\n", f2_ptr);
    
    #ifdef _DEBUG
    	sprintf((char *)func_end, "%c%c%c%c%c%c%c", 0x5F, 0x5E, 0x5B, 0x8B, 0xE5, 0x5D, 0xC3);
    #endif
    	for (i = 0; i < 1024; i++) {
    		for (j = 0; func_end[j]; j++) {
    			if (f1_ptr[i+j] != func_end[j])
    				break;
    		}
    		if (!func_end[j]) {
    			break;
    		}
    	}
    #ifdef _DEBUG
    	l = i + 7;
    #else
    	l = i + 2;
    #endif
    	//Com_Printf("function length = %d\n", l);
    
    	for (i = 0; i < l; i++) {
    		// check for a potential function call
    		if (*((byte *) &f1_ptr[i]) == 0xE8) {
    			// get the function pointers in case this really is a function call
    			ptr = (byte *) (((byte *) &f1_ptr[i]) + (*(int *) &f1_ptr[i+1])) + 5;
    			ptr2 = (byte *) (((byte *) &f2_ptr[i]) + (*(int *) &f2_ptr[i+1])) + 5;
    			// if it was a function call and both f1 and f2 call the same function
    			if (ptr == ptr2) {
    				i += 4;
    				continue;
    			}
    		}
    		if (f1_ptr[i] != f2_ptr[i])
    			return qfalse;
    	}
    	return qtrue;
    }

    Хмм...

    gost, 03 Декабря 2014

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

    −124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Попытка
          ТекущийЭлемент = ЭлементыФормы[АктивныйРеквизит];
          ТекущийЭлемент.АктивиризоватьПоУмолчанию();
    Исключение
    КонецПопытки;

    Это прекрасно...
    Автор - кто-то из 1С-Хомнет

    Aleksandr_N, 02 Декабря 2014

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    (strrev "hello")                #=> "olleh"
    (array_sum [array 1 2 3])       #=> 6
    (array-product [array 4 5 6])   #=> 120
    (substring "world" 2)           #=> "rld"

    Теперь ваш Lisp и в PHP: https://github.com/lisphp/lisphp

    volter9, 29 Ноября 2014

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

    +54

    1. 1
    virtual bool    IsUnlockedAll(){bool temp = false;return temp^temp;};

    Код с боевого проекта. Комментариев не будет.

    DlangGovno, 26 Ноября 2014

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

    +53

    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
    const VS_FIXEDFILEINFO* GetFileVersion(PCWSTR name)
    {
    	HMODULE hmod = GetModuleHandle(name);
    	static LPCWSTR a[3] = { RT_VERSION, MAKEINTRESOURCE(1) };
    	PIMAGE_RESOURCE_DATA_ENTRY pirde;
    	PVOID pv;
    	DWORD size;
    
    	return !hmod || 
    		0 > LdrFindResource_U(hmod, a, 3, &pirde) || 
    		0 > LdrAccessResource(hmod, pirde, &pv, &size) ||
    		size < sizeof(VS_FIXEDFILEINFO)
    		? 0 : (VS_FIXEDFILEINFO*)findDWORD((size - sizeof(VS_FIXEDFILEINFO))/sizeof(DWORD) + 1, (PDWORD)pv, 0xfeef04bd);
    }

    zhukas, 17 Ноября 2014

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

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    bool 
     CIBlockElement::Update(...);
    
    // ......
    
    $el = new CIBlockElement;
    
    // ......
    
    $res = $el->Update($PRODUCT_ID, $arLoadProductArray);

    Нынче статический метод вызывается через объект.

    ( Пример из официальной документации Битрикс https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/update.php )

    h0ckeypl4yer, 14 Ноября 2014

    Комментарии (5)
  10. SQL / Говнокод #17060

    −863

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    SELECT *
    	FROM session s
    	WHERE s.platform IS NOT NULL
    	GROUP BY s.user_id
    	HAVING MAX(s.open_utc)

    Но хоть можно понять что сказать пытались, и на том спасибо.

    Lowezar, 03 Ноября 2014

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

    +71

    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
    protected boolean valid_move(int from, int to, int aBoard[], int colorfor) {
      if(plainType(colorfor) == userColor) {
        return (to>=0 && to<=35 && from >=0 && from<=35 && plainType(aBoard[from])==colorfor && aBoard[to]==emptyType 
                && ((from-to == 4 || from-to==5) 
                    || ((from-to == 10 && plainType(aBoard[from-5])==oppositeType(colorfor)) 
                        || (from-to == 8 && plainType(aBoard[from-4])==oppositeType(colorfor))) 
                    || (aBoard[from]==kingType(colorfor) 
                        && ((to-from == 4 || to-from==5) 
                            || ((to-from == 10 && plainType(aBoard[from+5])==oppositeType(colorfor)) 
                                || (to-from == 8 && plainType(aBoard[from+4])==oppositeType(colorfor)))))));
      }
      else {
        return (to>=0 && to<=35 && from >=0 && from<=35 && plainType(aBoard[from])==colorfor && aBoard[to]==emptyType 
                && ((to-from == 4 || to-from==5) 
                    || ((to-from == 10 && plainType(aBoard[from+5])==oppositeType(colorfor)) 
                        || (to-from == 8 && plainType(aBoard[from+4])==oppositeType(colorfor))) 
                    || (aBoard[from]==kingType(colorfor) 
                        && ((from-to == 4 || from-to==5) 
                            || ((from-to == 10 && plainType(aBoard[from-5])==oppositeType(colorfor)) 
                                || (from-to == 8 && plainType(aBoard[from-4])==oppositeType(colorfor))))))); // =)))))
      }
    }

    https://github.com/haiming020/BBS-AKB48/blob/master/src/Checkers.java

    zadrot, 01 Ноября 2014

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