Licencja
Implementacja przeciwnika SI do gry planszowej Hej, to moja ryba!
Abstrakt (PL)
Praca przedstawia rozwój silnika sztucznej inteligencji, zaprojektowanego do gry planszowej Hej, to moja ryba!. Nazwa silnika “Rybcia” została zainspirowana silnikiem szachowym Rybka pochodzenia czeskiego i pasuje do tematyki gry. Zaimplementowany w języku programistycznym Python przeciwnik, opiera się na architekturze algorytmu MCTS dostosowanej do specyficznych wyzwań stawianych przez tę grę planszową. Praca omawia działanie klasycznego podejścia Monte Carlo oraz zastosowane modyfikacje. Silnik Rybcia, poprzez swoją implementację, eksploruje możliwość dostosowania algorytmu do specyficznych sytuacji, czego rezultatem jest nietypowa asymetryczna strategia budowy drzewa, która skutecznie wykorzystuje dostępne zasoby obliczeniowe. Rybcia prezentuje obiecujące rezultaty, wygrywając z amatorskimi graczami, lecz wymaga dalszych testów w celu określenia siły silnika. Efekt pracy poddany został analizie oraz wyciągnięte zostały wnioski dotyczące przyszłego doskonalenia programu. Projekt ma również na celu przedstawienie pracy nad rozwojem silnika w sposób przystępny, żeby wiedza ta była dostępna również dla osób stawiających pierwsze kroki w dziedzinie sztucznej inteligencji w grach.
Abstrakt (EN)
The paper presents the development of an artificial intelligence engine designed for the board game Hey, that's my fish!. The name of the engine Rybcia was inspired by the chess engine Rybka of Czech origin and fits the theme of the game. The program was written in the Python programming language. Rybcia is based on the MCTS algorithm architecture adapted to the specific challenges posed by this board game. The paper explains the classical Monte Carlo approach and the modifications used. The Rybcia engine, through its implementation, explores the possibility of adapting the algorithm to specific situations, resulting in an unusual asymmetric tree-building strategy that makes efficient use of available computational resources. Rybcia shows promising results, winning against amateur players, but requires further testing to determine the full strength of the engine. The result of the work is analysed and conclusions are drawn for future improvement of the programme. The project also aims to present the engine development work in an accessible way, so that the knowledge is also available to those taking their first steps in the field of artificial intelligence in games.