Čtyřka – mariáš pro čtyři hráče

Jako bakalářský projekt jsem v minulém století napsal karetní hru Čtyřka – mariáš pro čtyři hráče. Ta se pak i celkem úspěšně prodávala. Teď jsem se k tomu vrátil a přepsal jsem ji pro prohlížeč.

screenshot

Po letech jsem byl opravdu rád, jak jsem to už tehdy napsal dobře. Zaprvé je herní algoritmus zcela oddělen od zbytku programu (je to samostatné DLL) a dostává jen ty informace, které daný hráč může mít. Nemůže tedy podvádět – koukat se hráči do karet ani spolupracovat s ostatními algoritmy. Zadruhé to není žádné obyčejné procházení stromem, ale hraje to podle asi 80 heuristik, které jsem zadal podle toho, jak jsem tehdy sám hrál. Hraje to tedy spíš jako člověk než jako počítač. Třeba když jsem hrával šachy, tak mě to proti lidem bavilo, ale proti počítači ne. Tady je to do značné míry potlačeno a docela mě překvapilo, jak mě po letech můj starý algoritmus drtí – inu, moc jsem za ta léta netrénoval.

Ve starém programu jde zapnout logování veškerých událostí a pouhým držením Enteru se dá rychle odehrát desítky her. Claude se z toho úplně tetelil blahem – můj algoritmus označil za korunní klenot programu, nechal mě „odehrát“ 400 her, celkem snadno reimplementoval algoritmus do TypeScriptu a pak si pomocí logu porovnal, jestli tam nejsou nějaké nesrovnalosti. Dokonce dokázal nový algoritmus pustit proti starému DLL a porovnal, jestli náhodou jedna verze nevydělává podezřele hodně peněz. Pak jsme teprve starý algoritmus začali vylepšovat.

Nechal jsem napsat i nový algoritmus pomocí procházení stromem, ale můj starý algoritmus nepřekonal – počítal s tím, že všichni budou hrát dokonale, což jde s neúplnou informací dost těžko.

Nová hra

screenshot

Uživatelské rozhraní bylo hotové celkem rychle a snadno. Překvapilo mě ale, že samotná hra byla zhruba jen třetina práce.

Další třetinu spolkla monetizace – hra se dá podobně jako původní Čtyřka zdarma vyzkoušet, pak si ji můžete koupit. Takže zřízení účtu u Fio, generování platebního QR kódu, samostatný EUR účet, párování plateb. Hra s platbou nijak zvlášť neotravuje – jen každé rozdání zobrazí platební informace o desetinu sekundy déle. Po sto hrách už čekání většinu hráčů přestane bavit.

A poslední velká část byla kampaň původním zákazníkům – na některé mám e-mail, na jiné telefon a na některé jen poštovní adresu. Takže to obnášelo všechno od zpracování nedoručitelných e-mailů, posílání SMS z Androidu, generování čitelných slevových kódů až po účet na Dopis Online.

Celé jsem to navibekódoval, většinu kódu jsem ani nečetl. Ale samozřejmě to nebylo jen „naprogramuj mariáš a obešli původní zákazníky“. Obnášelo to řadu vymýšlení a rozhodnutí, která výslednou podobu zásadně ovlivnila.

Možná hra nebude tak úspěšná jako její původní verze – přece jen už tehdy hráli mariáš z velké části důchodci. Ale i tak jsem rád, že jsem se k tomu vrátil – fakt mě to bavilo a dost jsem se toho naučil.

Zkuste si novou hru Čtyřka – křížový mariáš pro čtyři hráče zahrát. Součástí je i tutoriál, který základní pravidla vysvětluje.

Jakub Vrána, Osobní, 9.9.2026

Diskuse

Matej:

Super len v korporatoch to asi nebude ficat FortiGuard to blokcuje pretoze je to podla neho "P"

FortiGuard Intrusion Prevention - Access Blocked
Web Page Blocked

You have tried to access a web page that is in violation of your Internet usage policy.
Category     P*rnography
URL     http://ctyrka.com/

Asi by som zapracoval na odstraneni z toho listu

ikona Jakub Vrána:

Opraveno, tak to snad brzo probublá.

The website(s) you submitted below has been reviewed and updated:

Submission Date:            Wed, 9 Sep 2026 08:55:42 -0700
URL:                        hxxps://ctyrka[.]com/
Customer Comment:           Ctyrka is a free browser implementation of marias, a traditional Czech four-player trick-taking card game. The current rating is left over from a previous owner. The Internet Archive's 2019 capture of this domain shows a cloned Chinese corporate website.
Updated Category:           Games
Update Date:                Wed, 9 Sep 2026 10:41:04 -0700

Josef Slanina:

nastavení velice špatné hraji mariáš 55 roků že dostane hráč špatnou kartu je normální ale není normální že ji dostane pokaždé vyhozených 350 korun

ikona Jakub Vrána:

Postrádáte nějaké konkrétní nastavení? Karty se rozdávají podle pravidel mariáše – tedy míchá se jen po nedohrané hře nebo hře ve špatné barvě.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2026 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.