Dice8Next
3. 5. 2026

Jak jsem již napsal v minulém článku, předělávám pro ZX Spectrum Next velmi pěknou hru od PCH/UNREAL z Commodore 64. Popravdě mi nevadí na Commodoru tuto hru hrát, opravdu stojí za to a je udělaná velmi dobře - spoustu animací, překvapení atd... Nesnažím se okopírovat tuto hru 1:1 (vyjma pravidel), ale snažím se do hry přidat další věci, aby tento port měl i přidanou hodnotu. Jo a zmínil jsem se, že do hry přislíbil hudbu Martin Bórik, opravdu se máte na co těšit. Ale abych to neokecával dlouho (stejně jste to poznali z nadpisu), přidal jsem do Dice8Next CPU hráče. A v tomto článku bych rád uveřejnil strategii, podle které se řídí.

CPU hráč v Dice8Next

Jak jsem již napsal v minulém článku, předělávám pro ZX Spectrum Next velmi pěknou hru od PCH/UNREAL z Commodore 64. Popravdě mi nevadí na Commodoru tuto hru hrát, opravdu stojí za to a je udělaná velmi dobře - spoustu animací, překvapení atd... Nesnažím se okopírovat tuto hru 1:1 (vyjma pravidel), ale snažím se do hry přidat další věci, aby tento port měl i přidanou hodnotu. Jo a zmínil jsem se, že do hry přislíbil hudbu Martin Bórik, opravdu se máte na co těšit. Ale abych to neokecával dlouho (stejně jste to poznali z nadpisu), přidal jsem do Dice8Next CPU hráče. A v tomto článku bych rád uveřejnil strategii, podle které se řídí.

Musím se přiznat, že jsem se do toho vrhnul (jak je u mne zvykem) po hlavě a nějak jsem se nezabýval jak by měl CPU hráč vlastně "uvažovat" a proto jsem spoustu věcí několikrát přepisoval. Ani jsem neodhadl náročnost tohoto úkolu, protože ono to není moc jednoduché a ověřovat chování CPU hráče je těžké - vždy záleží na tom , jak hodí kostkami. Ale jen aby to nebylo takové nudné hraní s CPU protivníkem, zobrazuje se Vám, uvažování CPU hráče - vidíte na jaký bonus cílí (zní to jako blbost, ale popravdě mne baví koukat na uvažování počítače). Takže se pohodlně usaďte a zkuste mi poradit lepší strategii, než je tato:

CPU hraje stejně jako lidský hráč – má tři hody kostkami a na konci musí zaznamenat skóre do jedné z kategorií. Celý tah probíhá ve stavovém automatu:

  1. První hod – CPU okamžitě hodí všemi pěti kostkami a teprve potom volí cílovou kategorii. Plán se tedy staví podle toho, co skutečně padlo, ne podle nějakého předem zvoleného záměru.
  2. Výběr strategie – po každém hodu CPU vyhodnotí, kam nejlépe zamířit a vybere cílovou kategorii. Nad zvolenou kategorií se zobrazí trojúhelníkový sprite – marker abyste viděli, na co CPU míří.
  3. Přidržení kostek – CPU postupně přidržuje kostky, které se hodí k vybrané kategorii, a přehodí zbytek. Kostky se přepínají po jedné na snímek, aby byl pohyb čitelný.
  4. Zápis skóre – po posledním hodu (nebo pokud je plán splněn dříve, viz níže) CPU zapíše výsledek. Těsně před zápisem CPU ještě jednou znovu přepočítá nejlepší kategorii podle aktuálního stavu kostek, aby zápis nebyl ovlivněn zastaralým plánem z předchozích hodů.

Výběr kategorie

1. Okamžité zamknutí hotových kombinací

Pokud kostky právě tvoří YACHT (50 bodů), LARGE STRAIGHT (40 bodů) nebo FULL HOUSE (25 bodů) a daná kategorie je ještě volná, CPU ji okamžitě zvolí bez dalšího uvažování.

2. Honba za Large Straight

