Opis pakietu

Pakiet SuperFarmerMAPA jest pakietem symulującym rozgrywkę jednej osoby w grę "Super Farmer". Informacje dotyczące gry i jej zasad można znaleźć pod adresem:

W ramach pakietu został stworzony silnik gry pozwalający na przeprowadzenie rozgrywki z zastosowaniem różnych strategii oraz obserwację statystyk czasu trwania gry w zależności od wybranej strategii. Dodatkową funkcjonalnością pakietu jest możliwość parametryzacji rozgrywki, co pozwala na modyfikowanie zasad gry.

Uwaga: Wektor max_stock można zmieniać wyłącznie przy zastosowaniu strategii pochodzących z pakietu SuperFarmerMAPA.

Strategie dostępne w ramach pakietu

Strategie dostępne w ramach pakietu SuperFarmerMAPA to:

Charakterystyka dostępnych w pakiecie strategii

strategia_rf (random forest)

Jest to strategia wykorzystująca uczenie maszynowe. Najlepszy z modeli uzyskanych w ramach trenowania został wgrany do pakietu jako zbiór danych. Jest on wykorzystywany do przewidywania, który ruch gracza będzie dla niego najkorzystniejszy.

strategy_EV (expected value)

Prosta strategia polegająca na tym, że dla danego stanu stada gracza wyliczane są wszystkie możliwe stany, które mogą powstać przez wymianę. Następnie dla tych stanów obliczana jest wartość oczekiwana przyrostu za pomocą expected_value i zwracany jest stan stada z najwyższą wartością oczekiwaną.

strategy_HEV (Horse and Expected Value)

Taktyka będąca małym rozszerzeniem poprzedniej strategii. Uwzględnia ona to, że poprzednia nie bierze pod uwagę tego, że wygrana partii następuje po tym jak zdobędziemy wszystkie zwierzęta, nie po tym jak będziemy mieli największą wartość stada w królikach. Dlatego po pierwsze skupiamy się na zakupie reszty zwierząt jeśli mamy dwa konie. Potem na zakupie konia jeśłi nast tylko na to stać i konia nie mamy, następnie jeśli stać nas na wygranie gry, to kupujemy wszystkie zwierzęta po kolei, ale w taki sposób żeby nie pozbywać się innych (żeby nie wyzerować jednego kosztem innego). Jeśłi żaden z powyższych warunków nie zachodzi, to wracamy do strategii ev.

strategy_OLC (One Last Chance)

Jeśli mamy ponad dwa konie, to tak jak poprzednio, jeśli nie to jeśli stać nas na konia, to również jak poprzednio. W przeciwnym przypadku jeśli liczba królików przekracza number_of_rabbits_to_protect to chronimy je (czyli jeśli nie ma małego psa, to go kupujemy, jeśli jest, to kupujemy świnię, bo to obniża liczbę królików (zauważmy, że nie ma co trzymać więcej niż 40 królików, bo przy potencjalnym wyrzuceniu królika, nasz przyrost jest ograniczany przez maksymalną liczbę królików w stadzie głównym)), przy czym robimy to w przypadku jeśli nadal nas nie stać na wygranie gry. Jeśli nas stać, to wracamy do strategii poprzedniej (dla OLC jest to strategia_HEV, dla OLC2 - strategia_EV).

Parametry umożliwiające modyfikowanie rozgrywki

Jednym ze sposobów modyfikowania rozgrywki jest określanie liczby zwierząt w stadzie z którym zaczynamy grę, jak również zmiana maksymalnej liczby zwierząt danego gatunku. Inne parametry na które wpływ ma użytkownik pakietu to zasady dotyczące tego jakie zwierzęta zjada wilk i lis, jak również warunek wygrania gry.

Uwaga: Kolejność zwierząt we wszystkich wektorach: 1-krolik, 2-owca, 3-swinia, 4-krowa, 5-kon, 6-maly pies, 7-duzy pies.

Uwaga: Wektor max_stock można zmieniać wyłącznie przy zastosowaniu strategii pochodzących z pakietu SuperFarmerMAPA.

zwierzeta_w_pudelku = c(100, 100, 100, 100, 100, 100, 100)

warunek_zwyciestwa = c(42, 1, 1, 1, 1, 1, 1)

Najważniejsze funkcje pakietu

badaj_gre()

Jest to funkcja wywołująca grę z zadaną strategią określoną liczbę razy. Funkcja zwraca wektor liczby ruchów w kolejnych grach.

badaj_gre(nazwa_strategii, liczba ruchów)

badaj_gre(strategia_rf, 10)

[1] 182 130 74 28 25 25 39 56 34 44

gra()

Funkcja rozgrywająca jedną grę w Super Farmera przy zadanej strategii i zwraca liczbę tur, która była potrzebna do wygranej. Funkcja ta wykorzystuje funkcje reproduction() oraz win() .

Podstawowym argumentem funkcji jest strategia, którą chcemy wykorzystać w danej rozgrywce.

gra(strategia)

gra(strategia_rf)

[1] 25



byrolew/SuperFarmerMAPA documentation built on May 13, 2019, 9:55 a.m.