Skocz do zawartości

  •  
  • Mini kompendium
  • MimeTeX
  • Regulamin





- - - - -

FarmVille a matematyka

Napisane przez Ereinion, 21 May 2010 · 3222 wyświetleń

Inne
Ostatnimi czasy coraz większą popularność zyskuje w Polsce portal społecznościowy Facebook. Jedną z gier internetowych dostępnych na tym portalu jest, cieszący się dużą liczbą graczy, FarmVille (dalej jako FV). Gra polega na stworzeniu własnej farmy i poprzez uprawę roślin oraz stawianie budynków zdobywaniu kolejnych poziomów doświadczenia. Można również hodować zwierzęta i kupować liczne dekoracje. Gra może mało ambitna, ale jako forma rozrywki sprawdza się dość dobrze. Uznałem, że warto przyjrzeć się jej od strony matematyczno- ekonomicznej.

Każda roślina, jaką możemy zasadzić charakteryzuje się czterema głównymi parametrami:

- koszt zakupu

- doświadczenie zdobyte za zasadzenie tejże rośliny

- czas dorastania

- cena sprzedaży.

Dodatkowo każdorazowo za przygotowanie pola pod uprawę musimy zapłacić 15$ (przez $ oznaczmy walutę w FV) i dostajemy 1 Exp (punkt doświadczenia).
Istotny jest również fakt, że jedna doba w FV ma tylko 23 godziny oraz że dojrzałe rośliny, jeśli nie zostaną w odpowiednim czasie zebrane, więdną.

Poniżej zamieszczam tabelę, w której obok oryginalnej nazwy każdej rośliny przedstawiono wartości wymienionych wcześniej parametrów i dodatkowo

- zysk w jednostce czasu (w $/h )

- liczba punktów doświadczenia w jednostce czasu (w Exp/h)

- koszt jednego punktu doświadczenia (w $/Exp) - dla porównania przy zakupie budowli (za co też dostajemy doświadczenie) koszt ten wynosi 100 $/Exp.

Tabela:
Załączona grafika

Z tabeli bezpośrednio można wyciągnąć kilka ciekawych wniosków:

- chociaż za zasadzenie malin (Raspberries - nr 11) nie dostajemy w ogóle doświadczenia, to wartość Exp/h jest dla nich największa Dołączona grafika (chodzi tu o ten punkt doświadczenia otrzymywany za przygotowanie pola pod uprawę i o bardzo krótki czas dorastania)

- najszybciej dorobimy się sadząc białe winogrona (White Grapes - nr 35)

- najtaniej zyskamy doświadczenie sadząc soję (Soybeans - nr 4)

Na tym kończy się większość poradników na ten temat dostępnych w sieci. My jednak kontynuujemy naszą analizę.

Rzadko bywa tak, że zależy nam tylko i wyłącznie na pieniądzach lub tylko na doświadczeniu. Z reguły chcemy i zarabiać i zyskiwać doświadczenie.

Jak w takim razie wybrać odpowiednią roślinę do uprawy, która najszybciej pozwoli nam osiągnąć nasz cel?

Skorzystamy w tym przypadku z tak zwanej średniej ważonej. Umówmy się że i-tej roślinie na liście przyporządkowujemy dwie liczby: x_i - zysk w jednostce czasu oraz y_i - liczba punktów doświadczenia w jednostce czasu.

Przykładowo x_{15}=2,35 a y_{20}=0,13.

Gdybyśmy teraz badali średnią ważoną liczb x_i, y_i z parametrami \alpha, \beta czyli liczbę

\frac{\alpha \cdot x_i + \beta \cdot y_i}{\alpha + \beta}

to wyniki byłyby bardzo mylące, ze względu na duże różnice w wartościach między "iksami" a "ygrekami".

Wobec tego określmy: X=\max_{1\le i \le 48}(x_i) oraz Y=\max_{1\le i \le 48}(y_i).

Dodatkowo niech \alpha^{\prime} = \frac{\alpha}{\alpha + \beta} i \beta^{\prime}=  \frac{\beta}{\alpha + \beta}.
Wtedy \beta^{\prime}=1-\alpha^{\prime}.

Oczekujemy więc, że bardziej wiarygodne wyniki da badanie średniej \alpha^{\prime} \cdot \frac{x_i}{X} + \beta^{\prime} \cdot \frac{y_i}{Y}=\alpha^{\prime} \cdot \frac{x_i}{X} + (1-\alpha^{\prime} ) \cdot \frac{y_i}{Y}.

