Post by Tomáš Němec on Dec 17, 2017 11:16:46 GMT 1
Jak vlastně AI hraje, proč se rozhoduje tak, jak se rozhoduje?
Pokud jste zavítali na tento příspěvek, pak se patrně chcete něco dozvědět o možnostech nastavení hry. Narozdíl od lidí AI neumí "přemýšlet", místo toho se snaží náhodně rozlosovat karty spoluhráčům a s těmito kartami potom simulovat hru, podle výsledků simulací se pak rozhodne jakou hru zvolit, popř. jestli má flekovat. Ve statistické hantýrce se tento postup nazývá metoda Monte Carlo.
Výsledky simulace jsou vidět po skončení hry pokud kliknete na tlačítko "Průběh hry". Například Karel: Hra Re (85%).
Konkrétní rozhodnutí zda zvolit hru, oflekovat apod. se dá ovlivnit pomocí nastavení prahů. Jak na to?
V Menu > Nastavení > Nastavení AI najdete většinu parametrů, které ovlivňují chování AI.
Prahy pro volbu hry a flekování
U každého typu hry můžete nastavit práh pro volbu a pro fleky. Čím je hodnota vyšší, tím jistěji musí simulace vyjít, aby AI hru zvolil resp. oflekoval. Naopak čím bude hodnota nižší, tím více bude AI mít tendenci jít do rizika. To, zda AI hru oflekuje je ovlivněno i dalšími podmínkami - např. AI neflekuje pokud netrhá trumfovou hlášku nebo nemá aspoň 40 bodů na ruce v jiných hláškách.
Příklad:
Risk faktor
Risk faktor je parametr, který ovlivňuje to, s jakou mírou rizika se bude snažit AI mazat v průběhu hry. Čím je číslo větší, tím bude riskovat více a naopak (narozdíl od předchozích nastavení).
Pokročilá nastavení
Z různých důvodů se ne všechna nastavení dostala do uživatelského rozhraní. Zde najdete popis toho, co lze nastavit pouze ze souboru. Většina těchto nastavení vznikla na popud hráčů až v průběhu testování beta verze.
Jména hráčů
Jména hráčů lze změnit pomocí editace volby PlayerNames.
Doba přemýšlení
V průběhu zahájení hry obě strany provádějí simulace hry, sedmy, betlu a durcha. Maximální doba každé dílčí simulace lze nastavit pomocí parametru ThinkingTimeMs. Hodnota je v milisekundách, čili 1000 odpovídá jedné sekundě.
Rychlost dialogů
Dobu po kterou budou dialogy (bubliny) vidět lze upravit pomocí volby BubbleTimeMs. Pokud se vám tedy zdá rychlost konverzace moc pomalá nebo moc rychlá, zde si ji můžete upravit. Hodnota je v milisekundách, čili 1000 odpovídá jedné sekundě.
Maximální délka historie
Z různých důvodů není vhodné mít neomezenou délku historie. Pokud máte odehráno hodně her, může být graf nepřehledný. Dále pokud zjistíte, že obrazovka historie se zobrazuje pomalu, může to být tím, že vykreslit graf "trvá dlouho". V obou případech lze problém vyřešit tím, že nastavíte maximální délku historie. Po jejím překročení se historie automaticky smaže. Pokud je hodnota nastavena na nulu, tak se historie nemaže.
Nastavení usínání
Usínání displeje šetří baterii, ale při hraní spíše obtěžuje. Hodnota true usínání displeje zakazuje, hodnota ho false povoluje.
Automatická sehrávka posledního kola
V posledním kole už zbývá jen jedna karta. To zda sehrát poslední kolo automaticky, či manuálně je věcí osobního vkusu. Pokud si přejete sehrát poslední kolo automaticky, nastavte hodnotu true jinak false.
Práh pro plonkovou desítku
Tento parametr oliňuje míru rizika, při kterém se bude AI snažit vytáhnout ze soupeře plonkovou desítku. Hodnota je v setinách procenta. Jako oddělovač desetinných míst je nutné použít tečku, ne čárku. Podobně jako u risk faktoru vyšší číslo znamená vyšší míru riskování.
Pokud jste zavítali na tento příspěvek, pak se patrně chcete něco dozvědět o možnostech nastavení hry. Narozdíl od lidí AI neumí "přemýšlet", místo toho se snaží náhodně rozlosovat karty spoluhráčům a s těmito kartami potom simulovat hru, podle výsledků simulací se pak rozhodne jakou hru zvolit, popř. jestli má flekovat. Ve statistické hantýrce se tento postup nazývá metoda Monte Carlo.
Výsledky simulace jsou vidět po skončení hry pokud kliknete na tlačítko "Průběh hry". Například Karel: Hra Re (85%).
Konkrétní rozhodnutí zda zvolit hru, oflekovat apod. se dá ovlivnit pomocí nastavení prahů. Jak na to?
V Menu > Nastavení > Nastavení AI najdete většinu parametrů, které ovlivňují chování AI.
Prahy pro volbu hry a flekování
U každého typu hry můžete nastavit práh pro volbu a pro fleky. Čím je hodnota vyšší, tím jistěji musí simulace vyjít, aby AI hru zvolil resp. oflekoval. Naopak čím bude hodnota nižší, tím více bude AI mít tendenci jít do rizika. To, zda AI hru oflekuje je ovlivněno i dalšími podmínkami - např. AI neflekuje pokud netrhá trumfovou hlášku nebo nemá aspoň 40 bodů na ruce v jiných hláškách.
Příklad:
Práh pro volbu hry je 25%, práh pro volbu kila je 60%.
Pokud tedy například AI provede sto simulací, ze kterých mu 50x vyjde, že vyhraje hru, ale jen 40x vyjde, že uhraje kilo, potom zvolí hru, ale ne kilo.
Podobně je to s protistranou a flekováním.
Pokud tedy například AI provede sto simulací, ze kterých mu 50x vyjde, že vyhraje hru, ale jen 40x vyjde, že uhraje kilo, potom zvolí hru, ale ne kilo.
Podobně je to s protistranou a flekováním.
Risk faktor
Risk faktor je parametr, který ovlivňuje to, s jakou mírou rizika se bude snažit AI mazat v průběhu hry. Čím je číslo větší, tím bude riskovat více a naopak (narozdíl od předchozích nastavení).
Pokročilá nastavení
Z různých důvodů se ne všechna nastavení dostala do uživatelského rozhraní. Zde najdete popis toho, co lze nastavit pouze ze souboru. Většina těchto nastavení vznikla na popud hráčů až v průběhu testování beta verze.
Mariášek na Android lze nastavovat skrz editaci souboru Mariasek/Mariasek.settings - jedná se o soubor ve formátu XML, pro jehož editaci poslouží libovolný souborový prohlížeč, např. Total Commander.
Mariášek na iOS bohužel nelze takto snadno nastavovat. K editaci souboru je nutné aplikaci zazálohovat pomocí programu iTunes v počítači. Následně potom je nutné soubor zeditovat a aplikaci obnovit ze zálohy.
Mariášek na iOS bohužel nelze takto snadno nastavovat. K editaci souboru je nutné aplikaci zazálohovat pomocí programu iTunes v počítači. Následně potom je nutné soubor zeditovat a aplikaci obnovit ze zálohy.
Jména hráčů
Jména hráčů lze změnit pomocí editace volby PlayerNames.
<PlayerNames>
<string>Já</string>
<string>Karel</string>
<string>Pepa</string>
</PlayerNames>
Doba přemýšlení
V průběhu zahájení hry obě strany provádějí simulace hry, sedmy, betlu a durcha. Maximální doba každé dílčí simulace lze nastavit pomocí parametru ThinkingTimeMs. Hodnota je v milisekundách, čili 1000 odpovídá jedné sekundě.
<ThinkingTimeMs>1500</ThinkingTimeMs>
Rychlost dialogů
Dobu po kterou budou dialogy (bubliny) vidět lze upravit pomocí volby BubbleTimeMs. Pokud se vám tedy zdá rychlost konverzace moc pomalá nebo moc rychlá, zde si ji můžete upravit. Hodnota je v milisekundách, čili 1000 odpovídá jedné sekundě.
<BubbleTimeMs>1000</BubbleTimeMs>
Maximální délka historie
Z různých důvodů není vhodné mít neomezenou délku historie. Pokud máte odehráno hodně her, může být graf nepřehledný. Dále pokud zjistíte, že obrazovka historie se zobrazuje pomalu, může to být tím, že vykreslit graf "trvá dlouho". V obou případech lze problém vyřešit tím, že nastavíte maximální délku historie. Po jejím překročení se historie automaticky smaže. Pokud je hodnota nastavena na nulu, tak se historie nemaže.
<MaxHistoryLength>0</MaxHistoryLength>
Nastavení usínání
Usínání displeje šetří baterii, ale při hraní spíše obtěžuje. Hodnota true usínání displeje zakazuje, hodnota ho false povoluje.
<KeepScreenOn>true</KeepScreenOn>
Automatická sehrávka posledního kola
V posledním kole už zbývá jen jedna karta. To zda sehrát poslední kolo automaticky, či manuálně je věcí osobního vkusu. Pokud si přejete sehrát poslední kolo automaticky, nastavte hodnotu true jinak false.
<AutoFinish>true</AutoFinish>
Práh pro plonkovou desítku
Tento parametr oliňuje míru rizika, při kterém se bude AI snažit vytáhnout ze soupeře plonkovou desítku. Hodnota je v setinách procenta. Jako oddělovač desetinných míst je nutné použít tečku, ne čárku. Podobně jako u risk faktoru vyšší číslo znamená vyšší míru riskování.
<SolitaryXThreshold>0.13</SolitaryXThreshold>