Mam przyjemność przedstawić Wam moje najnowsze dziecko jakim jest program SortViz do wizualizowania algorytmów sortujących.
Jak do tej pory to mój drugi program napisany w MadPascalu, w którym na marginesie bardzo lubię pracować.
Temat wizualizacji sortowania algorytmów zainteresował mnie już dawno temu, wtedy też znalazłem sporo fajnych filmików na YouTube. Ale postanowiłem przygotować coś podobnego na nasze kochane małe Atari.
W tej wersji program udostępnia 16 różnych algorytmów (pozwolę sobie na użycie nazw angielskich): Insertion sort, Selection sort, Quick sort, Merge sort, Bubble sort, Coctail sort, Gnome sort, Circle sort, Comb sort, Pancake sort, Shell sort, Odd-Even sort, Bitonic sort, Radix sort, Heap sort oraz Double selection sort.
Program jest interaktywny i można bawić się w zwalnianie lub przyspieszanie animacji a także wstrzymywanie całego procesu sortowania.
Sortowana tablica jest reprezentowana w postaci wierszy na obrazie zawierających poziome paski o długości odpowiadającej wartości w tablicy. Jest też alternatywny widok, na którym sortowany jest kolorowy obrazek.
Swoją drogą czy ktoś z Was wie kto jest autorem tego obrazka z faraonem?
Proponuję obejrzeć filmik na YouTube, żeby lepiej zorientować się o czym mówię. :)
Tradycyjnie umieszczam link do kodów źródłowych programu: ->link<-
Faraon jest oryginalnie skradziony z programu Deluxe Paint z Amigi lub ST. Pojawia się w demie World of Wonders, ale nie wiem czy to pierwsze jego wystąpienie na małym Atari.
Autorem tego "Faraona" jest Bob Stevenson, komodorowski grafik m.in. współpracujący z wieloma wydawcami gier. Jego obrazki były wielokrotnie wykorzystywane w atarowskich demach.
Tut Ench Amon (tak się nazywa w oryginale) ->link<-
Kopiąc głębiej: pierwotnym źródłem jest fotografia na okładce National Geographic z marca 1977 - obrazek Avrila Harrisona z amigowego DP jest praktycznie identyczny. Stevenson zapewne wzorował się na DP, a nie na czasopiśmie, ale widać że rysował samodzielnie, nie jest to bezczelna konwersja.
Dzieki za Wasze zainteresowanie programem. To dopiero jego pierwsza wersja więc zamierzam jeszcze trochę nad tym popracować. Na pewno dodam kolejne algorytmy sortowania, dopracuję też wszelkie kwestie techniczne, których niedopatrzyłem.
@dely, @Krótki, dziękuję za prześledzenie źródła obrazka Boba Stevensona. Umieściłem stosowną notkę w opisie filmu.
@mgr_iz_rafal, pewnie masz na myśli laser golarza Filipa? Mam spory sentyment do "Akademii Pana Kleska". Zarówno do filmu jak i książki. Późniejsze filmy czyli "Podróże Pana Kleksa" i "Pan Kleks w kosmosie" są według mnie zrobione już trochę na siłę. Ale pamiętam jedną scenę z "Pana Kleksa w kosmosie" ze sklepem z komputerami Atari i oczywiście robot-nauczyciel o imieniu Bajtek.
Wczoraj odpaliłem i bardzo pozytywnie mnie zaskoczył. Miałbym jedną prośbę: chodzi mi o instrukcję. Scroll jest dość szybki i trudno wyłapać wszystkie informacje ale gdyby szedł wolniej, trwałoby to za długo. Może dałoby radę zrobić tak, żeby po wciśnięciu, dajmy na to, klawisza Help, wyświetlany był ekran ze spisem klawiszy?
Sztosem byłaby dodatkowa warstwa edukacyjna - krótki opis poszczególnych algorytmów, np. na modłę Wikipedii. Aczkolwiek rozumiem, że niekoniecznie onto mogło chodzić.
@Peri Noid, dzięki za komentarz. Masz całkowitą rację z tym scrollem - nie jest to najlepsze rozwiązanie tym bardziej, że planuję dodać jeszcze kilka innych algorytmów. Będę nad tym pracował :)
Co do warstwy edukacyjnej, to jest to bardzo kusząca propozycja, jednak mam wątpliwości czy starczy mi pamięci RAM na dodatkowe opisy. Można byłoby oczywiście doładowywać je z dyskietki na życzenie ale nie jest to w tym momencie dla mnie priorytet. Bardziej chodziło o kwestie demonstracyjne, żeby cieszyło oko ;)
Ale to jest pomysłowo i ładnie wykonane. Aż nie można się oderwać od patrzenia na proces sortowania. :) To jest wręcz hipnotyzujące i uspokajające. Będę sobie uruchamiał/odtwarzał gdy mnie coś wkurzy. :) Brawo!
@0xF, @MDW, dzięki za Wasze komentarze. Cieszę się, że doceniliście moją pracę :)
Wasze zainteresowanie zachęciło mnie do przygotowania kolejnej wersji mojej aplikacji.
Dodałem 4 algorytmy sortowania - Odd-Even merge sort, Tim sort, Dual pivot quick sort oraz Cycle sort.
Spowolniłem scroll i dodałem ekran pomocy z listą funkcji i skrótami klawiszowymi, który wyświetla z pomocą klawisza Help - @Peri Noid, dzięki za świetną sugestię.
Dla tych co lubią sobie poglądać algorytmy sortujące przygotowałem filmik z prezentacją wszystkich 20 algorytmów. Życzę miłego oglądania.
To nawet psychologicznie można wytłumaczyć. Patrząc na pojawjający się porządek pobudzamy ośrodek nagrody. A takie posortowanie to jest rozwiązanie problemu. To nic, że to nie my, ale mózg się daje oszukać.
Podobnie działają filmy, gdzie zło jest pokonywane a dobro wygrywa. Nawet jak leje się krew. Koniec, nie myslimy o filmie, za to błogo się czujemy. Natomiast w dramatach?! OOO, panie. Móżg się wykrzywia w tę i we w tę, żeby to ogarnąć. A jak ogarnie - satysfakcja o wiele większa.