Субъективный Си / Говнокод #12757 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
int arrayCount = [itemArray count];
if( currentHeight < 10000 ) {
    currentItemType = random() % arrayCount;
} else if( currentHeight < 50000 ) {
    currentItemType = random() % arrayCount;
} else if( currentHeight < 100000 ) {
    currentItemType = random() % arrayCount;
} else {
    currentItemType = random() % arrayCount;
}

Чем выше горы - тем рандомней сборы.

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

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

  • Что натолкнуло человека, который писал этот код, на такое сверхчитабельное решение? 🙂
    Ответить
    • либо гк, либо для отладки. другого объяснения не может быть. я склоняюсь к первому.
      Ответить
      • Да, скорее гк. А что можно отлаживать таким способом?
        Ответить
        • просто строчка кода на которую можно поставить брякпоинт. альтернатива - брякпоинты с условиями, но они как всегда тормозят немеряно.
          Ответить
  • Для отладки или для заглушки. Наверное, логика должна быть разной для разных значений "currentHeight". А сейчас просто поставили заглушку, потому что пока точно неизвестно, какая именно должна быть формула или константа для соответствующих случаев.
    Ответить
    • Я вас наверное разочарую, но это было в релиз версии игры. Товарищь не знал про srand(time(0)); и arc4random, а хотелось динамической генерации уровней, выкрутился как мог, видимо. И ведь его совсем не смутило что рандом каждый раз совсем не рандом...
      Ответить
      • >Я вас наверное разочарую, но это было в релиз версии игры
        тогда забыл написать todo, не успел исправить к релизу и т.д. я отказываюсь верить, что это нарочно
        Ответить
    • Я-б тоже так подумал, если бы не наткнулся недавно на код коллеги...
      if (prov_tag == PROVIDER_YAHOO) {
        initCampGrid();
        initAdsGrid();
      } elseif (prov_tag == PROVIDER_GOOGLE) {
        initCampGrid();
        initAdsGrid();
      } //...так ещё десяток идентичных, чтобы ура, найти различие:
      ... elseif (prov_tag = PROVIDER_APPNEXUS) {
        initCampGrid();
        initAdsGrid();
        initCreativeGrid();
      }
      Ответить
      • А надо так, да?
        initCampGrid();
        initAdsGrid();
        if (prov_tag = PROVIDER_APPNEXUS)
          initCreativeGrid();
        Ответить
      • > prov_tag = PROVIDER_APPNEXUS
        Это всегда true. Си ошибок не прощает.
        Ответить
        • В том и беда, что человек - уверенный середнячок. Но когда видет подобные "начала" - не пытается это переписать. Там сначала нормально было, 5 провайдеров, все одинакоыве кроме несчастного Яху, для которого первый иф и добавился...
          Ответить
          • Видит*.
            Блин, в хром надо услугу наподобие перевода: автокоррекцию текста на страницах. 🙂 А то так начетаисся фсяких, потом руки сами повторяют...
            Ответить

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

Где здесь C++, guest?!

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


    8