1. PHP / Говнокод #14372

    +150

    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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    $up = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".$x."_".($y-1)."_'"));
    $down = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".$x."_".($y+1)."_'"));
    $right = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y)."_'"));
    $left = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y)."_'"));
    $lup = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y-1)."_'"));
    $rup = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y-1)."_'"));
    $rdown = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x+1)."_".($y+1)."_'"));
    $ldown = mysql_fetch_array (mysql_query("SELECT name FROM locations WHERE id='p_".($x-1)."_".($y+1)."_'"));
    if (@$up["name"]) $up = 1; else $up=0;
    if (@$down["name"]) $down = 1;  else $down=0;
    if (@$right["name"]) $right = 1;  else $right=0;
    if (@$left["name"]) $left = 1; else $left=0;
    if (@$lup["name"]) $lup = 1; else $lup=0;
    if (@$rup["name"]) $rup = 1; else $rup=0;
    if (@$rdown["name"]) $rdown = 1;  else $rdown=0;
    if (@$ldown["name"]) $ldown = 1;  else $ldown=0;
    if ($_GET["go_nature"]=='up' and $up==1) $y-=1;
    if ($_GET["go_nature"]=='down' and $down==1) $y+=1;
    if ($_GET["go_nature"]=='left' and $left==1) $x-=1;
    if ($_GET["go_nature"]=='right' and $right==1) $x+=1;
    if ($_GET["go_nature"]=='lup' and $lup==1) $x-=1;
    if ($_GET["go_nature"]=='rup' and $rup==1) $x+=1;
    if ($_GET["go_nature"]=='lup' and $lup==1) $y-=1;
    if ($_GET["go_nature"]=='rup' and $rup==1) $y-=1;
    if ($_GET["go_nature"]=='rdown' and $rdown==1) $x+=1;
    if ($_GET["go_nature"]=='ldown' and $ldown==1) $x-=1;
    if ($_GET["go_nature"]=='rdown' and $rdown==1) $y+=1;
    if ($_GET["go_nature"]=='ldown' and $ldown==1) $y+=1;

    вксняшка

    Запостил: SuperChel, 16 Января 2014

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

    • >вксняшка
      У вас вкус испортился.
      Ответить
    • Это что? Жизнь на PHP + MySQL?
      Ответить
    • мне интересно за что же минусы? Господа минусующие считают это хорошим кодом?
      Ответить
    • а собачки зачем?
      Ответить
    • Ммм.... Прелесть.
      Это как current = ((current+shift+size) % size) на 20 строк расписывать, когда shift равен только 1 или -1
      А последний блок условий так вообще доставляет.

      Для минусующих:
      for (int y = max(0, y-1); y < min(y+1, height); y++)
          for (int x = max(0, x-1); x < min(x+1, width); x++)
              if (x != 0 || y != 0)
              {
                  <обрабатываем направление>
              }
      Ответить
      • выложите как отдельный пост, плюсану адназначна! )))
        Ответить
        • Обоснуйте, почему приведённый в моём комментарии код - гк?
          Ответить
          • функции в условии цикла, выполняющиеся на каждой итерации, когда нет на это причин
            Ответить
            • Чаще всего min и max это не функции, а таки дефайны. И, скорее всего, min и max будут вынесены из цикла компилятором при оптимизации.
              А вот преждевременная оптимизация - зло. +4 строки к коду.

              А вообще да, я хуйню написал в инициализации и условиях )
              Там должны быть координаты текущей точки.
              Ответить
              • > +4 строки к коду
                tell us moar
                Ответить
                • +0 строк к коду
                  for (int i = foo(), imax = bar(); i < imax; ++i)
                  Ответить
                  • Плять. Увольняться и идти на завод на конвейер ><
                    Ответить
                  • У меня этот код выглядел бы так:
                    Field.Window(x-1,y-1,3,3).Fill(MyCoolFunctor());
                    Ответить
                    • > Fill(MyCoolFunctor())
                      Уже в функциональщину подался? :)
                      Ответить
                      • вслед за кармаком
                        Ответить
                      • Нет, это просто конструктор хуйни с перегруженнм оператором ()
                        Ответить
                        • На основе этой, кхм, хуйни со скобками и строится вся крестофункциональщина.
                          Ответить
                          • был бы оператор пробел, можно было бы даже существующими в с++03 средствами уже делать
                            auto a = huskyll f g x;
                            что означало бы f(g(x));
                            Ответить
                            • А если бы был оператор "отсутствующий пробел", то можно было бы вместо x*y писать xy, как и положено в математике
                              Ответить
                              • Тебе в maple.
                                Ответить
                              • не перебарщивай
                                в математике потому то и используются и маленькие, и большие, и греческие, и курсивные, и верхние-нижние индексы, и штрихи-крышечки-стрелочки-подчеркивания, потому что доска всё стерпит
                                попробывали бы они это сделать в мичети крестах!
                                Ответить
                              • А когда буквы кончатся?
                                Ответить
                                • А когда вышеперечисленные буквы кончаются, используются готические (/me содрогнулся от ужаса)
                                  Ответить
                    • MyCoolSphincter()
                      Ответить
            • дополню: старт цикла с "0", когда "0" не обрабатывается. итерация целочисленная, можно смело стартовать с "1" и избавиться от лишнего условия.
              Ответить
        • Гм, вижу, вы таки правы :) Сферический пример в вакууме оказался слишком сферичен.
          Ответить
    • Уже не лаба, но еще не прога.
      Ответить

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