1. Objective C / Говнокод #12757

    −96

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 16 Марта 2013

    Комментарии (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. Си ошибок не прощает.
          Ответить
        • Мне интересно, так junior'ы пишут или кто "моложе"?
          Ответить
          • В том и беда, что человек - уверенный середнячок. Но когда видет подобные "начала" - не пытается это переписать. Там сначала нормально было, 5 провайдеров, все одинакоыве кроме несчастного Яху, для которого первый иф и добавился...
            Ответить
            • Видит*.
              Блин, в хром надо услугу наподобие перевода: автокоррекцию текста на страницах. :) А то так начетаисся фсяких, потом руки сами повторяют...
              Ответить
    • М.б. для последующего запиливания фич для каждого значения?
      Ответить

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