ДействиеСценарий / Говнокод #12060 Ссылка на оригинал

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
  23. 23
  24. 24
  25. 25
//.....
    public final class Random
    {
        static public function _int(min: int, max: int):int
        {
            return min + Math.round( Math.random()*(max - min));
        }
        //.....
        static public function _Bool():Boolean
        {
            return (_int(0, 1) == 1);
        }

        //подброс монеты: орёл
        static public function coinSideEagle(): Boolean
        {
            return _Bool();
        }

        //всё по-честному: решка
        static public function coinSideTail(): Boolean
        {
            return !coinSideEagle();
        }
     }

Запостил: d9k d9k, (Updated )

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

  • Говнокласс и говнометоды. Говно-ориентированное программирование в действии!
    Ответить
  • а кроме Math.random() во флеше более мощных либ нет? (сравниваю с джавой)
    Ответить
  • Неужели никто не заметил мега-багу? Судя по-тому как написан код, человек собирается проверять сторону монеты так:

    if ( r.coinSideEagle() )
       //Ура! Выпал орёл!
    else if ( r.coinSideTail() )
       //Ура! Выпала решка!
    else
      //Ебанный в рот! Это ребро!


    Т.к. методы coinSideEagle и coinSideTail генерируют новые рандомные булёны, то на ребро монета будет становиться очень часто.
    Ответить
    • Там все не так плохо. Там все _значительно_ хуже.

      Из доки на AS'овский Math.random(): "Returns a pseudo-random number n, where 0 <= n < 1."
      Из кода, строка 11: return (_int(0, 1) == 1);

      Видно, что _Bool() всегда возвращает "ложь" или 0. Т.е. на монете всегда выпадает "решка". На ребро она никогда не упадет.
      Ответить
      • > Видно, что _Bool() всегда возвращает "ложь" или 0.
        Так там же Math.round() есть. Так что ничего подобного.
        Ответить
    • нет. человек загадывает "или орёл или решка" и метод вызывается соответственно один раз. но вообще это бред всё и только для узкого класса эмуляторов настольных игр. так что я написал и удалил. и лучше просто проверять на true и false для орла и решки соответственно
      Ответить

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

Семь раз отмерь — один отрежь, guest!

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


    8