Daniel Dymek zwyciężył w pierwszej edycji turnieju CodeCraft. Swoją sztuczną inteligencję, która pokonała innych graczy, napisał w języku C#.
codearena: Co zachęciło Cię do wzięcia udziału w turnieju CodeCraft?
Daniel Dymek: Lubię tego typu wyzwania, dodatkowo nagroda za pierwsze miejsce była kusząca, więc postanowiłem spróbować.
codearena:Czy brałeś kiedyś udział w podobnym konkursie?
D. Dymek: Jeśli chodzi o konkurs dotyczący szeroko pojętej AI, to kiedyś na studiach ze współlokatorem wygraliśmy zawody robotów Lego Mindstorms. Oprócz tego, brałem udział w konkursach bardziej algorytmicznych – ostatnio na targach Future3 w Gdańsku, dawniej bez większych sukcesów Potyczki Algorytmiczne itp.
codearena: Czy trudno było rozpocząć rozgrywki?
D. Dymek: Pierwszą wersję, sterowaną ręcznie, zrobiłem całkiem szybko, ale później okazało się, że połowa jest do przepisania. Samo rozpoczęcie nie sprawiło mi większego problemu, uważam że później na etapie wymyślania i dopracowywania strategii, a także szukania błędów było trudniej.
codearena: Ile zajęło Ci przejście pierwszej planszy?
D. Dymek: Ponieważ na początku miałem sterowanie ręczne, pierwszą planszę przeszedłem właśnie w taki sposób, i to kilka razy – testowałem rysowanie mapy. Drugą planszę można uznać za początek jakiejś sztucznej inteligencji w moim kodzie. Wydaje mi się że przeszedłem ją po około 10 dniach od rozpoczęcia pisania.
codearena: Ile w sumie poświęciłeś czasu na pisanie kodu?
D. Dymek:Około 50 – 60 godzin.
codearena: Co Ci się najbardziej spodobało w turnieju CodeCraft?
D. Dymek: Możliwość sprawdzenia, czy mój algorytm będzie lepszy od innych. Poza tym, chyba pierwszy raz od czasu studiów miałem okazję poużywać teoretycznej wiedzy, typu wyznaczanie ścieżek w grafie – okazało się, że większość rzeczy pamiętam i jestem w stanie używać.
codearena: Co sprawiło Ci największą trudność?
D. Dymek: Miałem ogromny problem ze zrywaniem połączenia w grach oczekujących na drugiego gracza. Po kilku godzinach szukania błędu wydaje mi się (chociaż nadal nie jestem pewien), że winny był po prostu mój router WiFi, a kod cały czas był ok. Oprócz tego synchronizacja wątków i generalnie wielowątkowość – niby było tego sporo na studiach, ale w tym wypadku musiałem sobie zrobić solidną powtórkę.
codearena: Jak oceniasz poziom turnieju?
D. Dymek: Przeciwnicy byli sporym wyzwaniem, szczególnie na etapie rozgrywania meczów rankingowych.
codearena: Czego się nauczyłeś podczas turnieju?
D. Dymek: Najbardziej organizacji i samozaparcia – żeby po 8 godzinach pracy rozwijać jeszcze swój program.
codearena: Czy poleciłbyś turniej innym?
D. Dymek: Oczywiście, to świetna okazja do sprawdzenia swoich umiejętności i nauczenia się czegoś nowego.
codearena: Czy wprowadziłbyś jakieś modyfikacje, ulepszenia do turnieju?
D. Dymek: Od początku myślałem o tym, że dodanie walki do turnieju byłoby dobrym pomysłem – w edycji wrześniowej to będzie, co mnie cieszy. Dobre propozycje padają też na forum – szczególnie przychylałbym się do wprowadzenia losowych map lub przynajmniej zwiększenia ich ilości oraz możliwości zmiany rodzaju gry (solo, towarzyska, rankingowa) z poziomu wysyłanego XML-a.
codearena: Jeszcze raz gratulujemy wygranej! Dziękujemy za zaangażowanie i życzymy powodzenia w kolejnych edycjach CodeCraft.