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

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if(false || DEBUG)
        {
          System.out.print("analysis: "+Integer.toBinaryString(analysis));
          System.out.println(", "+WalkerFactory.getAnalysisString(analysis));
        }

    Вычурный способ делать комментарии. Пример может и боян, но зато где: в исходниках API Android 2.2 Froyo.

    google-moogle, 04 Декабря 2011

    Комментарии (35)
  3. Си / Говнокод #8650

    +102

    1. 1
    #define HESHELME_BESHELME(x, y) (((x)>0)<<2 | ((y)>0)<<1 | ((x) > ((x)*(y) > 0 ? (y) : -(y))))

    двумерное "квантование" точки

    orion, 26 Ноября 2011

    Комментарии (35)
  4. Куча / Говнокод #8446

    +157

    1. 1
    ГК - Городская Канализация.

    ReallyBugMeNot2, 07 Ноября 2011

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

    +75

    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
    int i128 = 0, i256 =0, i384=0, i512=0, i640=0, i786=0, i896=0, i1024=0, i1152=0, i1280=0, i1408=0, i1536=0;
            for (int index: data) {
                if (index>max) max = index;
                if (min>index) min = index;
                if (0<=index & index<128) i128++;
                else if (128<=index & index<256) i256++;
                else if (256<=index & index<384) i384++;
                else if (384<=index & index<512) i512++;
                else if (512<=index & index<640) i640++;
                else if (640<=index & index<786) i786++;
                else if (786<=index & index<896) i896++;
                else if (896<=index & index<1024) i1024++;
                else if (1024<=index & index<1152) i1152++;
                else if (1152<=index & index<1280) i1280++;
                else if (1280<=index & index<1408) i1408++;
                else if (1408<=index & index<1536) i1536++;

    Считаем количество попаданий index в различные диапазоны значений.

    betastat, 01 Ноября 2011

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

    +183

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    #include "stdafx.h" 
    #include "windows.h" 
    #Define igra
    int main1(int argc, CHAR* argv[]) 
    { 
    ... 
    }
    
    int main2(int argc, CHAR* argv[]) 
    { 
    ... 
    }

    http://www.gamedev.ru/code/forum/?id=19939

    - Нужен выигрыш от двух праоцессоров.
    на двухпроцессорных материнках я могу использовать два mainа чтобы один процессор выполнял
    один мейн а второй второй мейн?или как мне добиться выгоды от двухпроцессоров?
    - конечно, все так и делают. вот я видел в интернете исходники под какой-то 256-процессорный гигант, дык там было сразу 256 майнов.
    - Вообще, имхо, с не консольными приложениями может не работать (на XP точно не работало). Используй WinMain##N.
    - Проверь сначала один main0. Если работает, значит у тебя всего один процессор, либо второй сломан.

    CKrestKrestGovno, 21 Сентября 2011

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

    +79

    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
    ArrayList<String> Stack = new ArrayList<String>(14);
     ArrayList<String> ShuffledStack = new ArrayList<String>(14); 
     
    
    Stack.add(0,"a");
    Stack.add(1,"b");
    Stack.add(2,"c");
    Stack.add(3,"d");
    Stack.add(4,"e");
    Stack.add(5,"f"); 
    Stack.add(6,"e");
    Stack.add(7,"g");
    Stack.add(8,"h");
    Stack.add(9,"j");
    Stack.add(10,"k");
    Stack.add(11,"l");
    Stack.add(12,"o");
    Stack.add(13,"m"); 
     
    int size = Stack.size(); 
     
    while(ShuffledStack.size() != size)
             {
                 int r = (int)(Math.random()*(size));
                       if(!ShuffledStack.contains( Stack.get( r   )))
                           ShuffledStack.add( Stack.get( r   )); 
     
             }

    > Еще более гнетет то что великого старину Доналда Кнута я так и не прочел. Дело в том что там большинство алгоритмов на математических формулах и основаны(бля, меня колбасит от такого)))...

    Источник: http://pyha.ru/forum/topic/3831.0

    TarasB, 02 Августа 2011

    Комментарии (35)
  8. PHP / Говнокод #7346

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($flag == false) {
    
    # на всякий случай
    if (false == true) exit;
    
    include «execute.php»;
    }

    На просторах инета... Какой ещё ВСЯКИЙ СЛУЧАЙ?

    qwert1x, 26 Июля 2011

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

    +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
    function ubiyca() {
    	function pasha() {
    		// убийца паша
    		dead('машу'); // паша убивает машу
    		function masha() {
    			//убийца маша
    		dead('пашу'); // маша убивает пашу
    		}
    	}
    	function dead_ pasha_and_masha() {
    		//убиваем пашу и машу
    		dead('и пашу и машу');
    	}
    }

    Код знакомого, который пытается реализовать могилки на сайте.

    function dead_ pasha_and_masha() {
    //убиваем пашу и машу
    dead('и пашу и машу');
    }

    Получается, что паша и маша убивает пашу и машу? оО

    substr, 21 Июля 2011

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

    +166

    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
    // say this is some existing structure. And we want to use
    // a list. We can tell it that the next pointer
    // is apple::next.
    struct apple {
        int data;
        apple * next;
    };
    
    // simple example of a minimal intrusive list. Could specify the
    // member pointer as template argument too, if we wanted:
    // template<typename E, E *E::*next_ptr>
    template<typename E>
    struct List {
        List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
    
        void add(E &e) {
            // access its next pointer by the member pointer
            e.*next_ptr = head;
            head = &e;
        }
    
        E * head;
        E *E::*next_ptr;
    };
    
    int main() {
        List<apple> lst(&apple::next);
    
        apple a;
        lst.add(a);
    }

    c++ страшный язык :) (часть вторая)

    C++: Pointer to class data member: http://stackoverflow.com/questions/670734/c-pointer-to-class-data-member

    Такие конструкции "E *E::*next_ptr;" без подготовки не осилить.

    Aleskey, 02 Июля 2011

    Комментарии (35)
  11. Assembler / Говнокод #6977

    +180

    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
    ; -------- мув в AX опкода команды UD2 --------
    CODE:004051B0         mov     al, 0Bh
    CODE:004051B2         mov     ah, 0Fh
    CODE:004051B4         xchg    al, ah
    CODE:004051B6         push    eax     ; save opcode
    CODE:004051B7         call    sub_40A1E5
    
    ; -------- вис для отладки --------
    ; если зависли, то найден дубликат (жестко, но надежно :D )
    CODE:0041C676         call    hash_FindWord
    CODE:0041C67B @@dbllock:
    CODE:0041C67B         jnc     @@dbllock ; <- если хэш найден, то висим
    
    ; -------- ну и искомый баг --------
    ; неправильный цикл поиска последнего элемента списка
    CODE:00401698 proc sub_401698
    CODE:00401698         mov     ecx, [dword_42944C]
    CODE:0040169E         jecxz   loc_4016AA
    CODE:004016A0 loc_4016A0:
    CODE:004016A0         mov     ecx, [ecx] ; ecx = next block
    CODE:004016A2         and     ecx, ecx
    CODE:004016A4         jnz     loc_4016A0
    CODE:004016A6         mov     eax, [ecx+8] ; <-- bag: ECX = 0
    CODE:004016A9         retn
    CODE:004016AA loc_4016AA:
    CODE:004016AA         mov     eax, [dword_42A58E]
    CODE:004016AF         retn
    CODE:004016AF endp

    Искал баги в борландовском компиляторе. Нашел немало забавных моментов, три выкладываю.

    DemonId7, 17 Июня 2011

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