1. C++ / Говнокод #3639

    +160

    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
    int S; 
    int A; 
    int random_integer = (rand()%3); 
    cout<<"Skolko vsego palochek\n"; 
    cin>>S; 
    cout<<"Komp zaberaet\n"; 
    S-=random_integer; 
    cout<<s<<"\n";>>A; 
    S-=A; 
    if (S==8) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==7) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==6) S-=1; cout<<"Komp Zaberaet\n"; 
    if (S==4) S-=3; cout<<"Komp Zaberaet\n"; 
    if (S==3) S-=2; cout<<"Komp Zaberaet\n"; 
    if (S==2) S-=1; cout<<"Komp Zaberaet\n"; 
    else 
    if (A==1) S-=3; cout<<"Komp Zaberaet\n"; 
    if (A==2) S-=2; cout<<"Komp Zaberaet\n"; 
    if (A==3) S-=1; cout<<"Komp Zaberaet\n"; 
    cout<<s<<"\n";>>A; 
    if (S<=0) cout<<"Vu proigrali\n"; 
    if (A!=3 && A!=2 && A!=1) cout<<"Mogno tolko ot 1-3 palochek\n";

    Вот такой суровый говнокод я встретил в одном из вопросов ВиО. То что код не рабочий и так понятно.

    Запостил: Ivan0x32, 04 Июля 2010

    Комментарии (38) RSS

    • Мои глаза...
      Ответить
    • >>Мои глаза...
      Komp Zaberaet
      Ответить
      • ovladevaet
        Ответить
        • No snachala nabigaet!
          Ответить
          • Nekenčiu šios kalbos!
            Ответить
            • Накончаю в щи колбасные!
              Ответить
            • Которые?
              Ответить
              • Translit uzhasno zatrudnjajet ponimanije teksta. Kazhetsja, chto tekst napisan na chuzhom jazyke.
                Ответить
                • Мне кажется, дело привычки. Я в свое время много общался транслитом (тяжелое детство, да), СМС-ки, обратно же.
                  Но непривычно, когда другая система кодирования, скажем, я пишу я как ya, и когда вижу ja, глаз режет.
                  Ответить
                  • Главное пользоваться стандартом транслитерации кириллических символов на латинские.
                    Ответить
                    • А мне он не нравится.
                      И я им не пользуюсь:)

                      Вообще, стандарты бывают глупые. Взять хоть то, что у нас в стандарте раскладки запятая набирается с шифтом.
                      Ответить
                      • С шифтом это да. Главное сильно этого не пугаться и не переходить на другую раскладку при вводе этой самой запятой.
                        Ответить
    • > rand()%3

      Стандартный ранд ведь использует линейный конгруэнтный метод? Тогда не лучше ли брать (rand()*3)>>32, вместо взятия по модулю, которое быстро зациклится?
      Ответить
      • Сдвигать int на 32 бита ... да вы шутник.
        Ответить
        • Ну плохо у паскалистов с битами, что поделаешь.
          Ответить
          • Единственно, у кого хорошо с битами, это у бейсболистов.
            Да и то не наверняка.
            Ответить
        • Нужны старшие 32 бита 64-битного результата. Ну к лонг инт надо в одном месте привести.
          Ответить
      • >вместо взятия по модулю, которое быстро зациклится?

        В данном случае лучше всего подходит что-то типа:
        const int rand3=(MAX_RAND+1)/3;
        int result=rand()/rand3;
        Ответить
        • Результат тот же, но лишних операций дохрена.
          А всего-то надо умножить randseed на три (одной командой mul), получить результат в регистрах eax и edx, и вернуть содержимое edx (там старшие 32 бита).
          Ответить
          • >но лишних операций дохрена.
            Чего?
            Одно деление. Где лишние операции? Можно просто сделать одно умножение. Это непроблема.
            const int rand3=3.0/(MAX_RAND+1);
            int result=rand()*rand3;
            Ответить
            • Вещественное умножение, где можно обойтись целым? Фууу.
              Ответить
              • >Вещественное умножение, где можно обойтись целым?
                Ну и ладно. Если что, всё ещё в силе целочисленное деление, написанное выше. Поверь, если будет тормозить под профлаером это место - исправлю.
                Ответить
          • Поясните свой метод с randseed, пожалуйста. Но мне это уже кажется совершенно не переносимым.
            Ответить
            • Отрезок от нуля до 2^32-1 делится на n равных промежутков. Беря (long long int)rand()*n >> 32, мы получаем номер этого промежутка.
              В system.pas загляните, короче.
              Ответить
              • >Отрезок от нуля до 2^32-1
                Я понял к чему ты клонишь. 64 битные числа тоже не так хорошо.
                Да и кто тебе такое сказал, что MAX_RAND = 2^32-1?
                Ответить
                • > 64 битные числа тоже не так хорошо.

                  В плане скорости? Блин, перемножение 32-битных чисел командой mul автоматом даёт 64-битный результат в eax и edx. Нам нужно содержимое edx, всё.
                  Ответить
                  • Вы учитываете лишь одну платформу, да и есть "говнокомпиляторы", дающие не код, а УГ.
                    Ответить
                    • Для говнокомпиляторов проще написать эту функцию на асме.
                      Ответить
                      • Не хотелось бы вас огорчать, но вы идиот.

                        Можете писать свои ранды на ассемблере сколько угодно.

                        Можете даже винду переписать на ассемблере, там же наверняка где-то можно заменить что-то на mul и вытащить результаты из регистров...
                        Ответить
                        • показать все, что скрытоПошёл нахуй, долбоёб. Нахуй ты тут усрался, хули распизделся? Еби отсюда, мудило.
                          Ответить
                          • Давайте жить дружно. ^_^

                            "Все мы потомки макак и предки богов."
                            Ответить
                          • О, красава.

                            Научи как нибудь на досуге инт на 32 бита сдвигать, авось и впрямь пиздато.
                            Ответить
                          • Вообще, слышь, я посмотрел твой трамвайный симулятор и желание сраться отпало как-то. Молодец. Большей частью всякие пидорасы срутся, которые нихуя не могут, а тут даже нормально все.

                            В общем сорики.
                            Ответить
                            • Молодец, так вот в следующий раз не начинай разговор с поста, который:
                              1. Содержит наезд
                              2. Не содержит информации
                              3. Содержим воду.

                              Третий пункт из этих - самый страшный. Помню, я в первом говнокое ругал компилятор Дельфей за то, что он простую операцию скомпилировал как вызов функции, так один мудозвор на 3 огромных поста доказывал, что подпрограммы - это круто, так как они повышают структурность кода, доказывал, что я ненавижу язык, и что все, кто ненавидят язык - мудаки. Зря я его сразу не послал нахуй, всё равно из тех 100 постов, что мы напиздели, ничего полезного не было.
                              Ответить
    • ГовноВиОшечка - такая говно, вио и шечка
      Ответить

    Добавить комментарий