Streszczenie:
Celem pracy jest stworzenie aplikacji komputerowej, służącej do maksymalizowania obrażeń zadawanych podczas rozgrywki w grze League of Legends. Cała logika aplikacji została zaprogramowana w języku Java w środowisku IntelliJ z pomocą bibliotek i narzędzi jakimi są JavaFx, FXML, czy CSS. Głównym zadaniem postawionym przed programem było odwzorowanie jak najbliżej środowiska League of Legends, tak by wyniki zwracane przez aplikacje pokrywały się z tymi z gry. Żeby to osiągnąć wymagane jest zdobycie dokładnych informacji i danych na temat gry, które będą niezbędne w tym procesie. Dlatego właśnie aplikacja została zaopatrzona w narzędzia korzystające z połączenia internetowego, za pomocą wbudowanych klas Javy jakim jest HttpURLConnection, w celu połączenia z API i wysyłania w jego kierunku zapytań o brakujące informacje. Danymi dostarczanymi przez API są dane formatu JSON zawierające informacje o postaciach, przedmiotach i runach. Zostały one poddane Eksploracyjnej Analizie Danych w celu zrozumienia zbiorów, ich optymalizacji oraz ustalenia podejścia dotyczącego zarządzania brakami i błędami w danych. Aplikacja odbiera również pliki graficzne w formacie PNG dostarczane w celu stworzenia przejrzystego, zrozumiałego interfejsu, którego obsługa powinna być instynktownie prosta dla wszystkich graczy League. Wszystkie otrzymane dane zostają zapisywane w folderze „resources” zachowując logiczną strukturę plików, która umożliwia ręczny import danych, gdy zajdzie taka potrzeba. Zapisanie danych ma również na celu wyeliminowanie redundancji zapytań i odciążenia dostawcy API. Na podstawie tych danych zostały stworzone reprezentujące je klasy Java przechowujące informacje potrzebne w procesie liczenia i analizy wyników. Klasy te zostały zaopatrzone w metody zarządzające ich zawartością z zachowaniem zasad obowiązujących w grze. Główna logika systemu opiera się na mechanizmach środowiska gry oraz wzorach dostarczonych przez deweloperów, za pośrednictwem których dokonywana jest analiza. Sam proces analizy wykorzystuje dziedzinę kombinatoryki z użyciem dwumianu Newtona, w celu znalezienia poszukiwanej odpowiedzi. Aplikacja posiada trzy główne widoki do swobodnej nawigacji oraz kilka mniejszych widoków służących jako obiekty wyświetlane w formie listy graficznej.