Pokud CPU má kompletní Small Straight (4 po sobě jdoucí hodnoty, 30 bodů) a ještě zbývají hody, CPU záměrně neskóruje – místo toho drží tyto čtyři kostky a hodí pátou, protože šance na Large Straight (40 bodů) stojí za to.

3. Zamykání horní sekce pro bonus

Pokud má CPU tři nebo více šestek (preview ≥ 18), pětek (≥ 15) nebo čtyřek (≥ 12) a horní bonus (63 bodů) je ještě dosažitelný, CPU tuto kategorii upřednostní. Dosažitelnost se počítá přesně – sečtou se maxima zbývajících volných horních kategorií a porovnají s tím, kolik bodů ještě chybí do 63.

4. Vážené skórování zbývajících kategorií

Pro všechny ostatní volné kategorie CPU spočítá tzv. rozhodovací skóre:

skóre = (preview × 4) + váha kategorie + urgentní bonus horní sekce − penalizace

  • Preview je předpočítaný výsledek, kolik bodů by kategorie nyní přinesla. Násobí se čtyřmi – preview tedy zůstává dominantním faktorem.
  • Váha kategorie je statická tabulková hodnota zvýhodňující prémiovější kategorie. Konkrétně: ACES=0, TWOS=1, THREES=2, FOURS=4, FIVES=7, SIXES=9, 3KIND=3, 4KIND=4, FULL=6, SMALL=6, LARGE=8, YACHT=9, CHANCE=2.
  • Urgentní bonus horní sekce (3, 4, 5, 6, 8, 10) se přičítá u horních kategorií, pokud CPU ještě nemá horní bonus a body do něj jsou matematicky dosažitelné. Vyšší kostky dostávají větší push – šestky tlačí CPU silněji než jedničky.
  • Penalizace CHANCE – pokud ještě zbývají hody, od skóre CHANCE se odečte 8. CPU si CHANCE nechává jako zálohu na pozdější tah.
  • Waste penalty – u horních kategorií, kde už nejsou hody a preview je slabý (pod 1/3 maxima dané kategorie), se odečte „plýtvání" = max − preview. Tím se CPU odrazuje od zápisu třeba jediné šestky do SIXES, když může raději obětovat slabší kategorii.
  • Zero penalty – kategorie s nulovým preview dostávají penalizaci podle tabulky (od 1 pro ACES až po 12 pro YACHT). Nuly se použijí jen v nouzi a pořadí preferuje obětovat levnější kategorie.

CPU pak zvolí kategorii s nejvyšším celkovým skóre.

5. Plán je stabilní, ale přepnutelný

Jednou zvolený plán CPU nemění zbytečně. Přepne se pouze tehdy, pokud nová kategorie nabídne skóre o více než 4 body vyšší než aktuální plán. Tím se zabrání chaotickému přeskakování mezi volbami po každém hodu.

6. Přemapování slabých kombinací na horní sekci

Pokud algoritmus nakonec vybere 3 OF A KIND nebo 4 OF A KIND a dominantní hodnota je 1, 2 nebo 3, CPU se ještě podívá, zda je odpovídající horní kategorie volná – a pokud ano, přepne se na ni. Drobné trojice nemá smysl utrácet do prémiových slotů.

Přidržování kostek (hold logika)

Jakmile CPU ví, co chce, přidržuje kostky odpovídající plánu:

Plán Logika přidržení
Horní kategorie (jedničky–šestky) Přidrží všechny kostky se správnou hodnotou
Trojice / Čtveřice Přidrží dominantní hodnotu (tu, které je nejvíce); pokud žádný pár neexistuje, spadne na logiku „high dice" – drží 5/6, jinak 4, jinak nejvyšší jednu kostku
YACHT Stejně jako trojice/čtveřice – dominantní hodnota, jinak high dice
Full House Hledá dvě různé hodnoty s nejvyšší četností a přidrží obě skupiny (typicky pár + trojici nebo dva páry)
Straights Analyzuje přítomnost hodnot 1–6 jako bitové pole a hledá okno s nejvíce zastoupenými hodnotami (1–4, 2–5, 3–6 pro Small; 1–5, 2–6 pro Large). Z každé potřebné hodnoty drží první nalezenou kostku.
CHANCE Přidrží kostky s hodnotami 5 a 6; pokud žádné nejsou, drží čtyřky; v krajním případě jednu nejvyšší kostku

