Semestrálka Y36ALG – Poker, testing

Došel jsem do fáze, kdy jsem se hrou spokojen, tedy nabízím její alfa verzi k testování a ke hraní :).
Upozorňuji, že hra běží v textovém režimu (v konzoli). K jejímu spuštění použijte přiložené exekuční skripty pro cmd a pro Powershell 1. Jste-li majitel Powershellu, musíte nejprve nastavit „set-executionpolicy remotesigned“.

Download: RAR

Co taková věc dokáže?

V prvé řadě si zahrajete Texas Hold’em proti jednomu počítači. Vzhledem k tomu, že počítač jako umělá inteligence je reprezentován objektem (všechno je reprezentováno objektem), dalo by se jich implementovat víc, ale ne v textovém režimu. Už pro řízení hry mano a mano je zapotřebí ukrutná smyčka smrti o tisících vnořených podsmyček a miliónu příznaků. Dokončit takovou smyčku bylo na celé hře nejtěžší, proto se brzy naučím pracovat se Swingem a celá hra bude event-handled. Až potom bude možno hrát proti n počítačům.

Když už jsme u umělé inteligence, ta moje je velmi rovnocenný soupeř. Potom, co jsem ji naposledy vylepšil už nejsem schopen vyhrát během chvilky. Vlastně se mi to během testování nikdy nepovedlo. Chce to hodně času… počítač vás rozhodně nenechá vyhrát jen tak.
UI je založena na pseudonáhodě – čili podle poměrů určitých konstant a náhodných čísel se například rozhoduje, jestli si v tomto kole zablafuje nebo jestli raisne sázku.

Co se týče pravidel, nejsou implementovány Blindy (což pro jednoho protivníka smysl nemá) a není implementován All In. All In by znamenal zvětšení smyčky smrti minimálně o polovinu (přidání úplně nového herního stavu, kdy jsou karty protivníka na stole), takže snad až někdy v grafické verzi, kterou chystám na příští semestr, společně se síťovou hrou několika hráčů.

Dále můžete nastavit některé ty opšns, vyhodnotit libovolnou kombinaci nebo se podívat na Pokerové kombinace společně s pravděpodobností a matematickým vyjádřením kombinačními čísly.

Kdyby někdo našel bug, do komentářů, prosím :).

Pozn.: Aktuální verze kódu má přibližně 3500 řádků. Je od nás požadováno 250.

5 Comments so far

  1. mikNo Gravatar on Říjen 25th, 2009

    Nejde vsadit 10 a 50 … :)

  2. mikNo Gravatar on Říjen 25th, 2009

    A dvakrat mi to spadlo, jednou kdyz jsem chtel videt navod a podruhy kdyz jsem vyhral… Fuj fuj nehrám!

  3. ScottyNo Gravatar on Říjen 25th, 2009

    Wow, vážně luxusní! A teď pár poznatků:
    1) chtělo by to vidět (alespoň textově) soupeřovi karty na konci hry. Sice je pěkné, že já mám dvojičku osmiček, ale počítač má trojičku a já nevím jakou. Detail, ale potěší. (při delším hraním zjišťuji, že třeba u dvojiček to zobrazuje…)

    2) nikde není vidět, kolik lze minimálně vsadit (ano, sice nemáš blindy, ale někde by to asi napsat chtělo). Zároveň mě hra nenechala vsadit například 50 a vůbec nevím proč. Ani v průběhu hry to nenechá. Takže by to chtělo nějak zkouknout a případně opravit.

    3) pokud zadám velké písmeno, hra zahlásí špatný vstup – možná by to chtělo převádět na malá písmena…

    Na větší beta testing teď nemám čas, ale vypadá to fakt moc dobře!
    +1

  4. ScottyNo Gravatar on Říjen 25th, 2009

    Ještě jsem teď ve schránce našel výpis s tou trojičkou:

    ROUND RESULTS
    Winner: Computer.
    Winning Combination: THREE OF A KIND, ace high, five kicker
    Losing Combination: PAIR, eight high, ace kicker, eights
    Pot value: 330
    Your account: 835
    Computer’s account: 1165

  5. MichaelNo Gravatar on Říjen 25th, 2009

    mik: Jde vsadit číslo MEZI nastaveným limitem. Tedy pokud máš 10 a 50, jde 11 až 49. V těchto situacích mi to nikdy nespadlo a nepadá ani teď. Je to zřejmě javou.

    Scotty: Thx :).

    ad 1) To by možná šlo. Jinak, co je to za troječku se pozná podle toho „high“ zatím. Znamená to nejvyšší kartu z kombinace.

    2) V Options se dá nastavit minimální a maximální sázka, ale je tam menší nebo větší, takže při 20 až 50 jde 21 až 49. Asi to opravím.

    3) Jj, bere to jenom dolní kejs. Ignore case doprogramuji.

    Díky za rady a hodnocení :).

Leave a Reply

Security Code: