User:Hlaj13

From Simulace.info
Jump to: navigation, search

Definice problému

Simulační model hry Farkle představuje pokus o digitální rekonstrukci a analýzu tradiční strategické kostkové hry, jejíž pravidla kombinují náhodu, strategii a rozhodovací procesy. Cílem této práce je vytvořit plně funkční multiagentní simulaci, která:

věrně simuluje tahy dvou virtuálních hráčů podle předem zvolených strategií,

umožňuje detailně nastavovat parametry strategického chování hráčů (chování "custom"),

sleduje a vizualizuje průběžný vývoj skóre,

exportuje klíčové statistiky a výsledky simulace v .csv formátu.

Model je určen k testování rozdílných strategických přístupů v podmínkách hry s vysokou mírou náhody a má sloužit jako nástroj pro analyzování vlivu strategie na úspěšnost ve hře Farkle. Tato simulace je nezbytnou komponentou k mé diplomové práci, která má za cíl testovat jednotlivé typy chování, neboli persony, a testovat tak úspěšnost různých strategií pro určitá nastavení hry (zejména cílový počet bodů).


Pravidla hry a skryté mechaniky

Dva hráči se střídají po jednotlivých kolech a každý hraje se 6ti klasickými herními kostkami. Hru vždy začíná "Player1", hodí kostkami a vybírá bodované hodnoty kostek, nebo jejich kombinace (viz skórovací systém níže). Hráč se nyní rozhoduje zda svůj tah ukončí a započte si získané body, nebo bude pokračovat dalším hodem, ale již pouze se zbytkovými kostkami, tedy těmi, které před tím nebyly bodované. Hráč tedy musí správně vyhodnotit riziko, když totiž v hodu na žádné z kostek nepadne žádná bodovatelná hodnota nebo kombinace, jeho tah tím končí a ztrácí a všechny bodu, které se během tahu hráč nahrál. Tomuto okamžiku prohry tahu bez zisku bodů se říká Farkle (odtud název hry). Pokud hráč sám od sebe tah ukončil a zapsal si body, nebo "dostal" Farkle - jde na řadu další hráč. Takto se hráči střídají a snaží se každým svým kolem sbírat body, aby jako první dosáhl cíle (limitu). Hráč, který během svého kola využil všechny kostky (všechny byly bodovatelné a využil je), může znovu házet se 6ti kostkami a pokračovat dál a zvýšit tak svůj počet bodů.

Jak už to u tahových her bývá, hráč který začíná má tzv. výhodou prvního tahu (podobně jako má například v šachu hráč, který hraje za bíle figury). Proto je v této hře, ale i v mé simulaci, implementováno pravidlo, kdy Player2 může zahrát své poslední kolo v okamžiku, kdy Player1 dosáhl limitu. Lidově řečeno druhý hráč má šanci přehodit svého oponenta a vyhrát tím hru.


Metoda

Pro implementaci byla zvolena platforma NetLogo, která nabídla následující výhody:

jednoduché a přímé zpracování časových cyklů a podmínek,

efektivní práci s agenty (turtles) a vizualizací,

snadné testování stochastických modelů a export dat.

Použití multiagentní simulace v tomto případě reprezentuje rozhodovací logiku jednotlivých hráčů, kteří se v každém kole rozhodují na základě parametrů určených strategií a aktuální situace.


Model

Model simuluje dvě herní entity, tedy hráče (Player 1 a Player 2), každý reprezentovaný agentem typu "turtle", který se vizuálně pohybuje po vertikální ose v grafickém "view" okně. Cílový stav reprezentuje dosažení hodnoty definované pomocí slideru max-score-slider, typicky 10 000 bodů (nejběžnější skóre, které se při hraní Farkle používá). Model nabízí více módů sledování simulace:

  • Detailní mód, skrze který lze v konzoli (logu) podrobněji a přesněji sledovat chovaní zvolených person skrze výpis (spustitelný skrze tlačítka "go" a "run game").
  • "Batch" mód, který pomocí slideru num-games rychle bez výpisů odehraje zvolený počet her a vyhodnotí sledované metriky a statistiky (spustitelný skrze tlačítko "run n games").

Použití detailního módu je ideální pro přesné ověření logiky hry a nastavení person, včetně uživatelem plně nastavitelné persony "custom", ale také pro plné pochopení pravidel hry Farkle jako takové. Použití batch módu je klíčové pro rychlé a snadné pro otestování scénářů na větším množství dat. Z principu hry jako takové, je simulace velmi zatížena náhodou. Je proto nutné jednotlivé scénáře otestovat na širokém množství dat: Např. scénář, kdy proti sobě postavíme hráče s personou "custom" proti hráči s personou "greedy" a jedna hra se hraje do limitu 10 000b. Je nutné tento scénář "prohnat" tisíci her. K tomu slouží tento mód.

Farkle1.png


Slidery a parametry

max-score-slider (1000–20000): Určuje požadované skóre pro ukončení hry. Po dosažení, nebo přesáhnutí této hodnoty hra buď končí, nebo se spouští finální kolo.

custom-threshold (0–1000): Používá se ve vlastní strategii "custom"; nastavuje bodovou hranici pro rozhodnutí o ukončení tahu.

custom-lead-modifier (-1000–1000): Modifikátor ve vlastní strategii "custom"; čím větší náskok nad soupeřem, tím opatrnější hra.

custom-risk-threshold (1–6): Počet zbývajících kostek, při kterém se "custom" strategie rozhodne skončit tah. Např. tedy zbytečně nebude riskovat hod pouze 1 kostkou.


Tlačítka a interakce

setup: Inicializuje novou hru, vymaže data a nastartuje simulaci.

run game: Odehraje celou jednu hru se zvolenými hráči.

run n games: Spustí "n" her po sobě bez vizualizace (pro dávkovou analýzu), kde "n" se nastavuje pomocí slideru "num-games", kde je výběr 1-1000 her.

go / go-forever: Hraje jedno kolo nebo celou hru. Výchozí nastavení je takové, že jedno kliknutí tlačítka "go" odehraje celý jeden tah hráče. Díky tomu lze v konzoli (logu) kontrolovat, co se vlastně přesně stalo a jak hráč hraje.

Export data to csv: Uloží souhrnné statistiky do CSV souboru.


Monitory

Player1 Score, Player2 Score: Aktuální bodový zisk každého hráče.

Round Score: Průběžné skóre v rámci právě probíhajícího tahu.

Total Turns: Počet odehraných kol.

Total Farkles: Počet neúspěšných hodů (0 bodů).

Player1 Win ratio, Player2 Win ratio: Výherní poměr daného hráče ze simulovaných her (pouze v batch módu).

Farkles / game: Poměr Farklů na jednu hru.


Grafy

Score chart: Sleduje vývoj bodů obou hráčů v průběhu hry pomocí dvou křivek.

Win rate chart: Zobrazuje kumulativní výhernost po jednotlivých simulacích.


Strategie chování

Každý hráč se v každém tahu rozhoduje, zda pokračovat nebo ukončit tah, podle zvolené strategie. Strategie jsou implementovány v metodě "should-stop?".

conservative: Ukončí tah při >= 400 bodech nebo když zbývají ≤ 3 kostky.

greedy: Pokračuje do >= 700 bodů nebo dokud nezbývají jen 2 kostky.

risky: Pokračuje až do 1000 bodů.

cautious: Variance stylu "conservative".

random: 30% šance na ukončení tahu.

risk-averse: Řídí se rozdílem skóre; pokud je ve vedení, hraje opatrněji.

combo-hunter: Snaží se získat speciální kombinace, jinak "conservative".

point-maximizer: Vždy pokračuje, pokud má znovu 6 kostek.

custom: Čistě definovaná pomocí sliderů (viz výše).

Farkle2.png


Skórovací systém

Samostatné hodnoty: číslo 1 (100 bodů), číslo 5 (50 bodů) - toto jsou jediná 2 čísla, která lze vzít a započítat samostatně (není nutné aby byly v kombinaci) straight (1-6) za 2000 bodů,

trojice stejných čísel (triplet): bodované jako 100 * [hodnota na kostkách z trojice], tedy trojice [2][2][2] je za 200b, obdobně [6][6][6] je za 600b. Výjimka je pouze u [1][1][1], které jsou za 1000b,

double triplet (dvě trojice): součet hodnot trojic,

čtveřice: kombinace čtyř stejných hodnot, počítá se jako body za trojici * 2,

pětice: kombinace pěti stejných hodnot, počítá se jako body za čtveřici * 2,

šestice: kombinace šesti stejných hodnot, počítá se jako body za pětici * 2,

menší postupka: V hodu padne kombinace 1 až 5, je za 500b,

větší postupka: V hodu padne kombinace 2 až 6, je za 750b,

čistá postupka: V hodu padne od každé hodnoty právě jedna, tedy 1 až 6, je za 2000b,

Pokud jsou všechny kostky skórovací, obnoví se 6 kostek.

"Farkle" = 0 bodů — ztráta tahu.

Hra končí dosažením požadovaného limitu, druhý hráč má možnost posledního tahu.


Vizualizace

Herní pole (view) je rozděleno na dvě vertikální osy:

Levá osa patří hráči 1 (modrý kruh).

Pravá osa patří hráči 2 (červený kruh).

Osy mají fungují jako škála, po které se barevné kruhy hráčů posouvají na základě jejich celkového skóre.

Popisky zobrazují jména hráčů a cílovou hodnotu.


Závěr

Model Farkle simulace v NetLogo demonstruje možnosti agentních modelů v oblasti herních strategií a rozhodovacích procesů. Byly implementovány různé strategie, vizualizace pokroku a export analytických dat. Systém je flexibilní a připraven k dalšímu rozšíření – např. o pokročilou AI, časovou analýzu nebo adaptivní učení strategií. Projekt slouží jako tool, který využiji pro svou diplomovou práci, příklad herní simulace s realným uplatněním v oblasti učení, teorie her či testování rizikových rozhodnutí.


Kód

Simulace zde: File:Farkle-Hlavnička.nlogo


Reference

[1] [2] [3] [4] [5]