Jest to prawdopodobne, ponieważ tym razem zarówno wszystkie liczby \frac{x_i}{X} jak i \frac{y_i}{Y} należą do przedziału \(0, \, 1\>.

Dla przykładu załóżmy, że dwa razy bardziej zależy nam na pieniądzach niż doświadczeniu czyli \alpha^{\prime}=2 \cdot \beta^{\prime}, ale jako że nasze wagi sumują się do jedynki to możemy policzyć \alpha^{\prime}=\frac{2}{3} oraz \beta^{\prime}=\frac{1}{3}.

Licząc średnie dla każdego i a później porównując je otrzymujemy, że w tym wypadku najbardziej opłaca się sadzić jeżyny (Black Berries - nr 36).

Dla wag z przedziału \<0, \, 1\> ze skokiem równym 0,05 policzyłem dla każdej rośliny średnią ważoną i wyniki okazały się dość zaskakujące.

Oto tabela:
Załączona grafika

Okazuje się, że dla \alpha^{\prime}=0 (co oznacza, że zależy nam tylko na doświadczeniu) najbardziej opłaca się sadzić truskawki, jagody lub jeżyny (numery odpowiednio - 1, 22, 36).

Dla \alpha^{\prime} \in \(0; \, 0,7 \> najkorzystniej będzie sadzić jeżyny (nr 36), a dla pozostałych \alpha^{\prime} najtrafniejszym wyborem okażą się białe winogrona (nr 35). Dziwi trochę tak mała różnorodność "najlepszych" roślin.

Oczywiście jak każdy model matematyczny powyższe rozumowanie zawiera pewne uproszczenia:

- założyliśmy milcząco, że właściciel farmy zajmuje się nią bez przerwy, tzn dokonuje zbiorów gdy tylko jest taka możliwość i rośliny nigdy mu nie więdną

- nie wspomniałem też, że kolejne rośliny sadzić można dopiero po zdobyciu określonego poziomu, tak naprawdę należałoby przeprowadzić analizę dla każdego zestawu pierwszych k roślin, gdzie k \in \{2, \, 3, \, ... \, 36\}.

Niemniej jednak myślę, że powyższa analiza choć trochę przyda się wszystkim grającym w FV, a osoby ambitne może zachęcić do opracowania dokładniejszej strategii gry Dołączona grafika


23.05.2010 - Dodatek o drzewach

W FarmVille możemy również sadzić drzewa, choć ich wybór jest dużo mniejszy. Drzewa te w określonych odstępach czasu wydają owoce, przy czym czas ten liczony jest najpierw od posadzenia drzewa a później od zebrania poprzednich owoców. Za zebrane owoce otrzymujemy każdorazowo pewną ilość pieniędzy, ale nie dostajemy doświadczenia. Warto też wiedzieć, że w odróżnieniu od roślin uprawnych owoce na drzewach mogą utrzymywać się dowolnie długo oraz że na obszarze jednego pola, które możemy obsadzić roślinami uprawnymi, zmieści się aż 16 drzew.

Poniżej zamieszczam tabelę przedstawiającą 7 dostępnych do kupienia drzew wraz z ich podstawowymi parametrami:

- cena kupna (w $)

- punkty doświadczenia za posadzenie drzewa

- czas potrzebny na wydanie owoców (w godzinach)

- cena po której sprzedajemy zebrane owoce (w $)

- cena sprzedaży całego drzewa (w $)

Jako że na pewnej zagranicznej stronie o FarmVille spotkałem się z uwagą, że dobrym pomysłem jest sadzenie drzewa i za chwilę sprzedawanie go, w celu szybkiego zyskania punktów doświadczenia (przyznawanych w momencie sadzenia drzewa), to policzyłem, dla porównania z tabelą roślin uprawnych, ile pieniędzy kosztuje nas 1 punkt doświadczenie zdobyty przy zakupie danego drzewa. Widać, że pomysł ze wspomnianej strony jest niezbyt ekonomiczny.

Oto tabela:
Załączona grafika

Pozornie wydaje się, że drzewa znacznie ustępują roślinom uprawnym ze względu na niskie i stosunkowo rzadkie dochody oraz na to, że doświadczenie otrzymujemy tylko przy sadzeniu drzewa. Tej wersji trzyma się również większość zagranicznych stron poświęconych FV. Okazuje się jednak, że nie jest to prawda. Sadząc drzewa cytrynowe i limonkowe (lemon i lime odpowiednio) zarobimy więcej pieniędzy, niż gdybyśmy na tym samym obszarze sadzili najbardziej dochodowe z roślin - białe winogrona (nr 35). Jednak stanie się to dopiero po około... 256 farmvillowych dniach Dołączona grafika

Spróbujmy to uzasadnić: niech f_i(n) oznacza dochód jaki otrzymamy po n godzinach od kupienia i posadzenia 16 sztuk i-tego drzewa (i=1, \, 2, \, ... \, 7). Liczba 16 bierze się stąd, że, jak już pisałem, 16 drzew zajmuje tyle samo powierzchni co jedno "pole" roślin uprawnych.

Niech dodatkowo dla i-tego drzewa: c_i - cena kupna, t_i - czas potrzebny na wydanie owoców, z_i - zysk ze sprzedaży owoców.

Wtedy  f_i(n)=16 \cdot \(\[\frac{n}{t_i}\] \cdot z_i - c_i \), gdzie [x] oznacza część całkowitą liczby x.

Natomiast dochód po n godzinach z uprawy białych winogron możemy przyjąć jako x_{35} \cdot n= 8,33 \cdot n. Nie jest to dokładny wzór, ale jak na nasze potrzeby ok.

Pozostało nam już tylko dla każdego i rozwiązać równanie f_i(n) = 8,33 \cdot n i poznamy czas po którym zysk z danego drzewa przewyższy zysk z uprawy najbardziej dochodowych roślin - białych winogron. (Zauważmy, że początkowo, dla dowolnego i mamy f_i(n) \, < \, 8,33 \cdot n)

Rozwiązanie tego równania nie jest proste, więc zamieszczę tutaj tylko przybliżone wyniki, które jednak dają dość dobre pojęcie o istocie rzeczy.

Przede wszystkim powyższe równanie ma rozwiązania jedynie dla i=6 oraz i=7. Oznacza to, że sadząc pozostałe drzewa nigdy nie zarobimy więcej niż przy uprawie białych winogron. Natomiast wybierając drzewo cytrynowe staniemy się bogatsi od uprawiających winogrona już po... 287 dniach (ok. 6600 godzin). Z drzewem limonkowym jest nieco lepiej - potrzeba jedynie 256,5 dnia (ok. 5900 godzin) Dołączona grafika

W tabeli zamieszczam również podobne zestawienie dla pszenicy (wheat - nr 3) zamiast białych winogron (wybrałem pszenicę, bo ma najniższy wskaźnik przychodu na godzinę ze wszystkich roślin uprawnych).

Oto tabela:
Załączona grafika

  • 0



Ereinion po raz kolejny mnie zaskoczyłeś na całego. Fantastyczny artykuł, pokazujący na podstawie gry jak matematyka łączy się z praktyka (czytaj z życiem codziennym). Gratuluję pomysłu i myślę, że wielu graczy skorzysta z Twoich przemyśleń.
    • 0
Naprawdę godne podziwu. Chętnie zastosuje twoje wskazówki w grze :D
    • 0
Bardzo mi miło, dzięki :D
    • 0
Matematyka matematyką, teoria teorią, a praktyka praktyką :DOd matematycznej strony elegancko, jako praktyk od strony giercowania zwrócę tylko uwagę na kilka rzeczy :1) Drzewa" Jednak stanie się to dopiero po około... 256 farmvillowych dniach " - spośród wszystkich znajomych (duży boom na farmville zaobserwowany pod koniec 2009) nikt nie wytrzymał tego dennego klikania dłużej niż 90 dni. Drzewa są sensownym wyborem głównie z 1 powodu - normalne plony mają datę ważności i jak się komuś zapomni zalogować, będzie w plecy. Przy drzewach takiej sytuacji nie ma (przynajmniej nie było pod koniec 2009)2) PlonySadzenie malin to psychoza mentalna. Nawet przy różnych ulepszeniach typu traktor etc klikanie po całym obszarze gry i wymóg siedzenia przy Farmville jest męczący i ascetyczny zarazem. Być może jakość usługi się poprawiła, trochę temu jednak w wyniku problemów z obciążeniem często dostawało się "synch error", równoważny z tym, iż ostatnie xx minut naszej gry poszło w kosmos. I klikanie jak przygłup od nowa. Polecam plony rosnące przynajmniej 18h, wiadomo przecież, że rolnik to musi przede wszystkim mieć cierpliwość. Ad pktu 1 tym samym może przy bardziej opanowanym podejściu do gry starczy zapału na więcej niż owe 3 miechy i człowiek nawet się odkuje na tych drzewach.Sama analiza od strony matematycznej ok, gratuluję chęci. Przy założeniach typu "gracz online 24/7" trochę się to pewnie nie przekłada na dobre porady, ale przecież gry nie powstały po to, by sobie z nich tworzyć obsesję w mózgu. Polecam dystans i pozdrawiam tym samym.
    • 1
Dziękuję za uwagi. Ja osobiście już dawno w FarmVille przestałem grać, a nawet jak grałem to nie sadziłem obsesyjnie malin na przemian z białymi winogronami, jakby to wynikało z tego wpisu :) Według mnie gra ma przede wszystkim bawić i odprężać, a całą matematyczną analizę traktować można bardziej jako ciekawostkę.Również pozdrawiam i polecam dystans do mocno uproszczonych modeli matematycznych :D
    • 0
Czas zacząć klikać!Suzanna
    • 0

Ostatni odwiedzający

Ostatnie komentarze

Buttony