Warcaby angielskie - środowisko badania heurystyk
English draughts - the analysis environment for evaluation functions
Cel projektuGłównym celem projektu było stworzenie środowiska dydaktycznego, pozwalającego studentom na poznanie zasad działania heurystycznych metod oceny stanu. Powstała aplikacja udostępnia interfejs, przez który użytkownik może wprowadzić własną implementację heurystycznej funkcji oceny, którą potem program wykorzystuje w generowanym przez siebie drzewie przeszukiwań przestrzeni stanów. Dla uatrakcyjnienia środowiska zdecydowano, że stworzony program będzie pozwalał na grę w warcaby angielskie, a decyzję o wyborze ruchu będzie podejmował na podstawie przyjętej od użytkownika heurystyki. Podstawowa funkcjonalność programuSzczegółowy opis funkcjonalności programu znajduje się TUTAJ. Podstawowe funkcje programu to:
InternacjonalizacjaAby umożliwić pracę z programem dla obcokrajowców, środowisko przetłumaczono na cztery języki - polski, angielski, hiszpański i rosyjski. Tłumaczenia dla poszczególnych języków, dzięki wykorzystaniu klasy ResourceBundle, są zawarte w osobnych plikach *.properties, więc edycja poszczególnych fraz, dodawanie nowych i usuwanie starych oraz dodawanie obsługi kolejnych języków są bardzo uproszczone.Interfejs użytkownikaInterfejs użytkownika składa się z czterech okien:
Widok na interfejs użytkownika Implementacja - podstawowe informacjeŚrodowisko zostało w całości oprogramowane w języku Java w wersji 6. Ważniejsze wykorzystane mechanizmy języka to:
Sztuczna inteligencja rozwija drzewo przeszukiwania w przestrzeni stanów w oparciu o wielowątkowy algorytm cięć alfa-beta. Wprowadzona modyfikacja do klasycznej wersji tego algorytmu, polega na uruchomieniu przeszukiwania przestrzeni stanów, za pomocą klasycznej wersji tego algorytmu, dla wszystkich następników badanego stanu wyjściowego w sposób równoległy. Możliwe dalsze modyfikacjeDalszy rozwój projektu wymagałby dostarczenia dodatkowej funkcjonalności. Funkcjonalność, która powinna zostać dostarczona w pierwszej kolejności to:
Wymagania systemoweAby oprogramowanie działało w pełni sprawnie należy zapewnić w systemie obecność środowiska java JDK w wersji co najmniej 6. UruchomienieAby program udostępniał pełną funkcjonalność, należy uruchomić go za pomocą JDK. Pod systemem z rodziny Windows, dla domyślnej ścieżki instalacji środowiska java JDK i wersji 1.6.0_38 tego środowiska, wywołanie w konsoli wygląda następująco:"C:\Program Files\Java\jdk1.6.0_38\bin\java.exe" -jar Checkers.jar W przypadku istnienia różnic w podanych założeniach, ścieżkę należy odpowiednio zmodyfikować. W przypadku wywołania tradycyjnego (poprzez JRE): java -jar Checkers.jar program się uruchomi, ale nie pozwoli na kompilację heurystycznej funkcji oceny zdefiniowanej przez użytkownika. Wykorzystane narzędzia1. Java SE Development Kit 6 Update 38 - zestaw narzędzi dla programistów, wymagany dla tworzenia programów w języku Java 2. NetBeans IDE 7.2.1 - zintegrowane środowisko programistyczne 3. Interactive native2ascii - do internacjonalizacji programu 4. Convert Case - do internacjonalizacji programu Materiały źródłowe1. Piotr Beling: Praktyczne aspekty programowania gier logicznych. Praca magisterska, Politechnika Łódzka, 2006 2. Arthur L. Samuel: Some Studies in Machine Lerning Using the Game of Checkers, 1959 3. Jacek Mańdziuk, Magdalena Kusiak, Karol Walędzik, Evolutionary-based heuristic generators for checkers and give-away checkers, Politechnika Warszawska, 2007 4. Jacek Mańdziuk, Magdalena Kusiak, Karol Walędzik, Evolution of heuristics for give-away checkers, Politechnika Warszawska, 2005 5. Jacek Mańdziuk, Magdalena Kusiak, Karol Walędzik, Evolutionary approach to the game of checkers, Politechnika Warszawska, 2007 6. Wikipdedia, zasady gry |