Кресты / Говнокод #3639 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Ivan0x32, (Updated )

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

              • Мне кажется, дело привычки. Я в свое время много общался транслитом (тяжелое детство, да), СМС-ки, обратно же.
                Но непривычно, когда другая система кодирования, скажем, я пишу я как ya, и когда вижу ja, глаз режет.
                Ответить
                • Главное пользоваться стандартом транслитерации кириллических символов на латинские.
                  Ответить
                  • А мне он не нравится.
                    И я им не пользуюсь:)

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

    Стандартный ранд ведь использует линейный конгруэнтный метод? Тогда не лучше ли брать (rand()*3)>>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 постов, что мы напиздели, ничего полезного не было.
                            Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8