czwartek, 22 kwietnia 2010

Potyczki algorytmiczne

Na początku informacja, o co chodzi: http://www.konkurs.adb.pl

Wziąłem udział, zarejestrowałem się.
Na początku rozgrzewka, wybór języka i poznanie niuansów automatycznego testowania.
W naturalny sposób wybór padł na javę. Znam, używam na co dzień w pracy, co prawda w wersji 1.4, ale zawsze coś, pomyślałem, że nie będę miał większych problemów.
Runda próbna została rozwiązana metodą "brute force" - wynik i tak się nie liczył, chodziło głównie o sprawdzenie wydajności maszyny testującej - na co można sobie pozwolić.
Zadanie dosyć łatwe - o ile zastosowało się rozwiązanie najprostsze o poziomie komplikacji O(n^4).

Nadeszła runda pierwsza.
Dwa zadania, na początku wydawało się, że zadanie dla grupy B jest trudniejsze niż dla grupy A - co w zasadzie nie powinno nastąpić. Okazało się, że jednak zadanie dla grupy A było trudniejsze, ze względu na ilość danych.
Java poległa - ze względu na obowiązki zawodowo/domowe nie miałem czasu na testowanie różnych rozwiązań - zakodowałem to co wymyśliłem w pierwszym podejściu.
Metoda rekurencyjna... Dla małych ilości danych spisywała się "śpiewająco", ale dla średnich i dużych porażka. Pierwszy raz w życiu udało mi się zobaczyć komunikat "Heap overflow error". Zadanie B - podobnie rozwiązane "na kolanie", dzięki dobrym duszyczkom z forum miałem wystarczającą ilość danych do testowania.

Później zaczęły się schody...

Drugi etap zaskoczył mnie - miałem małe problemy ze zrozumieniem treści zadania dla grupy A, a zadanie dla grupy B przerosło mnie. Na dobrą sprawę nie były zbyt trudne - problemem okazał się poraz kolejny język i jego ograniczenia. Samo wczytanie danych do zadania A w wersji "maksymalnej" zabierało 50% limitu czasu...

Stwierdziłem, że spróbuję w przyszłym roku, uzbrojony w C/C++, kilka przeczytanych książek o algorytmach dotyczących grafów (Dijkstra, Bellman-Ford, itp.).

wtorek, 5 stycznia 2010

Wrażenia po MMORPG'ach

Niedawno, w celach rekreacyjnych, grałem w kilka MMORPG'ów - m.in. w Metin2, PerfectWordl i Rappelz Była to dosyć duża odmiana po tekstowym Killerze.

Gry jako takie nie są specjalnie świetne - w zderzeniu z moją maszynerią mają zbyt duże wymagania, procesor smaży się, a karta grafiki ledwo daje radę. Fabuła niekiedy przejawia się w postaci natarczywego okienka "Idź do" albo "Zniszcz/zabij X", lecz ciężko na nią trafić w innych momentach. Odnoszę czasem wrażenie, że gracz jest prowadzony za rękę "rób questy, a osiągniesz jakiś poziom", po czym na którymś poziomie (zależnie od gry) pozostawiany jest samemu sobie. Po przejściu Morrowinda mam nieco zwichrowane wymagania dotyczące grywalności i nieliniowości fabuły - chciałbym aby wszystkie gry były takie.