1. ActionScript / Говнокод #12985

    −163

    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
    public function algorithmChanged(arg1:flash.events.Event):*
            {
                var loc1:*;
                loc1 = null;
                if (currentAlgorithm != null)
                    removeChild(currentAlgorithm);
                loc1 = arg1.target.selectedLabel;
                currentAlgorithm = null;
                animationManager.resetAll();
                if (loc1 != "Heap")
                    if (loc1 != "Comparison Sort")
                        if (loc1 != "Counting Sort")
                            if (loc1 != "Bucket Sort")
                                if (loc1 != "Radix Sort")
                                    if (loc1 != "Heap Sort")
                                        if (loc1 != "Binary Search Tree")
                                            if (loc1 != "AVL Tree")
                                                if (loc1 != "Open Hashing")
                                                    if (loc1 != "Closed Hashing")
                                                        if (loc1 != "Graph")
                                                            if (loc1 != "DFS")
                                                                if (loc1 != "BFS")
                                                                    if (loc1 != "Connected Components")
                                                                        if (loc1 != "Dijkstra")
                                                                            if (loc1 != "Prim")
                                                                                if (loc1 != "Kruskal")
                                                                                    if (loc1 != "Topological Sort")
                                                                                        if (loc1 != "Floyd-Warshall")
                                                                                            if (loc1 != "B Tree")
                                                                                                if (loc1 != "Binomial Queue")
                                                                                                    if (loc1 != "Disjoint Sets")
                                                                                                        if (loc1 != "Array Stack")
                                                                                                            if (loc1 != "Array Queue")
                                                                                                                if (loc1 != "Linked List Stack")
                                                                                                                    if (loc1 != "Linked List Queue")
                                                                                                                        if (loc1 != "Red Black Tree")
                                                                                                                            if (loc1 != "Closed Hashing (buckets)")
                                                                                                                                if (loc1 == "B+ Tree")
                                                                                                                                {
                                                                                                                                    currentAlgorithm = new BPlusTree(animationManager);
                                                                                                                                    addChildAt(currentAlgorithm, 0);
                                                                                                                                }
                                                                                                                            else 
                                                                                                                            {
                                                                                                                                currentAlgorithm = new ClosedHash2(animationManager);
                                                                                                                                addChildAt(currentAlgorithm, 0);
                                                                                                                            }
                                                                                                                        else 
                                                                                                                        {
                                                                                                                            currentAlgorithm = new RedBlackTree(animationManager);
                                                                                                                            addChildAt(currentAlgorithm, 0);
                                                                                                                        }
    и т.д. пока не закроются все if'ы

    Визуализатор сортировок университета Сан-Франциско

    Запостил: alexprey, 12 Мая 2013

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

    • Поржал. Ученый умеет в алгоритмы и их названия, но не умеет в кодирование
      Ответить
      • Это студенты писали за зачет. Или что там у них вместо зачетов.
        Ответить
        • эт хуйня, в моём высшей школе создают js галерии из 5 строк для диплома.
          Ответить
          • 5 строк это, должно быть, вызов плагина.
            <script>
            $(function () {
              $('#gallery').gallery();
            });
            </script>
            Ответить
            • А вот и нихуя - накатил вот однокурснику говнокод за пару мин https://dl.dropboxusercontent.com/u/14396564/gallery.js - и это есть дипломка по IT. Причём, что бы не палицо - напилил images += '<img src="'+image_array[i]+'">';
              Ответить
              • IT - это какой предмет?
                Ответить
                • Предмет дословно - программирование компьютерам
                  Ответить
                  • > программирование компьютерам
                    Хороший лозунг для генераторов кода, только я бы еще поставил тире и восклицательный знак.
                    Ответить
                  • фабрики - рабочим
                    программирование - компьютерам
                    party - людям
                    Ответить
                  • Вам смешно, а мне самому в пятницу сдавать дипломку.
                    Ответить
    • Какой же неудобный этот ваш ActionScript...
      Ответить
    • var loc1 - декомпил.
      Ответить
      • Возможно ли тогда, что эта лесенка является результатом оптимизации исходного кода?
        Ответить
        • switch?
          Ответить
          • да тут похоже дажы мапы хватило бы, если у конструктора 1 параметр
            Ответить
            • Не, я имел в виду, что это изначально был свич, который раскрылся в данный гк.
              Ответить
              • Если это так, то по всему видно: создатели экшенскрипт говнокодогенераторы.
                Ответить
          • Да, в АС свитч неотличим в некоторых ситуациях после компиляции от наборa if-else. Но тут автор похоже забыл про break внутри свитча.

            Или декомпилятор хреновый...
            Ответить
            • > Но тут автор похоже забыл про break внутри свитча.
              Да почему, если бы не было бряка, код превратился бы во что-то подобное такому:
              if (foo) {
                if (bar) {
                  if (baz) {
                    do1();
                  }
                  do2();
                }
                do3();
              }
              А в этом коде бряки вполне прослеживаются.

              P.S. В строках 43+ нужно увеличить отступ, иначе форматирование обманывает читателя.
              Ответить
              • А, я сразу не разобрался. Да, это очевидно декомпилятор так решил восстановить код. Скорее всего там был просто свитч без дефолта.
                Ответить

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