Kdy CPU přestane házet

Po každém přidržení CPU kontroluje, jestli má vůbec smysl házet znovu. Pokud ano, ale kategorie je „dost dobrá", zapíše skóre i když ještě má hody k dispozici. Pravidla:

  • Horní sekce – pokud preview dosáhlo maxima (5× příslušná hodnota), zapíše. Jinak hází dál, protože další hody nemůžou snížit už přidržené kostky.
  • 3 OF A KIND – při posledním zbývajícím hodu zapíše, pokud preview ≥ 20.
  • 4 OF A KIND – při posledním zbývajícím hodu zapíše, pokud preview ≥ 22.
  • FULL HOUSE / SMALL / LARGE / YACHT – zapíše, jakmile je preview na plné hodnotě (25 / 30 / 40 / 50).
  • CHANCE – při posledním hodu zapíše, pokud preview ≥ 22.

Speciální situace

Obětování kategorie

Pokud CPU nemá žádnou kategorii, kde by v tuto chvíli bodovala, musí „obětovat" – zapsat nulu. Obětuje v pevně daném pořadí podle tabulky : ACES → TWOS → THREES → 3KIND → 4KIND → FOURS → SMALL → FIVES → FULL → CHANCE → LARGE → SIXES → YACHT. Nejlevnější horní kategorie padnou první, prémiové sloty (LARGE, SIXES, YACHT) se chrání co nejdéle.

Bonus SIXES vs. YACHT

V situaci, kdy CPU má 4 nebo 5 šestek (preview SIXES ≥ 24) a zároveň ještě potřebuje body do horního bonusu, CPU může upřednostnit zapsání šestek před YACHTem (50 bodů). Konkrétní pravidlo:

  • chybí-li do bonusu méně než 25 bodů → zvolí SIXES,
  • chybí-li 31 a více bodů → bonus je už beztak skoro mimo dosah, zvolí YACHT,
  • chybí-li 25–30 bodů → záleží na počtu volných horních kategorií. Pokud zbývají méně než 3, zvolí SIXES (jinak by se body do bonusu nedaly stihnout).

Přehodnocení na konci tahu

Těsně před zápisem skóre CPU vždy znovu přepočítá nejlepší kategorii podle aktuálního stavu kostek. Tím se zabrání tomu, aby zápis byl ovlivněn zastaralým plánem z předchozích hodů. CPU v Dice8 nehraje náhodně ani jen hladově. Kombinuje okamžité „uzamykání" hotových kombinací s dlouhodobou strategií – honbou za bonusem horní sekce a Large Straight. Vážené rozhodovací skóre vyvažuje aktuální zisk (preview), strategickou hodnotu kategorie a tlak na bonus, zatímco hysteréze 4 body brání přeskakování mezi plány. Při vynucených obětováních CPU zapisuje nuly v pořadí, které šetří prémiové sloty na později. A to je vše přátelé :)

screenshot_2026_5_5___20_49_38

1 Comment

  1. PCH of UNREAL napsal:

    Par postrehu po asi 300.000 odehranych her

    1. Yachta ma prednost vzdy.
    2. Bonus 35 bodu vlevo neni zase tak neco pokud chybi vpravo velka postupka
    3. I covek zmeni strategii po kazdem hodu pokud si mysli, ze je „ta spravna“. To bych povolil a nebo vlozil nahodu do rozhodnuti. Pak to vypada jako necitelna strategie
    4. Yachta ze sestek se mnohdy vyplati dat do sestek nebo do 4z … a tam by vaha byla pocet odehranych figur. Vubec bych se nebal dat sestkovou yachtu do figur a ne do yachty, pokud jsem v 1/3 hry.

    Mozna me jeste neco napadne a pak to naroubuju do C64

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *