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

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

    +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
    #include <a_samp>
    
    new objects[MAX_OBJECTS];
    
    public OnFilterScriptInit()
    {
    	objects[0] = CreateObject(980, -2491.1276855469, -129.08126831055, 27.397054672241, 0, 0, 90.675659179688);
    	objects[1] = CreateObject(980,-2459.8862304688,-152.13926696777,27.652730941772,0,356,0);
        objects[2] = CreateObject(980,-2446.0773925781,-82.466796875,35.984577178955,0,356,0);
    	return 1;
    }
    
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    	if (strcmp("/garage", cmdtext, true, 10) == 0)
    	{
    		MoveObject(objects[0], -2491.1276855469, -129.08126831055, 20, 2);
    		SetTimer("VTimer", 10000, 0);
    		return 1;
    	}
    	return 0;
    }
    
    forward VTimer();
    public VTimer()
    {
    	MoveObject(objects[0], -2491.1276855469, -129.08126831055, 27.397054672241, 2);
    	return 1;
    }

    smith, 23 Июня 2011

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

    +175

    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
    class BalanceValue
    {
      /* ... */
      BalanceValue( int pFamilyGroupId,
                    int ContractId,
                    int pProfileId,
                    int pSncode,
                    long pPurchaseSeqNo,
                    int pBundledProductId,
                    time_t pCreationDate,
                    time_t pNextresetDate,
                    char pState,
                    double pAggregate,
                    double pCredit,
                    double pInitialCredit,
                    double pReservation,
                    char pColor,
                    double pProrateFactor,
                    int pCurrencyId,
                    int pUomId,
                    time_t pSnapshotDate,
                    unsigned long pSequenceNumber,
                    time_t pValidFrom,
                    time_t pValidTo,
                    int pPricingAlternative,
                    int pCocTariffId,
                    time_t pLastresetDate,
                    double pLateCallAggr );
      /* ... */
      void getAllValues( int&            pContractId,
                         int&            pProfileId,
                         int&            pSncode,
                         long&           pPurchaseSeqNo,
                         int&            pBundledProductId,
                         time_t&         pNextResetDate,
                         char&           pState,
                         double&         pAggregate,
                         double&         pCredit,
                         double&         pInitialCredit,
                         double&         pReservation,
                         char&           pColor,
                         double&         pProRateFactor,
                         int&            pCurrencyId,
                         int&            pUomId,
                         time_t&         pSnapShotDate ,
                         unsigned long&  pSequenceNumber,
                         time_t&         pValidFrom,
                         time_t&         pValidTo,
                         int&            pPricingAlternative,
                         int&            pCocTariffId,
                         time_t&         pLastResetDate,
                         double&         pLateCallAggr );
      /* ... */
    };

    чудо интерфейс. 25 параметров у конструктора, 23 параметров (рефернсы!) у геттера. кто больше?

    ЗЫ как оба реализованы можете сами догадатся. и еще несколько других методов в подобном стиле.
    ЗЗЫ да, есть и нормальные геттеры.
    ЗЗЗЫ нет, другого конструктора нету.
    ЗЗЗЗЫ нет, разнести значение по мелким структурам, более приемлимым человеческому мозгу, народ не догадывается. не наш так сказать стиль. (да, есть естественная групировка параметров по источнику откуда они берутся.)

    Dummy00001, 21 Июня 2011

    Комментарии (13)
  4. Java / Говнокод #6992

    +87

    1. 1
    Boolean.valueOf("1".equals(object[1].toString())?"true":"false"))

    madhead, 18 Июня 2011

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

    −116

    1. 1
    SELECT COUNT(DISTINCT p.productID) as cnt FROM (SELECT DISTINCT p.productID FROM SC_products p AND collection!=2 ) AS p

    мало того, что тут синтаксические ошибки, так еще и суть просто шедевральная

    CRRaD, 16 Июня 2011

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    function date_preobr($date, $ind=0) {
    $date1=substr($date, 8, 2); $date21=substr($date, 5, 2); $date3=substr($date, 0, 4);
    if ($ind==0) $data=$date1.".".$date21.".".$date3;
    elseif ($ind==1) $data=$date1.".".$date21.".".substr($date3, 2, strlen($date3)-2);
    elseif ($ind==2) {switch ($date21) {case "01":$date21="января";break;case "02":$date21="февраля";break;
    case "03":$date21="марта";break;case "04":$date21="апреля";break;case "05":$date21="мая";break;
    case "06":$date21="июня";break;case "07":$date21="июля";break;case "08":$date21="августа";break;
    case "09":$date21="сентября";break;case "10":$date21="октября";break;case "11":$date21="ноября";break;
    case "12":$date21="декабря";break;} $data=$date1." ".$date21." ".$date3;}
    return $data;}

    Были даты, есть дата, будут даты.
    Привожу в первозданном виде.

    De-Luxis, 15 Июня 2011

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

    +70

    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
    import java.util.Random;
    public class A {
    	public static void main(String args[]) {
    		int minimalSuccessTime = Integer.MAX_VALUE;
    		int maximalSuccessTime = Integer.MIN_VALUE;
    		for(int i = 0; i < 10000; i++) {
    			Random rnd = new Random();
    			boolean state = rnd.nextBoolean();
    			final byte prisonersCount = 100;
    			boolean prisoners[] = new boolean[prisonersCount];
    			byte prisonersCounted = 1;
    			int daysPassed = 0;
    			while(true) {
    				daysPassed++;
    				int tmp = rnd.nextInt(prisonersCount);
    				if(tmp == 0) {
    					if(state) {
    						state = false;
    						prisonersCounted++;
    						if(prisonersCounted == prisonersCount) {
    							break;
    						}
    					}
    				} else {
    					if(!state && !prisoners[tmp]) {
    						state = true;
    						prisoners[tmp] = true;
    					}
    				}
    			}
    			if(daysPassed < minimalSuccessTime) {
    				minimalSuccessTime = daysPassed;
    			}
    			if(daysPassed > maximalSuccessTime) {
    				maximalSuccessTime = daysPassed;
    			}
    		}
    		System.out.println("Minimal success time ~= " + minimalSuccessTime/365 + " years!");
    		System.out.println("Maximal success time ~= " + maximalSuccessTime/365 + " years!");
    	}
    }

    One hundred prisoners have been newly ushered into prison. The warden tells
    them that starting tomorrow, each of them will be placed in an isolated cell,
    unable to communicate amongst each other. Each day, the warden will choose
    one of the prisoners uniformly at random with replacement, and place him in
    a central interrogation room containing only a light bulb with a toggle switch.
    The prisoner will be able to observe the current state of the light bulb. If he
    wishes, he can toggle the light bulb. He also has the option of announcing that
    he believes all prisoners have visited the interrogation room at some point in
    time. If this announcement is true, then all prisoners are set free, but if it is
    false, all prisoners are executed.
    The warden leaves, and the prisoners huddle together to discuss their fate.
    Can they agree on a protocol that will guarantee their freedom?

    guest2011, 14 Июня 2011

    Комментарии (13)
  8. JavaScript / Говнокод #6942

    +164

    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
    <script type="text/javascript">
    /* vedomosti mercedes fullscreen second pages */
    var ref=document.referrer;
    var cookie=Get_Cookie('ved_fullscreen2_1');
    if (!cookie && ref!='' && ref!='none' && ref!='blocked' && 'http://'==ref.substring(0,7)) {
    	ref=ref.substring(7);
    	var pos=ref.indexOf('/');
    	var invalid='.vedomosti.ru';
    	if (pos>0) ref=ref.substring(0,pos);
    
    	if (ref.substring( ref.length-invalid.length ) != invalid) {
    		Set_Cookie('ved_cookie_test',1,1);
    		if (Get_Cookie('ved_cookie_test')) {
    			Set_Cookie('ved_fullscreen2_1', 1, 1 * 24 * 3600, '/');
    			document.location.href = 'http://www.vedomosti.ru/var/bansrc/2011/9a6776.html#!'+(document.location.pathname);
    		}
    	}
    }
    </script>

    журнализды из одной пафосной бульварной газетки копят на мерседес

    bugmenot, 13 Июня 2011

    Комментарии (13)
  9. JavaScript / Говнокод #6934

    +164

    1. 1
    2. 2
    // Eolas workaround for IE (Thanks Kurt!)
    		if(jQuery.browser.msie){ this.outerHTML = this.outerHTML; }

    Kurt == К.О.?

    jQuery, 12 Июня 2011

    Комментарии (13)
  10. C# / Говнокод #6924

    +125

    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
    using System.Diagnostics; 
    //
    private static void ResetAdminPass(string NewPass)
    {
        //Create New Process
        Process QProc = new Process();
    
        // Do Something To hide Command(cmd) Window
        QProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        QProc.StartInfo.CreateNoWindow = true;
    
        // Call Net.exe
        QProc.StartInfo.WorkingDirectory = "C:\\windows\\SYSTEM32";
        QProc.StartInfo.FileName = "net.exe";
        QProc.StartInfo.UseShellExecute = false;
        QProc.StartInfo.RedirectStandardError = true;
        QProc.StartInfo.RedirectStandardInput = true;
        QProc.StartInfo.RedirectStandardOutput = true;
    
        // Prepare Command for Exec
        QProc.StartInfo.Arguments = @" user administrator " + NewPass;
        QProc.Start();
    
        // MyProc.WaitForExit();
        QProc.Close();
    }
    //

    http://www.codeproject.com/KB/threads/Reset-Administrator-Pass.aspx
    индусы просто охуительны

    bugmenot, 11 Июня 2011

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

    +92

    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
    var
        CommHandle:integer;
        DCB:TDCB;
        Stat:TComStat;
        Kols,TransMask,Errs:DWord;
        Ovr:TOverlapped;
        s:string;
        i:integer;
    
    {Чтение канала n}
    function ReadChannel(n:integer):string;
    begin
    inc(n,32);                                                                                         //код запроса для прибора (это по спецификации прибора)
    s:=chr(n);                                                                                         //символ запроса
    WriteFile(CommHandle,s[1],length(s),Kols,@Ovr);                   //оправили этот код в прибор
    TransMask:=0;                                                                               //маска любого события в порте
    Ovr.hEvent:=CreateEvent(nil, True, False, nil);                          //хз
    repeat
    if not WaitCommEvent(CommHandle, TransMask, @Ovr) then                                                       //если приём закончен не до конца, то...
      if GetLastError = ERROR_IO_PENDING then WaitForSingleObject(Ovr.hEvent, INFINITE);           //при условии "хз" подождать ещё чуть-чуть
    
    ClearCommError(CommHandle,Errs,@Stat);                                          //скинуть длину байт из буфера порта в переменную Stat
    Kols:=Stat.cbInQue;                                                                                    //выяснить длину символов
    until (Kols=1) or (Kols=14);                                                                        //закончить, если в канале пусто (1) или данные есть (14)
    
    SetLength(s,Kols);                                                                                       //установить переменную s длиной Kols
    ReadFile(CommHandle,s[1],Kols,Kols,@Ovr);                                         //прочитать данные из порта в s, обнулив буфер
    if length(s)=1 then ReadChannel:='Пусто';                                             //дальше просто идёт обработка полученных данных
    if length(s)=14 then ReadChannel:=copy(s,5,7);
    end;
    
    
    
    {Основной код}
    for i:=1 to 60 do Value:=ReadChannel(i);                                         //ПОЛУЧИТЬ ДАННЫЕ ИЗ ПОРТА n

    Имеется прибор с хранением данных в 60 каналах. Связь осуществляется по RS-232.
    Чтобы получить данные, нужно отправить № кода нужного канала. В ответ придут данные этого канала.
    Если канал пустой, то приходит 1 байт, если данные есть, то 14 байт.
    Создана функция ReadChannel(n) с запросом данных из канала n.

    ПРОБЛЕМА:
    Прочитать все 60 каналов удаётся иногда 3 раза, иногда 15 раз. Но обязательно когда-нибудь программа зависнет на
    WaitCommEvent(CommHandle, TransMask, @Ovr), так ничего и не получив из порта.
    Если между командами
    WriteFile и WaitCommEvent
    поставить sleep(50) //9600 бод = 1200 б/с, то бишь 12 мс на 1 байт
    то всё пашет. Но это не дело же привязываться ко времени?
    Как избавиться от зависания на WaitCommEvent, чтобы процесс продолжился?
    Если прибор не получил байт, из-за чего не ответил, как это проверить? "Данных нет уже 0,5 с, значит и не будет; отправлю этот байт ещё раз".

    sbs, 10 Июня 2011

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