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

    +167

    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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    <?
    error_reporting(0);
    $b=array("Калининград","Вологда","Далматово","Дмитров","Архангельск","Владивосток","Краков");
    
    //конкурсный код:
    //begin
    for($i=0;$i<7;$i++){$s.="for(\$z[$i]=0;\$z[$i]<7;\$z[$i]++)";$n.="\$z[$i],";$q.="\$b[\$z[$i]],";}$f='for($i=0;$i<7;$i++){$l[$i]=strlen($b[$i])-1;$c[$i]=strtolower($b[$i]);for($j=0;$j<7;$j++)if($i!=$j&&$b[$i][$l[$i]]==strtolower($b[$j][0]))$e[$i]=true;}'.$s.'{$y=array('.$n.');sort($y);if($y==array(0,1,2,3,4,5,6)){$d=true;for($i=0;$i<6;$i++)if($d&&$c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0]&&($e[$z[$i]]||$c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))$d=!$d;if($d)$a=array('.$q.');}}';eval($f);
    //end
    print_r($a);
    
    
    
    echo "<br />";
    echo "<br />";
    
    
    
    //тоже самое в нормальном виде:
    
    for($i=0;$i<7;$i++)
    {
      $l[$i]=strlen($b[$i])-1;
      $c[$i]=strtolower($b[$i]);
      for($j=0;$j<7;$j++)  
      {
        if($i!=$j && $b[$i][$l[$i]]==strtolower($b[$j][0]))
        {
          $ecantUsePrelast[$i] = true;
        }
      }
    };
     
      for($z[0]=0;$z[0]<7;$z[0]++)
        for($z[1]=0;$z[1]<7;$z[1]++)
          for($z[2]=0;$z[2]<7;$z[2]++)
            for($z[3]=0;$z[3]<7;$z[3]++)
              for($z[4]=0;$z[4]<7;$z[4]++)
                for($z[5]=0;$z[5]<7;$z[5]++)
                  for($z[6]=0;$z[6]<7;$z[6]++)
                  {
                    $y=array($z[6],$z[5],$z[4],$z[3],$z[2],$z[1],$z[0]);
                    sort($y);
                    if($y==array(0,1,2,3,4,5,6))
                    {
                      $dcorrect=true;
                      for($i=0;$i<6;$i++)                    
                        if($dcorrect && $c[$z[$i]][$l[$z[$i]]]!=$c[$z[$i+1]][0] && ($ecantUsePrelast[$z[$i]] || $c[$z[$i]][$l[$z[$i]]-1]!=$c[$z[$i+1]][0]))
                          $dcorrect=!$dcorrect;
                      if($dcorrect)
                      {
                        $a=array($b[$z[0]],$b[$z[1]],$b[$z[2]],$b[$z[3]],$b[$z[4]],$b[$z[5]],$b[$z[6]]);
                      }
                    }
                  }    
           
     
    print_r($a);
    
    ?>

    Чтобы немного развеять "академическую" атмосферу на сайте, мы решили провести конкурс в стиле Code Golf (написать программное решение задачи, использовав минимальное количество символов)

    Задание: написать программу для игры «в города».

    На вход подается массив вида

    [Калининград, Вологда, Алматы, Дмитров, Архангельск, Тобольск, Краков]

    На выходе.

    [Архангельск, Краков, Вологда, Алматы , Тобольск, Калининград, Дмитров]

    Запостил: xytop, 26 Мая 2010

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

    • Конкурс проводился тут: http://www.askdev.ru/question/1969/Code-Golf-игра-в-города/
      Ответить
    • А зачем?
      Ответить
      • Маркетинг
        http://stackoverflow.com/questions/tagged/code-golf
        :3
        Ответить
    • конкурсы для PHPистов - кладезь говнокода :)
      Ответить
      • Конкурс конкурсу рознь. Ты сам хоть в одном конкурсе участвовал или акромя пальцем в жопе полазить интересов небывает ??????
        Ответить
        • а по-моему точно подмечено ибо количество говнокодеров на пхп переходит все разумные рамки
          пруф - PHP (915)
          Ответить
        • Дело в том, что PHP программист физически не может написать неговно.
          Ответить
          • доказать обратное?
            Ответить
            • да
              Ответить
              • возможно, позже сделаю свой пхп-фреймворк опенсорсным
                Ответить
                • Позже? Уже после того, как вычистишь оттуда всё говно?
                  Ответить
                  • ну говно сразу старался не делать - хотя уверен, кто-то посмотрит большими глазами и скажет: зачем так делал, ну и говно!
                    просто он еще в этапе тестирования на маленьких проектах, и не все желаемые фишки есть.
                    После чего еще бы хотелось пересмотреть где я перемудрил и нельзя ли оптимизировать еще и ускорить

                    Если полет на парочке серьезных проектов будет нормальным - кину
                    Ответить
                • Почему каждый ПэХаПэ програмист считает своим долгом написать свой фреймворк?
                  Говноворки растут, как грыбы после дождя.
                  Ответить
                  • Лучшеб свою ось склепали. И толку больше было-бы. Хоть сущность бытия бы поняли.
                    Ответить
                  • Потому что под PHP не существует неговеного фреймворка. Сам PHP говно, и все фреймворки под него говно (ибо архитектура языка не подразумевает создания НЕ говна) -- потому каждый пробует написать свое. Но все равно в каждом фреймворке прямо в ядре в однмо файле зашиты куски HTML и SQL. Это карма
                    Ответить
                    • нет, у меня нет в самом фреймворке ни хтмл, ни скул. Зато есть куча классов, максимально независимых друг от друга. А вообще, скажу по опыту, на пехепе оч тяжело писать что-то неговнистое - все же в самом начале подразумевалось, что на нем будут обезьянки класть кучи говна и это должно быть хорошо
                      Ответить
                    • Количество слов "говно" наводит на мысль, что вы не понимаете о чём говорите.. НО, ведь правда нет приличных фреймворков..
                      Ответить
                      • Количество слов "говно" наводит на мысль, что автор поста хорошо разбирается в говне ( "знаток говна" (с) ), и объясняет что это такое через пример PHP
                        ^_^
                        Ответить
                  • потому что захлебнулся в говне остальных фреймворков. Свой мне дал возможность отдышаться в пхп-говне.
                    И я не пхп-программист, я ява-программист. Волею судеб (дорого обходятся ява-сервера, как оказалось) приходится клепать на ентом пехепе, скорей бы он сдох

                    Поэтому я сделал свою боль в голове и заднице меньше
                    Ответить
                    • >дорого обходятся ява-сервера, как оказалось

                      жабокодер удивлен что жаба жрет ресурсы в три горла? наверное привык что на серваках по 8гб рам и восьмиядерники
                      "волею судеб" бедненького говнокодера заставляют говнякать на пхп вот жалость то! сам то он не может решения принимать на дяденек работать приходитса
                      Ответить
                      • взял было для фриланса жабный тапестри5, так котенок с 128Мб рам за дох с OutOfMemoryException: PermGen space стабильно каждые 24 часа (или около того)

                        выделить 500Мб (опытным путем оказалось что этого хватает выше крыше, сам фреймворк сразу жрал и останавливался в аппетитах где-то на 300Мб) админы сказали платить больше, клиент не согласился

                        пришлось вспоминать детские опыты с пхп, на скорую руку переконвертил и наконец уснул спокойно
                        Ответить
                        • почему было не взять немудацкий язык, например python?
                          Ответить
                          • потому шо педон такое же тормозилово как джава
                            Ответить
                          • питон уже заработал отвращение табами
                            Ответить
                            • А чем плохи табы? Вы что, не делаете отбивки в своих программах?:)

                              На самом деле лучше уж писать на перле и процедурно (вернее модульно): по крайней мере будет в одном, старосишном стиле.

                              А PHP это говнокаша. Знаете, как говорил Черномырдин? "Какую партию не строим -- всё КПСС получается".

                              Так и с PHP -- как ни пиши -- все равно PHPbb/PhpMyADMIN получится.

                              Нет-нет, да и закрадется где -нить echo "<B>$userName</b>";
                              Ответить
                              • делаем, но там и так, как захотим. А тем плохи, что не видны в норм условиях

                                перед пехепе и на перле писали, пока вконец не умучались

                                а че, пхпмайадмин лучшая админилка бд мускула

                                у меня не закрадется по крайней мере это
                                Ответить
                            • херасе - это же крупный плюс синтаксиса питона, как его в минус можно умудриться превратить 0-о
                              вы не любите DRY?
                              Ответить
                  • на башорге было:
                    - Что делают программисты собравшись больше двух?
                    - Пишут свой фреймворк
                    Ответить
                    • Иногда еще шаблонизатор
                      Ответить
                    • нее, я в одиночку ))) я наверное извращенец )))
                      Ответить
                    • Охохо, есть идея насчёт новой спецолимпиады в духе CodeGolf: PHP-фреймворк с минимальным числом символов. Главное задать требования к функциональности - чёткие, чтобы не путаться, и по возможности более простые, чтобы написание заняло относительно немного времени. Хотя всё равно задачка тяжеловесная.
                      Ответить
                      • фреймворк задача нетривиальная и "с минимальным числом символов" применять это тупость для практики. уж лучше другие требования:
                        1. удобный и понятный
                        2. простой, и расширяемый
                        3. быстрый
                        Ответить
                        • У меня такое горькое чувство, что абсолютно все, кто берётся писать PHP-фреймворк, именно такие требования к нему поначалу и определяют...
                          Ответить
                          • а разве сие невозможно?
                            Ответить
                            • По ходу, нет - в PHP, по крайней мере. Здесь очень сложно выбрать между производительностью и качеством кода. Любая быдлогостевуха, где mysql_query() и хардкодный HTML смешаны в равномерный коктейль, в разы сделает по скорости ту же гостевуху, но написанную по-пацански в строгом ООП с MVC-разделением, абстракцией от БД и мультиязычностью. Зато "пацанская" версия будет расширяема и идеологически верна, что при дальнейшем её развитии (если оно, конечно, планируется) даст огромный плюс. К великому сожалению, в PHP узкие места производительности приходятся на самые вкусные и желанные вещи. В других языках это тоже верно, но, имхо, в меньшей степени.
                              Ответить
                              • к сожалению, да. поэтому в треугольнике требований ищем оптимальный вариант
                                Ответить
                              • Человечеству нужен компилятор, переводящий пацанский MVC, продуманые абстракции и прочий кошер в душистый быдлокод.
                                Ответить
                                • У меня примерно те же фантазии - система, которая сама себя профилирует и сама создаёт для каждой ветки карты сайта кэш-файл, содержащий только реально востребованный при отработке данной ветки код. Теоретически можно попробовать наваять. Практически... хе-хе, некогда.
                                  Ответить
                                • процессор практически такой и получает - "виртуально" - т.е. через все трансляторы
                                  Ответить
                • Я видел ваш код не стоит :-( Да и ктому же фреймворки щас не пишут только ленивые.
                  Ответить
            • Не кормил бы. Они надоели с одним и тем же, так и хватит на это вестись.
              Ответить
          • На чем писать дело второе, первым и самым какбы важным делом является алгоритм, схема по которой всё приложение должно работать, а на пхп, с++ или джаве это закодируют не столь важно, так что связи не вижу между пхп и говнокодом.

            ЗЫ Подавляющее большинство крупных сайов на пхп, и очень красиво написаны.
            Ответить
            • Видали мы эти крупные сайты имени Макса Про.
              Ответить
              • facebook.com, vk.com и миллионы других. Или ты хочешь сказать что пхп язык плохой?:)
                Ответить
                • а в индии живёт миллиард человек, стало быть, индия практически лучшая страна на света

                  логика ущербного дауна, ей-богу
                  Ответить
                • вообще если посмотреть, все проекты подобного рода сперва писались тройкой заблёванных волосатых студентов на недоязычке для школоты. не зная, что всё будет так популярно. потом проект расширялся, а полюбившийся язычок и непродуманная негибкая архитектура не позволяли перейти на что-то лучшее.
                  заметь, если проект изначально открывается расчитанным на миллионы, никто его не пишет на пхп.
                  вконтакте вообще верх быдлокодерства, там наверное если перейти на аспнет можно было бы сэкономить на нехуёвом количестве серверов.
                  Ответить
                  • > если перейти на аспнет можно было бы сэкономить на нехуёвом количестве серверов
                    Ананимные иксперты в моём /gk/, блеать...
                    Ответить
                    • хуйли он твой, блядь.

                      пхп тормоз и подделка

                      запомни, хуилка: пхп - для дейтингов, хомепаге и онлайн-магазинов, аспнет - для серьёзных скалабле-приложений.
                      Ответить
                      • Товарищи, вы ошиблись сайтом, проследуйте на Нульчан.
                        Ответить
        • Не ты ли, дружок, запостил говнокод с обфускатором, не поняв, что это такое?
          Вот ты и есть наглядное пособие интелектуальной импотенции PHPистов.
          Ответить
    • это победитель?
      причем опять магическая семерка
      Ответить
    • Говнокод в error_reporting(0)
      Ответить
      • спасибо КО.
        а зачем он там? без него что бы посыпалось (для данного кода?)
        Ответить
        • Ребята, не поднимайте бульки.
          Говнокод не только в репортинге.
          Говнокод в туевом количестве циклов,
          Говнокод в том, что циклы заточены под конкретное число городов (хотя их может быть сколько угодно)
          Говнокод в том, как происходит проверка на правильность
          Говнокод в том, что есть решения этого задания на ПХП, занимающие меньше 100 символов.
          Надеюсь, меня поняли.
          Ответить
        • Увы, это не очевидно, как и то, что скрипт использует short open tags, которые с самого начала считались дурным тоном и в итоге были исключены из 6-го php.

          Про error_reporting(0): "в новой версии мы избавились от назойливых php-варнингов". View source показал, как именно избавились :-)
          Ответить

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