Poker, počítačová hra s umělou inteligencí

Rozměr: px
Začít zobrazení ze stránky:

Download "Poker, počítačová hra s umělou inteligencí"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Bakalářská práce Poker, počítačová hra s umělou inteligencí Tomáš Tvaroh Vedoucí práce: Ing. Miroslav Balík, Ph.D. Studijní program: Softwarové technologie a management, Bakalářský Obor: Softwarové inženýrství 29. května 2009

2 ii

3 Poděkování Rád bych poděkoval svému vedoucímu bakalářské práce Ing. Miroslavu Balíkovi, Ph.D. za rady a věcné připomínky při zpracování práce. Dále bych chtěl poděkovat svým rodičům za toleranci a pomoc, kterou mi v průběhu studia poskytli. iii

4 iv

5 Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne v

6 vi

7 Abstrakt Tato práce se zabývá analýzou, návrhem a implementací aplikace, která umožňuje hrát v současné době nejpopulárnější variantu karetní hry poker s názvem Texas Hold em. Aplikace podporuje hru více hráčů po síti a obsahuje umělou inteligenci pro hru proti hráčům ovládaným počítačem. Tyto možnosti se dají kombinovat a v jedné hře mohou hrát zároveň lidští i počítačoví hráči. Součástí práce je testování aplikace z hlediska uživatelského rozhraní, logiky programu a umělé inteligence. vii

8 viii

9 Abstract This thesis describes analysis, design and implementation of application that provides functionality to play Texas Hold em, world s most popular variant of poker. Application supports multi-player game via computer network and implements artificial intelligence to play against computer players. These approaches can be combined so that a game can include both human and computer players. Application is then tested regarding user interface, program functionality and level of artificial inteligence. ix

10 x

11 Obsah 1 Úvod Zadání O pokeru Cíl práce Existující programy Pokerové místnosti Pokerové automaty Podpůrný software Hra proti počítači Pravidla hry Průběh hry Vlastnosti hry Průběh kola Shrnutí Pořadí kombinací Analýza Použité technologie Programovací jazyk Síťový protokol Use Case diagramy Uživatelé Diagram nastavení Diagram hry Doménový diagram Architektura aplikace Architektura klient/server Samostatná aplikace Zhodnocení a výběr architektury xi

12 4 Realizace Funkcionalita balíčků Configuration Engine Interfaces Network View Ohodnocení karetní kombinace Algoritmus vyhodnocovací funkce Umělá inteligence Algoritmus ohodnocení síly karet Výpočet indexu zisku Rozhodování na základě indexu zisku Testování Testování použitelnosti Testování logiky programu Testování umělé inteligence Srovnání s existujícími aplikacemi Závěr 29 Literatura 31 A Slovník pojmů 33 B Instalační a uživatelská příručka 35 B.1 Obsah přiloženého CD B.2 Instalace a spuštění B.3 Ovládání aplikace B.3.1 Menu B.3.2 Hlavní pohled B.3.3 Nastavení xii

13 Seznam obrázků 3.1 Use Case diagramy Use Case - diagram nastavení Use Case - modul hry Doménový diagram B.1 Hlavní obrazovka B.2 Výchozí hodnoty B.3 Herní hodnoty xiii

14 xiv

15 Seznam tabulek 2.1 Příklady karetních kombinací xv

16 xvi

17 Kapitola 1 Úvod Tato práce se zabývá implementací karetní hry poker včetně umělé inteligence umožňující hru proti počítačovým protivníkům. Poker představuje z hlediska umělé inteligence zajímavý problém, protože se jedná o hru s neúplnou informací, kdy žádný z hráčů nemá v danou chvíli všechny informace o stavu hry. U her s úplnou informací, jako jsou například Šachy nebo Go [9], je princip umělé inteligence založen převážně na prohledávání do hloubky, ohodnocování pozice a prořezávání výsledného stromu. U pokeru se navíc musí počítat s nejistotou, rizikem a také s psychologií protihráčů. Co je proti jednomu oponentovi dobrý tah může být špatný tah proti oponentovi jinému i přesto, že stav hry je v obou případech stejný. Kromě umělé inteligence je součástí výsledné aplikace možnost hrát hru i proti lidským protihráčům s využitím lokální počítačové sítě nebo Internetu. V této kapitole je čtenář seznámen s pokerem a bude vysvětleno, že poker není jen hazard o štěstí, ale komplexní hra s propracovanou složitou strategií. Budou zde popsány zadání a cíle této bakalářské práce a závěrem kapitoly budou uvedeny existující softwarové produkty, které se zabývají pokerovou tématikou. 1.1 Zadání Cílem práce je vytvořit aplikaci, která by umožňovala hrát karetní hru poker. Aplikace bude umožňovat hru více hráčů po síti s využitím TCP protokolu i hru proti počítači. Součástí programu bude umělá inteligence, která bude umět poker hrát. Varianty hry půjdou mezi sebou kombinovat, a proto bude možné hrát zároveň proti lidským i počítačovým protihráčům. Kvalita navržené umělé inteligence bude otestována v reálné hře proti lidským hráčům. 1

18 1.2 O pokeru Poker je v současnosti nejrozšířenější karetní hra na světě. Na světě ho hraje přes sto miliónů lidí [1] a toto číslo stále roste, protože čím více poker nabývá na popularitě, tím více je o něm slyšet, a tím pádem má více lidí možnost se s ním seznámit. Z karetní hry se tak pomalu začíná stávat sportovní odvětví se vším, co ke sportovnímu odvětví neoddělitelně patří. Záznamy z větších turnajů jsou přenášeny na televizních sportovních kanálech a fanoušci se vydrží dívat celé hodiny na to, aby se dozvěděli, kdo turnaj vyhraje, případně aby mohli sledovat hru svého favorita a fandit mu. Existují i populární pořady (High Stakes Poker, Poker After Dark) [7], ve kterých moderátor komentuje pokerovou hru pro veřejnost, filmy s pokerovou tématikou (Rounders) a dokonce i celý seriál věnovaný jen této hře (Tilt). V České republice, hlavně mezi starší generací, má však zatím poker negativní nádech hazardu, který je obecně brán jako něco špatného. Poker není hazard, protože narozdíl od automatů a loterií, kde člověk musí nejprve vsadit určitou část peněz a potom v závislosti na náhodě, kterou nemůže ovlivnit, buď vyhraje nebo prohraje, mechanismus pokeru funguje trochu jinak. Hráč sází postupně v průběhu hry v závislosti na tom, jak daná hra probíhá. Pokud se mu nelíbí karty, které dostane na začátku, může se rozhodnout, že nebude hru vůbec hrát. Učiněním tohoto rozhodnutí nepřijde v dané hře o nic nebo jen o velmi málo. Poker tedy není hra hazardní, ale hra velice komplexní, kde záleží na umění hráče, přičemž ti dobří potom vítězí a ti špatní prohrávají. Hra v kasínu potom probíhá tak, že narozdíl od rulety, blackjacku a podobných, kde hraje člověk proti kasínu, v pokeru hrají hráči pouze proti sobě, a co jeden získá, to druhý musí ztratit. Dlouhodobě se tak dá finančně růst, a proto existuje spousta lidí, kteří se hraním pokeru živí. Ti zvládli strategii hry na takové úrovni, že vítězí nad ostatními, což je dalším důkazem toho, že poker není pouze o štěstí, jak si hodně lidí myslí. 1.3 Cíl práce Cílem této práce je navrhnout a následně implementovat program, který bude umět poker hrát. Program se bude skládat ze tří následujících modulů: logika programu, uživatelské rozhraní, umělá inteligence. Jednotlivé moduly budou na sobě nezávislé, což zvýší přehlednost kódu a usnadní to práci při případném pokračování v projektu. Logika programu bude zajišťovat 2

19 dodržování pravidel hry, bude se starat o balíček karet a o seznam hráčů, hlídat sázky, kontrolovat karty, přidělovat výhry, tedy obstarávat celou technickou stránku programu. Grafické uživatelské rozhraní bude mít na starost interakci s uživatelem a bude předávat události logickému modulu. Program bude schopen i sám hru hrát, o což se bude starat modul umělé inteligence. Před začátkem hry tak bude možné obsadit volná místa hráčem/počítačem, který bude schopen činit rozhodnutí, a hrát v závislosti na nich. 1.4 Existující programy Existující programy, které se zabývají pokerem, se dají rozdělit do čtyř kategorií, přičemž každá kategorie má svá specifika. Proto budou rozebrány zvlášť, bude popsáno, v čem se od sebe liší, a uvedeny příklady softwaru, který do každé z nich spadá Pokerové místnosti Pokerové místnosti se nazývají programy, které umožňují lidem z celého světa hrát proti sobě poker po Internetu. Často jsou vydávány provozovatelem internetového kasína, které vydělává na tom, že si strhává určité procento z každé výhry, tzv. rake, a mají formu klientských desktopových aplikací. Tyto programy jsou zdarma, mají vynikající design, výbornou technickou podporu a vždy se tam dají najít spoluhráči. Jejich nevýhodou je to, že neumožňují hru proti počítači, a již zmíněný rake. Tato kategorie je s ohledem na počet programů nejčetnější, přesto se však aplikace od sebe ve funkčnosti v zásadě neliší. Odlišuje je hlavně kvalita různých bonusů za věrnost. V těchto programech je možné hrát i zdarma o tzv. herní peníze, což slouží serveru jako reklama a hráčům jako možnost naučit se poker a vyzkoušet si nezávazně prostředí programu. Patří sem například programy PokerStars, PartyPoker, TitanPoker nebo například český ExpektPoker Pokerové automaty Pokerové místnosti mají excelentní logiku programu a uživatelské rozhraní, ale žádnou umělou inteligenci. U pokerových automatů, v literatuře také označovaných jako boti, je tomu přesně naopak. Tyto programy implementují pokerovou AI a často ani žádné uživatelské rozhraní nemají, jen se připojí na nějaký existující poker server a chovají se jako hráč. Na většině serverů je ale oficiálně zakázáno je používat, protože tyto servery jsou určeny pouze pro lidské hráče. 3

20 WinHoldEm WinHoldEm je pokerový program Raye Borneta, který se připojí na zvolený pokerový server a hraje na něm místo hráče. Úroveň jeho umělé inteligence je vysoká a obsahuje implementaci statistik, sledování chování protivníků, ale například i blufování, což je umění předstírat, že má hráč dobré karty, přestože to ve skutečnosti není pravda. Jeho hlavní nevýhodou je to, že je ilegální. Používání automatických systémů na většině pokerových serverů může při odhalení vést od zablokování přístupu až po vážné právní následky. Polaris Polaris je pokerový bot vyvinutý výzkumnou skupinou na univerzitě v Albertě ve Spojených státech. V roce 2007 na pokerové soutěži člověk vs. počítač dokázal porazit pokerové profesionály, ovšem zatím pouze ve hře dvou hráčů. Stejně jako předchozí bot, ani tento nenabízí možnost si proti němu zahrát, protože z výše zmíněných třech částí mého softwarového projektu pokrývá pouze umělou inteligenci Podpůrný software S rozvojem online pokeru šel ruku v ruce i vznik všemožných podpůrných softwarů. Je sice ilegální, aby místo vás hrál na Internetu bot, ale pokud máte spuštěný program, který Vám přesně říká, co máte dělat, je vše v pořádku. Protože online pokerem se dají vydělat peníze a tyto podpůrné programy jsou navíc legální, jsou mnohem rozšířenější než boti. Některé tyto programy se dají použít na testování umělé inteligence, a proto zde zmíním dva, které budu při vývoji využívat. Texas Calculatem Tento program se podobně jako bot připojí na pokerový server, ale tentokrát na tom serveru musíte být připojeni i vy, jako hráč. Texas Calculatem potom sleduje, jaké karty server rozdá a jak se chovají protihráči, a na základě toho vám radí, co máte dělat. Program pracuje hlavně s pravděpodobnostmi, takže se ze znalosti již vyložených karet snaží odhadnout šance na to, že zvítězíte. Více informací se dá nalézt na internetových stránkách softwaru [10]. Pokerstove Tento jednoduchý program počítá pravděpodobnost výhry vašich dvou karet nad kartami protivníků. Narozdíl od Texas Calculatem umožňuje zadat rozpětí karet, které si myslíte, že vaši soupeři drží. Další jeho výhodou je to, že je zdarma. Bohužel není možné ho připojit na pokerový stůl, takže všechna data se do něj musí zadávat 4

21 ručně. Navíc počítá pravděpodobnost pouze pro první dvě karty, takže v pozdější hře, kdy se situace změní, již nemá využití Hra proti počítači Zatím žádná ze zmíněných kategorií nepokrývá plně rozsah tohoto projektu. Každá z nich obsahuje nějakou podmnožinu mnou stanovených cílů programu (logika, uživatelské rozhraní, umělá inteligence), ale žádný z nich neobsahuje všechny. Hra pokeru jen proti počítači ztrácí význam, protože nad počítačem se nedají vyhrát žádné reálné peníze. Texas Holdem Poker Texas Holdem Poker se nachází na adrese Je to hra napsaná v programu flash a splňuje všechny cíle této práce včetně možnosti hry proti počítačovému protihráči. Je dobře graficky zpracovaná a kromě hraní pokeru, které představuje hlavní herní náplň, také poskytuje rámcový příběh a realistický zvukový doprovod. Logika programu i uživatelské rozhraní jsou v této hře zpracované výborně, ale v oblasti umělé inteligence má tato práce ambice Texas Holdem Poker překonat. Telltale Texas Hold em Telltale Texas Hold em je desktopová aplikace, která umožňuje hru hráče proti počítačovým protivníkům. Hra je ve 3D z pohledu hráče, což je na jednu stranu zajímavé, ale také méně přehledné oproti klasickému pohledu na stůl z vrchu. Umělá inteligence hry se nedopouští žádných elementárních chyb a z počátku pobaví i vtipně namluvené komentáře, které vaši protihráči při hře pronáší. Ve své práci bych chtěl oproti Telltale Texas Hold em zlepšit hlavně přehlednost uživatelského rozhraní. 5

22 6

23 Kapitola 2 Pravidla hry Na začátek je potřeba upřesnit, že se celá práce zabývá pouze variantou pokeru s názvem Texas Hold em, což je v současnosti nejrozšířenější varianta. Pokud někoho slyšíte bavit se o pokeru, mluví pravděpodobně právě o Texas Hold emu. Pravidla hry jsou velice jednoduchá. Je až překvapivé, kolik možností může přinést hra, která má tak jednoduchá pravidla, že se dají naučit během několika málo minut. V této kapitole je popsáno, jak probíhá hra od začátku až do konce, a poté je uvedeno pořadí hodnocených figur, podle kterého se určuje, kdo z hráčů vyhrál. 2.1 Průběh hry Vlastnosti hry Než se pustíme do vysvětlování pravidel, je potřeba zmínit několik obecných věcí, které se vztahují ke hře jako celku. Hra se skládá z většího počtu kol, přičemž hned jak se odehraje jedno kolo, tak hned začíná kolo další, a takto se postupuje po celou dobu. Mezi důležité vlastnosti hry patří počet hráčů, ve kterém se dá poker hrát, varianta hry a výše sázek. Počet hráčů Minimální počet hráčů na poker je 2. Maximální počet hráčů, kteří spolu hrají u jednoho stolu, se může různit a nejčastěji nabývá hodnot 6, 8 nebo 10. Protože v jednom turnaji může být zapojeno více stolů, teoretický maximální počet není omezen. Na největším pokerovém turnaji na světě, World Series of Poker - Main event, hraje v jednu chvíli více než 7000 lidí a v některých online turnajích je počet ještě vyšší. Pokud v jedné hře hraje větší množství lidí, rozdělí se na skupiny k jednotlivým stolům a hrají pouze spolu. Jak hráči postupně vypadávají nebo odcházejí, stoly jsou spojovány dohromady, aby celkový počet hráčů u stolu byl co nejblíže jeho 7

24 maximálnímu počtu. Pro účely této práce v bude v aplikaci uvažován pouze jeden stůl pro maximálně osm hráčů. Balíček karet Poker se hraje s balíčkem obsahujícím 52 hracích karet, součástí kterého je 13 různých hodnot karet ve 4 různých barvách. Všechny barvy jsou vůči sobě rovnocenné, karty v rámci jedné barvy mají každá různou hodnotu - nejmenší je ve standardním balíčku dvojka, nejvyšší je eso. Karty se na začátku každé hry míchají, takže pořadí karet je pro každou hru náhodné. Sázky Důležitým aspektem hry je výše sázek. Většinou se hraje o reálné peníze, ale není to podmínkou, dá se hrát i o peníze imaginární. Výše sázek je potom jedním z parametrů, podle kterých vybíráme hru, a značí se dvěma čísly - to druhé je většinou dvojnásobkem toho prvního. V každém kole má jeden z hráčů povinnost dát na začátku sázku odpovídající tomu menšímu z čísel, tzv. small blind, a hráč sedící po jeho levici pak povinně sází částku odpovídající tomu většímu neboli tzv. big blind. Tyto povinné sázky jsou zavedeny z toho důvodu, že v každé hře je pak alespoň nějaká základní hodnota, o kterou se dá hrát. Kdyby nic takového neexistovalo, byla by optimální strategie pokládat všechny karty, které nejsou excelentní, čímž by se hra stala nudnou. Hodnota big blindu potom představuje minimální částku, kterou je možné v průběhu sázení ve hře vsadit. Varianty podle sázení Texas Hold em je jedna z více než tisíce variant pokeru, ale i ta se dále ještě dělí na tři subvarianty podle způsobu, jakým se dá ve hře sázet. Tou nejrozšířenější je No-limit, u kterého platí, že minimální sázka je rovna big blindu a maximální není omezena. Hráč tedy může v průběhu sázení vsadit i vše, co má. Ostatní varianty nějakým způsobem omezují maximální možnost sázky, což sice ubírá na možnostech, jak hru hrát, ale na druhou stranu to zabraňuje riziku ztráty všeho hned v prvním kole. Tato práce se bude zabývat pouze variantou No-limit. Varianty podle způsobu hry Podle způsobu vypadávání hráčů se Texas Hold em dělí na dvě varianty. První z nich se nazývá cash game a spočívá v tom, že kdokoliv chce může kdykoliv přisednout ke stolu a začít hrát. Stejně tak když chce někdo odejít, tak se může v libovolnou chvíli zvednout a odejít. Druhý, turnajový způsob funguje tak, že hráči na začátku zaplatí vstupní poplatek a dostanou nějaké žetony, se kterými hrají. Když někomu 8

25 dojdou, tak vypadává ze hry, a i kdyby měl peníze a chtěl hrát dál, tak už by nemohl. Hráči během hry postupně vypadávají, až nakonec zbyde několik posledních, kteří si podle konečného pořadí rozdělí celkovou výhru, která je složená ze vstupních poplatků všech původních hráčů. U turnajového způsobu se navíc postupem času zvedají povinné sázky, aby turnaj netrval věčně. Obě varianty mají své pro a proti a většina pokerových hráčů je střídá buď podle nálady nebo podle času, který chtějí hře v danou chvíli věnovat. Principy hry jsou ale v obou hrách až na pár výjimek stejné, a proto program bude hrát pro jednoduchost cash game variantu Průběh kola Hra pokeru se skládá z jednotlivých kol, která na sobě nijak nezávisí. Kolo probíhá tak, že na začátku po zamíchání karet dostane každý hráč do ruky dvě karty, které vidí jen on, a v průběhu kola se na stůl ještě vyloží celkem pět karet, které vidí všichni. Během hry také několikrát probíhá sázení, čímž se tvoří bank neboli tzv. pot, o který hráči v daném kole hrají. Když někdo nechce dorovnat sázku, tak z kola vypadává a nemá už žádnou šanci bank v tomto kole vyhrát. Na konci kola hráči, kteří zbyli, vyberou z pěti vyložených a ze svých dvou karet nejlepší kombinaci pěti karet a ten, kdo má nejlepší, tak vyhrává celý pot. Pořadí jednotlivých kombinací je důkladně popsáno v následující sekci. Každé kolo má čtyři části s tím, že na začátku každé části se odhalí nějaké nové karty a pak začne sázení. Když sázení skončí, ukážou se nějaké další karty, potom znovu sázení atd. Protože sázení se provádí ve všech částech stejně, dá se princip jeho fungování popsat zvlášť. Princip střídání jednotlivých částí kola je uveden hned poté. Sázení Sázet začíná hráč po levici rozdávajícího a má dvě možnosti, co udělat. Může vsadit nějakou částku, která ale musí být vyšší nebo rovna hodnotě big blindu, nebo může tzv. vyčkávat, což vlastně znamená, že vsadil 0. Slovo potom postupně přechází na následujícího hráče, který má vždy možnosti tři. Pokud nechce dorovnávat protihráčovu sázku, může položit, a tím pádem z daného kola vypadává a už do něj nemůže nijak zasahovat. V případě, že chce zůstat ve hře, musí minimálně dorovnat sázku nejvýše sázejícího hráče nebo, pokud si věří, může vsadit ještě víc, až do maxima svých žetonů. Sázení takhle pokračuje v kruhu až do doby, než zbyde jen jeden poslední hráč, nebo dokud všichni hráči nedorovnají nějakou částku, tj. nikdo v průběhu celého kola sázku nezvýší. Vyvstává otázka, co se děje v případě, že někdo chce zůstat ve hře, ale jeho celkový počet peněz je nižší, než sázka, kterou potřebuje dorovnat. V tomto jediném případě pravidla povolují výjimku a dovolují hráči vsadit. Kdyby se ale stalo, že hráč 9

26 vyhraje, tak nezíská celý pot, ale pouze poměrnou část toho, co vsadil on, zbytek by šel druhému nejlepšímu ve hře. Střídání jednotlivých částí kola Na začátku kola rozdá jeden z hráčů, tzv. dealer, všem po dvou kartách. Rovnou začíná první kolo sázení a dva hráči po dealerově levici musí postupně vsadit své povinné sázky - small blind a big blind. Sázení pokračuje dokud neskončí a poté se na stůl otočí tři vrchní karty z balíčku, které jsou společné pro všechny zúčastněné. Opět se sází, ale tentokrát se po sázení odkryje už jen jedna karta. To se ještě jednou zopakuje a když se vyloží i poslední, pátá karta, začne poslední sázení a po něm kolo končí. Hráči, kteří zůstali ve hře, si ukáží karty a ten s nejlepší kombinací vyhraje celý pot. V případě, že má více hráčů stejnou kombinaci, pak si pot mezi sebou rozdělí Shrnutí V průběhu celého kola se opakují pouze dvě věci - odhalování nových karet a sázení. Hráči se přitom aktivně zapojují do hry pouze při sázení, takže ve skutečnosti jsou pravidla velmi jednoduchá. Pro přehlednost zde ještě v bodech shrneme průběh jednoho kola: 1. Jeden z hráčů, dealer, rozdá všem po dvou kartách. 2. Hráč po dealerově levici vsadí povinně small blind a následující hráč big blind. 3. Proběhne sázení tak, jak je popsáno v Na stůl se vyloží tři karty. 5. Proběhne sázení. 6. Na stůl se vyloží jedna karta. 7. Proběhne sázení. 8. Na stůl se vyloží poslední, pátá karta. 9. Proběhne sázení. 10. Zbývající hráči ve hře si ukáží karty a ten s nejlepší kombinací získává pot. 11. Dealerem se stává hráč, který byl v tomto kole po dealorově levici, zamíchají se karty a začíná nové kolo. 10

27 Jedno takové kolo trvá průměrně jen pár minut, takže v jedné standardní pokerové hře se hrají desítky až stovky takových kol. Cílem pokeru potom není vyhrát co nejvíce kol, ale mít na konci co největší výhru, takže se může stát, že hráč vyhraje pouze dvě kola, ale pokud to jsou kola důležitá a hraje se v nich o hodně, může tak vyhrát i celou hru. 2.2 Pořadí kombinací Až doposud bylo hodnocení na konci kola popisováno tak, že vyhraje ten hráč, který bude mít nejlepší kombinaci karet. Pořadí jednotlivých kombinací seřazené od nejlepší k nejhorší je následující: 1. Čistá postupka - pět karet stejné barvy, které následují přímo po sobě. 2. Poker - z pěti karet musí alespoň čtyři mít stejnou hodnotu. 3. Full house - právě tři karty tvoří trojici a zbylé dvě karty tvoří dvojici. 4. Flush - všech pět karet má stejnou barvu. 5. Špinavá postupka - všechny karty následují přímo po sobě bez ohledu na barvu. 6. Trojice - právě tři karty mají stejnou hodnotu. 7. Dva páry - mezi pěti kartami existují dvě různé dvojice stejných hodnot. 8. Jeden pár - právě dvě karty mají stejnou hodnotu. 9. Vysoká karta - hodnota nejvyšší karty. Platí, že pokud má hráč lepší kombinaci než ostatní, tak nezáleží na hodnotě karet, které danou kombinaci tvoří. Pokud má více hráčů stejnou kombinaci, tak vítězí ten, jehož karty tvořící kombinaci mají vyšší hodnotu. V případě, že více hráčů má dva páry, je při vyhodnocení rozhodující hodnota vyššího páru. To znamená, že (A, A, 3, 3, 7 ) je lepší kombinace než (K, K, Q, Q, J ), protože dvě esa představují nejvyšší dosažitelný pár. Nižší pár by se bral v potaz pouze v případě, že má více hráčů stejnou hodnotu nejvyššího páru. Full house se vyhodnocuje primárně podle hodnoty karet trojice a teprve v případě remízy se hodnotí dvojice. Při porovnání kombinací (10, 10, 10, A, A ) a (J, J, J, 3, 3 ) by zvítězila druhá uvedená, protože primární kritérium, hodnota karty v trojici, je vyšší než v případě první kombinace. Může se stát, že mají hráči stejnou kombinaci, která má navíc i stejnou hodnotu, což často nastává, když hráči sdílí větší množství společných karet. V takovém případě rozhoduje hodnota nejvyšší zbývající karty. V případě remízy se vyhodnocuje 11

28 druhá nejvyšší karta a tímto způsobem se postupuje dokud některý z hráčů nevyhraje nebo dokud se nerovná všech pět karet, což by znamenalo celkovou remízu a rozdělení výhry. Pro lepší představu uvádíme následující tabulku, ve které jsou uvedeny příklady k různým karetním kombinacím. Kombinace Příklad čistá postupka (3, 4, 5, 6, 7 ) poker (J, J, J, J, 7 ) full house (K, K, K, 2, 2 ) flush (5, J, 8, 2, K ) špinavá postupka (10, J, Q, K, A ) trojice (7, 7, 7, 2, J ) dva páry (10, 10, 5, 5, 7 ) jeden pár (A, A, 2, 6, J ) vysoká karta (K, A, 5, J, 7 ) Tabulka 2.1: Příklady karetních kombinací 12

29 Kapitola 3 Analýza V této kapitole je popsán návrh aplikace. Návrh aplikace bude obsahovat popis technologií použitých při vývoji, všechny podstatné UML diagramy a zhodnocení a výběr architektury programu. 3.1 Použité technologie Důležitým prvkem analýzy každého softwaru je volba vhodných technologií. Rozhodnutí týkající se volby programovacího jazyka, vývojového prostředí, knihoven, protokolů, atd. by měla být učiněna v prvotních fázích projektu, protože ovlivní zásadním způsobem celý vývoj aplikace Programovací jazyk V programu nebudou potřeba rychlé operace s ukazateli, které by v jiných případech mohly vést k volbě jiného programovacího jazyka. Naopak bude kladen důraz na přenositelnost, ve které nemá programovací jazyk Java konkurenci. Projekt bude tedy vyvíjen v Javě. Má navíc hotové knihovny pro práci se síťovou komunikací v balíčku java.net a pro práci s grafickými komponentami v balíčcích java.awt a javax.swing Síťový protokol Aplikace bude využívat síťový protokol TCP. Vhodnost použití v tomto případě je dána malým objemem dat, který bude potřeba přenášet, a bezztrátovostí protokolu. Alternativou by mohl být protokol UDP s nějakým potvrzovacím schématem, ale protože data budou přenášena vždy až po nějaké uživatelově akci a půjde jen o malé packety, bude TCP výhodnější i s ohledem na rychlost jejich zpracování. 13

30 3.2 Use Case diagramy Use Case diagramy neboli případy užití znázorňují interakci různých uživatelských rolí se systémem. Ta se bude lišit podle toho, zda hráč teprve nastavuje parametry hry, nebo už ve hře je a ta probíhá. Tyto dva případy bude nutné uvést ve dvou diagramech, protože činnosti v obou se liší a různé jsou i vztahy uživatelských rolí, které se v nich vyskytují. Obrázek 3.1: Use Case diagramy Uživatelé Dle dostupných případů užití se dají uživatelé zařadit do třech základních rolí: Hráč, Server a Klient. Hráč představuje lidského hráče, který nechce hrát proti jiným lidským protihráčům. Ten může na volnou pozici u stolu usadit sebe nebo počítačového protivníka, nastavovat výši základních sázek a v případě, že je všechno nastavení dle jeho přání, může hru odstartovat. Ve hře pak může provádět klasická pokerová rozhodnutí a, v případě potřeby, také hru zastavit. Server má přístup ke všem funkcím programu jako samotný hráč, ale navíc může povolit připojení vzdáleným lidským hráčům, které může ovšem ze hry kdykoliv odpojit. Klient představuje hráče, který se chce připojit ke hře založené vzdálenou stanicí. Nemá tedy přístup do nastavení parametrů, jako je počet a pozice hráčů, a ve hře samotné je omezen pouze na zadávání svých pokerových rozhodnutí. Mezi uživatelskými rolemi je také na diagramech znázorněna dědičnost. To představuje zjednodušený zápis vazeb na případy užití, který funguje tím způsobem, že potomek sdílí všechny případy užití se svým rodičem. 14

31 3.2.2 Diagram nastavení Fáze nastavování představuje fázi ještě před samotnou hrou. Hráč založí hru a bude muset nastavit parametry hry, jako je počet hráčů, jejich jména, vklady a rozmístění. Klient přebírá tyto informace od serveru, ke kterému se připojí. Obrázek 3.2: Use Case - diagram nastavení 15

32 3.2.3 Diagram hry Hra začíná, když Hráč ve fázi nastavování odstartuje hru. Od té doby hra pokračuje, dokud ji Hráč nezastaví nebo dokud některému z hráčů nedojdou peníze, což pro něj znamená okamžitou prohru. Obrázek 3.3: Use Case - modul hry 16

33 3.3 Doménový diagram V doménovém diagramu jsou znázorněny základní vztahy mezi moduly v programu. Narozdíl od diagramu tříd, od kterého je požadována přesnost a úplnost v atributech a metodách, tento diagram slouží pro představu o architektuře systému a návrh tříd z něj vychází. Obrázek 3.4: Doménový diagram 17

34 3.4 Architektura aplikace Mezi rozhodnutí, které bude mít velký vliv na implementaci a poté i na používání programu, patří rozhodnutí o jeho architektuře. Při zvažování vhodných architektur je třeba vycházet z požadavků na aplikaci a zohlednit je při výběru architektury finální. Poker je hra pro více hráčů a přestože se hráči střídají po tazích, nemohou hrát u jednoho počítače, protože je důležité, aby navzájem neviděli své karty. Protože hra po síti je jedním ze základních požadavků, nabízí se nám možnost zvážit vícevrstvou architekturu klient/server. Druhou možností by bylo vytvořit aplikaci jako samostatný program, kde by volba síťové role byla ponechána na uživatelově rozhodnutí Architektura klient/server Klient-server je síťová architektura, která rozlišuje 2 druhy programů - server a klient. Server zajišťuje logiku programu a umožňuje připojení klientů. Klient obsahuje rozhraní, které slouží pro připojení k serveru po síti, a pomocí tohoto rozhraní se serverem komunikovat. Komunikace probíhá ve formě požadavků, které server vyhodnotí, a pošle klientovi odpověď, který ji v našem případě zobrazí uživateli. V aplikaci umožňující hrát poker po síti by tato architektura byla implementována tím způsobem, že by se vytvořily 2 různé programy, přičemž jeden z nich by představoval server a druhý klienta. Server by obsahoval veškerou logiku programu zahrnující implementaci pravidel a umělou inteligenci, zatímco klient by pouze přijímal a zobrazoval informace o stavu hry. Nemusel by provádět žádnou kontrolu správnosti, jediná funkcionální věc, která by se od něj vyžadovala, je možnost odeslat rozhodnutí o klientově tahu, jehož vyhodnocení bude ale zajišťovat až server. Výhodou této architektury je, že umožňuje úplné oddělení logiky serveru a logiky klienta. Protože se jedná o různé programy, umožňuje tato architektura vytvořit více různých klientů dle potřeby, dokonce i v různých programovacích jazycích. Pokud budou implementovat stejný protokol, budou všichni schopni komunikovat se serverem Samostatná aplikace Vytvoření programu jako samostatné aplikace by znamenalo vytvořit pouze jeden program, který by se v závislosti na nastavení choval buď jako server nebo jako klient. Toho by mohlo být dosáhnuto například dvěma různými možnostmi v menu nebo výběrem odpovědi na otázku položenou při startu aplikace. Tento způsob má dvě velké výhody oproti klient/server architektuře. První výhodou je skutečnost, že části programu, které klient a server sdílí, se nacházejí pouze na jednom místě. 18

35 V tomto případě se jedná například o grafiku programu, způsob zobrazování informací, způsob vybírání hráčova rozhodnutí nebo správu nastavení programu. Druhou výhodou je vyšší uživatelská přívětivost, protože pro uživatele je jednodušší ovládat jednu aplikaci než dvě. Kromě toho tento způsob umožňuje měnit síťovou roli, aniž by musel uživatel vypínat aplikaci Zhodnocení a výběr architektury Výhody jednotlivých architektur byly již popsány výše a možnost vytváření různých klientských programů není u karetní hry nijak zásadní. Mnohem důležitější je jednoduchost ovládání a v tom jasně vítězí architektura samostatné aplikace. Z implementačního hlediska je tento způsob také vhodnější, protože klientská část programu bude sdílet velkou část zdrojového kódu se serverovou částí. Aplikace tedy bude implementována jako samostatný program. 19

36 20

37 Kapitola 4 Realizace V této kapitole je stručně uvedena funkcionalita jednotlivých balíčků tříd a poté jsou rozebrány některé postupy a algoritmy použité při programování umělé inteligence. 4.1 Funkcionalita balíčků Důraz byl při implementaci programu kladen na přehlednost a případnou znovupoužitelnost jednotlivých částí programu, v důsledku čehož jsou třídy rozděleny do balíčků podle funkce, kterou zajišťují. Seznam balíčku je následující: configuration, engine, engine.ai, engine.handevaluation, engine.player, enumerations, interfaces, network, network.packets, view, view.dialog, view.events. 21

38 4.1.1 Configuration Balíček configuration zajišťuje správu konfigurace výchozích a systémových hodnot, jejich načítání, ukládání a možnost jejich změny. Jeho druhou funkcí je správa externích textů a popisků, které se načítají ze souboru, což umožňuje podporu vícejazyčnosti Engine Engine je na počet tříd nejobsáhlejší balíček a jeho cílem je implementovat logiku programu. Obsahuje třídy reprezentující logické komponenty jako stůl, karty nebo bank. O koordinaci se stará třída GameController, která pro start hry zavolá buď třídu GameServer nebo třídu GameClient v závislosti na síťové roli dané instance programu. Engine.AI Všechny třídy, které se podílejí na vytváření rozhodnutí počítačového hráče, jsou v balíčku engine.ai. Celý balíček pracuje nezávisle na ostatních třídách a hlavní třída DecisionMaker je připojena k logice aplikace přes definované rozhraní. Engine.handEvaluation V tomto balíčku jsou shromážděny všechny třídy pracující na závěrečném vyhodnocení vítězného hráče. Princip vyhodnocování je vysvětlen v sekci Engine.player Ve hře jsou celkem tři druhy hráčů. Hlavní hráč je člověk hrající na dané instanci spuštěného programu, síťový hráč je někdo vzdáleně připojený a počítačový hráč je hráč ovládaný počítačem. Každý má svá specifika, každý má různý způsob zjišťování herního rozhodnutí, ale většinu věcí sdílí. Tyto tři třídy společně s jejich abstraktním předkem jsou uloženy v balíčku engine.player Interfaces V balíčku interfaces se nacházejí rozhraní pro všechny grafické elementy, které nějakým způsobem reflektují stav logických komponent. Díky tomu je velmi jednoduché vyměnit grafický element za jakýkoliv jiný, pokud bude implementovat dané rozhraní. V tomto balíčku se nachází i několik rozhraní pro logické třídy umělé inteligence a vyhodnocování vítězných karet. 22

39 4.1.4 Network Network je balíček zodpovědný za síťovou komunikaci aplikace se serverem nebo s klienty. Network.packets obsahuje serializovatelné třídy, jejichž instance slouží jako datové jednotky určené k odeslání druhé straně View V balíčku view jsou uloženy třídy, které zobrazují uživateli informace uložené v logických komponentách. S těmi komunikují prostřednictvím rozhraní, které implementují. Příkladem takového vztahu může být karetní stůl. Všechna data o kartách a o sázkách jsou uložena v logické třídě Table v balíčku engine, ale tato data je potřeba zobrazit a k tomu slouží třída TablePanel v balíčku view. View.dialogs View.dialogs shromažďuje dialogy umožňující okamžitý zisk informace od uživatele. Příkladem může být dialog InitialInformationDialog, který se spustí ihned po spuštění programu a který se ptá na jméno a počáteční vklad hlavního hráče. 4.2 Ohodnocení karetní kombinace První a nejdůležitější věc při implementaci pravidel pokeru je vytvořit vyhodnocovací funkci, která dokáže určit vítěze daného kola. Taková funkce musí dostat jako parametr kombinaci sedmi karet a jako výsledek vrátit číslo, které bude vyšší, než by dostala kombinace horší, a zároveň nižší než by dostala kombinace lepší. Pro porovnání se používá stupnice kombinací uvedená v pravidlech hry v kapitole 2. Tímto způsobem se ohodnotí všechny kombinace a ta, která dostane bodů nejvíce (resp. nejméně v závislosti na použitém měřítku), je označena jako vítězná. Určení vítěze kola však není jediné využití této vyhodnocovací funkce. Své uplatnění najde také v umělé inteligenci, kde se k určení síly karet a pravděpodobnosti výhry musí provést mnohonásobně opakované vyhodnocení, a to v pokud možno co nejkratším čase. To přidává požadavek na rychlost vyhodnocení, bez kterého by umělá inteligence byla nepoužitelná Algoritmus vyhodnocovací funkce Aby byla vyhodnocovací funkce dostatečně rychlá, není možné použít naivní algoritmy, které by pro každou kombinaci zkoušely, zda odpovídá daným kategoriím. Jedním z důvodů je i to, že karet je celkem sedm, ale program má ohodnotit jen nejlepších pět, které člověk dokáže vybrat snadno, ale počítač už nikoliv. Bez nějakého 23

40 druhu prořezávání by musel provést ( 7 5) = 42 zařazení do kategorie a to tolikrát, dokud by kartu správně nezařadil. Poté by musel ještě nějakým způsobem zohlednit karty, které kombinaci neovlivňují, a na základě toho teprve přiřadit ohodnocení. Tento algoritmus používá při vyhodnocování člověk a počítač ho může také použít, ale pouze pokud by jeho funkce byla určení vítěze kola. Pro využití v umělé inteligenci je rychlost algoritmu výrazně nedostatečná. Lepší výsledky poskytují algoritmy založené na předgenerovaném ohodnocení karetních kombinací, ale tento přístup naráží na paměťová omezení v důsledku velkého počtu kombinací. Celkový počet různých kombinací 7 karet z 52 je ( ) 52 7 = Vyhodnocovací funkce navíc dostane karty v náhodném pořadí, což počet záznamů v předgenerované tabulce zvyšuje na 52!/45! = , což je zaprvé zbytečné, protože velké množství kombinací bude mít přiřazenu stejnou hodnotu, a za druhé neproveditelné kvůli vysokým nárokům na paměť. Cílem je tedy nějakým způsobem snížit počet záznamů v tabulce na únosnou míru, k čemuž jsem použil algoritmus acyklického orientovaného grafu Moritze Hammera. Princip jeho fungování je detailně vysvětlen na jeho stránkách uvedených v seznamu použitých zdrojů [11]. Při testování tohoto algoritmu jsem dosáhl rychlosti ohodnocení za vteřinu a to vše s tabulkou obsahující pouhých záznamů, což splňuje požadavky jak na rychlost, tak na paměťovou únosnost. 4.3 Umělá inteligence Poker je hra s neúplnou informací, což znamená, že nikdo z hráčů nemá všechny informace o aktuálním stavu hry. Narozdíl od her s úplnou informací jako jsou například Šachy nebo Othello, u kterých je umělá inteligence většinou řešena nějakou formou prohledávání do hloubky a následným prořezáváním, se u pokeru pracuje s nejistotou, pravděpodobností, ale také psychologií hráčů. Co bylo v jednom případě správné rozhodnutí může být ve hře proti jiným protivníkům rozhodnutí špatné. To činí z pokeru, z hlediska programování umělé inteligence, velice zajímavou výzvu. Algoritmy pokerové umělé inteligence jsou velice komplexním tématem a narozdíl od algoritmů ohodnocovací funkce vítězných karet, přístupů k racionálnímu rozhodování počítačem v pokerové hře existuje více. Nejvíce se touto oblastí zabývá výzkumná skupina Computer Poker Research Group na University of Alberta v Kanadě, odkud vzešlo mnoho významných prací o umělé inteligenci v pokeru Algoritmus ohodnocení síly karet Algoritmus ohodnocení síly karet použitý v implementaci programu je založen na metodě Monte Carlo [6]. Princip této metody spočívá v mnohonásobném opakování simulace určité situace a vyvození závěru z výsledků těchto simulací. V případě 24

41 ohodnocení síly karet se při daných dvou počátečních kartách a daných vyložených kartách na stole simulují náhodné hry proti danému počtu protihráčů a síla karet se vypočítá jako: ) n remíza i=0 (výhra + počet hráčů s remizující kombinací (4.1) n Proměnná n značí počet provedených simulací, výhra značí vyhranou hru a remíza značí takovou hru, kdy si umělá inteligence dělí s někým výhru kvůli stejnému ohodnocení. Pokud by síla karet vyšla rovna 0, 5, znamená to, že proti danému počtu hráčů s danými kartami bude mít program 50% šanci, že zvítězí Výpočet indexu zisku Samotná síla karet pro hru však nestačí, protože nebere v potaz výši sázek, celkovou výši banku ani rozhodnutí ostatních hráčů. Pro další uvažování je potřeba zavést důležitý termín pot-odds. Pot-odds představuje poměr požadované částky pro to, aby hráč zůstal ve hře, k celkovému objemu banku. Jako příklad se dá uvést situace, kdy je hráč na tahu, musí dorovnat 20, aby zůstal ve hře, a v banku už je dohromady 160. Pot-odds bude v tomto případě rovno 20 = 1. Obecně platí, že chce hráč mít nižší pot-odds než je šance, že danou hru vyhraje. V opačném případě by musel za možnost zůstat ve hře zaplatit vyšší částku, než kolik je očekávaná střední hodnota zisku z daného rozhodnutí, a v dlouhém období by ztrácel. Z pot-odds a síly karet se dá vypočítat index zisku jako: index zisku = síla karet pot-odds (4.2) Index zisku vyjadřuje pravděpodobnost na výhru v závislosti na částce, kterou je třeba zaplatit pro možnost zůstat ve hře. Hráč by se měl snažit zůstávat ve hrách, ve kterých má index zisku vyšší než 1 a pokládat hned, jak index zisku pod tuto hranici klesne. Příklad 1 V tomto příkladu uvažujeme situaci, kdy jsou na stole 3 karty a ve hře zbývají už jen 2 hráči. První hráč má čtyři karty stejné barvy a je přesvědčený, že druhý hráč drží dvě esa. V banku je z předchozího kola 150 a druhý hráč vsadil 50. Jak by měl první hráč reagovat? Vyhrál by, pokud by se mu podařilo dokončit jeho flush, na který mu chybí už pouze jedna karta. Pravděpodobnost, že ze dvou karet přijde alespoň jedna taková, která by mu pomohla, je přibližně 1, což znamená, že pravděpodobně 3 prohraje. Stačí mu ale dorovnat pouze 50 na to, aby hrál o bank, ve kterém je 25

42 dohromady 200. Pot-odds se rovná 1 a index zisku je tedy roven 4, což je více než Měl by tedy ve hře zůstat a dorovnat. Příklad 2 Uvažujme stejnou situaci, jako v předchozím případě s tím rozdílem, že druhý hráč nevsadil 50, ale 150. Pravděpodobnost na výhru se nezmění, ale pot-odds se budou rovnat 150 = 1. Index zisku v tomto případě vyjde 2 a správné rozhodnutí je položit Rozhodování na základě indexu zisku Počítačoví hráči v aplikaci se rozhodují na základě indexu zisku. Pokud by se ho ale držely vždy, stalo by se jejich chování pro protivníky snadno čitelné. Proto jsou definována pravidla, která určují pravděpodobnost jednotlivých akcí, pokud bude index zisku náležet do intervalu daného pravidlem. Pravidlo je uspořádaná pětice čísel (a i ; b i ; c i ; d i ; e i ). Pokud index zisku spadá do intervalu (a i, b i ), počítačový hráč s pravděpodobností c i karty položí, d i určuje pravděpodobnost dorovnání a e i udává pravděpodobnost, že sázku zvýší. Pro intervaly různých pravidel platí, že se nepřekrývají, a pravděpodobnosti jednotlivých akcí dávají pro každé pravidlo součet roven 1. Výběr akce může být demonstrován na vymyšleném pravidle (0; 0, 7; 0, 9; 0; 0, 1). Pokud umělá inteligence zjistí, že index zisku má nižší než 0,7, pak z 90% karty položí a z 10% sázku zvýší, což představuje pokus o bluff. Definice těchto pravidel umožňuje jednoduchým způsobem měnit charakter hráče při zachování mechanismu všech výpočtů. Pokud by se například zdálo, že hráč málo bluffuje, stačí zvýšit hodnotu e i na úkor c i u všech pravidel. 26

43 Kapitola 5 Testování V této kapitole je popsán způsob testování aplikace a to z hlediska testování použitelnosti, bezchybné implementace logiky programu a kvality umělé inteligence. V rámci testování aplikace byly vytvořeny dvě skupiny testerů. První skupina se skládá z pěti zkušených hráčů pokeru, kteří mají zkušenosti s mnoha programy s pokerovou tématikou a kteří vědí, co mají od implementace pokeru očekávat. Tato skupina se zaměřila na všechny tři testované aspekty aplikace. Druhou skupinu tvoří tři pokeroví začátečníci a jejím cílem je odhalit nejasnosti, které zkušení hráči nezaznamenají, převážně v oblasti uživatelského rozhraní a použitelnosti. Oběma skupinám byl dán čas na testování a poté jim byl předložen dotazník pro poskytnutí zpětné vazby. Součástí této kapitoly je interpretace výsledků z těchto dotazníků. 5.1 Testování použitelnosti Cílem testů použitelnosti je zjistit, zda je aplikace pro uživatele intuitivní a pochopitelná, zda je vyhovující rozložení prvků na hlavní stránce a v menu, atd. Testování bylo nejprve provedeno skupinou zkušených pokerových hráčů, a protože rozložení prvků v uživatelském rozhraní odpovídá standardnímu rozložení v online pokerových místnostech, bylo ovládání hry bez problémů. Pokeroví laici byli také schopni hrát hru bez problémů, uvedli však námitky, že v aplikaci chybí nápověda a možnost zobrazit pořadí jednotlivých karetních kombinací. Protože koncový uživatel bude mít jako součást programu i kompletní dokumentaci, ve které jsou všechny tyto věci popsány, nebude tento uvedený problém nijak zásadní. Uživatelské rozhraní bylo navrženo tak, aby odpovídalo vzorům, na které jsou hráči pokeru zvyklí, a mohli s ním pracovat hned při prvním spuštění aplikace. Dodatečná funkcionalita zahrnující textovou nápovědu ke kartám, průvodce založením hry nebo internacionalizaci společně s tím přispívá k tomu, že uživatelské rozhraní bylo testery ohodnoceno kladně. 27

44 5.2 Testování logiky programu Bezchybná implementace pravidel je základem, bez kterého by byl program nepoužitelný. Testování logiky programu zahrnovalo kontrolu rozdávání karet, hlídání výše sázek, střídání rozdávající pozice, kontrolu funkčnosti síťové komunikace atd. Mezi nejdůležitější aspekty logiky programu patří i vyhodnocování vítězné kombinace a správné přidělení výhry. To zahrnuje testování všech nestandardních situací jako je například dělení výhry mezi více vítězů, korektní rozdělení side-potů v případě, že alespoň jeden hráč vsadil celý svůj vklad, atd. Podle odpovědí v dotaznících implementuje program logiku bezchybně. Protože se jedná o nejdůležitější část fungování aplikace, byl na testování logiky kladen důraz v průběhu celé fáze její implementace. Naprostá správnost dodržování pravidel není úspěchem implementace, ale nutnou podmínkou a jedná se o jedinou možnost, jak mohlo projít testováním jako úspěšné. 5.3 Testování umělé inteligence Testování umělé inteligence se zaměřovalo na úroveň hry počítačových protihráčů. V testovací hře byli vždy dva počítačoví hráči, a testeři sledovali chování obou z nich, přičemž hlavní důraz byl zaměřen na závislost jejich rozhodnutí v průběhu hry a karet, které odkryli při vyhodnocení. Testovací hra probíhala celkem dvě hodiny a účastnilo se jí pět testerů, autor aplikace a dva počítačoví hráči. Na konci těchto dvou hodin byli hráči seřazeni od nejlepšího podle výše jejich banku a počítačoví hráči se umístili na 4. a 6. místě. Vezme-li se v potaz, že byli nasazeni proti zkušeným hráčům univerzitní pokerové ligy [8], je tento výsledek uspokojivý. 5.4 Srovnání s existujícími aplikacemi Aplikací s pokerovou tématikou existuje velké množství a některé z nich, včetně základní kategorizace a srovnání s touto aplikací, byly uvedeny v sekci 1.4. Některé umožňují hru lidských hráčů po síti, jiné hru proti počítači, ale dosud jsem se nesetkal s programem, který by oba přístupy dokázal kombinovat. To činí z výsledku této práce unikátní program, protože poskytuje prostředí, ve kterém mohou lidé hrát proti sobě bez nutnosti placení poplatku provozovateli serveru. Nedostatek hráčů se dá vyřešit zapojením počítačových hráčů a ostatní parametry hry nastavit, což dohromady tvoří komplexní pokerový software. Ten najde nejlepší uplatnění jako doplněk pro skupiny hráčů, které se pravidelně scházejí k živé hře. 28

45 Kapitola 6 Závěr Výsledkem této práce je funkční aplikace, která umožňuje hrát karetní hru poker. Aplikace podporuje hru více hráčů po síti a obsahuje umělou inteligenci pro hru proti počítačovým protivníkům. Součástí práce bylo i testování, kterého se zúčastnily dvě nezávislé skupiny testerů, a aplikace byla ve všech aspektech, včetně testování umělé inteligence, ohodnocena pozitivně. S ohledem na zadání se tedy cíle práce úspěšně podařilo naplnit. Funkcionalita nad rámec zadání se týká převážně uživatelského rozhraní, které poskytuje široké možnosti nastavení herních a výchozích hodnot, vícejazyčnost, průvodce založením hry nebo textovou nápovědu ke kartám. Implementace pravidel představuje kompletní komponentu a neumožňuje již žádné další vylepšení. Nejvíce prostoru pro možnost pokračování projektu poskytuje oblast umělé inteligence, která se dá vyvíjet nezávisle na ostatních programových komponentách. Příkladem vylepšení úrovně počítačového hráče může být implementace modelování oponentů, které zahrnuje uchovávání historie provedených akcí ke každému hráči. Na základě té se dá určit jeho herní styl, což poslouží pro zkvalitnění odhadu jeho karet. Mezi další strategické prvky, které by excelentní umělá inteligence měla umět, patří poziční hra, slow-playing, adaptivní učení, mechanismy pro efektivní využívání chyb protivníků, a další. Přínosem této práce je umožnění hry proti lidským i počítačovým hráčům zároveň, mimo to však aplikace poskytuje rozhraní pro libovolnou implementaci tříd, které na základě stavu hry dokáží provést pokerové rozhodnutí. Dá se tedy použít jako prostředí pro testování pokerové umělé inteligence, které bych se chtěl věnovat v rámci své diplomové práce. 29

46 30

47 Literatura [1] R. Harroch, L. Krieger: Poker for Dummies, John Wiley & Sons Inc., 2000 [2] Darse Billings: Computer poker, Department of Computing Science, University of Alberta, 1995 [3] J. Nielsen: Usability Engineering, Academic Press Inc., 1994 [4] Denis Papp: Dealing with Imperfect Information in Poker, Department of Computing Science, University of Alberta, 1998 [5] Darse Billings: Algorithms and Assesment in Computer Poker, Department of Computing Science, University of Alberta, 2006 [6] Jonathan Pengelly: Monte Carlo methods, 2002 [7] Seznam televizních pořadů o pokeru [8] Stránky univerzitní pokerové ligy Unipoker [9] Stránky České asociace Go [10] Stránky softwaru Texas Calculatem [11] DAG algorithm by Moritz Hammer hammer/poker/handeval.html [12] Computer Poker Research Group at University of Alberta 31

48 32

49 Příloha A Slovník pojmů all-in - vsazení všech herních peněžních prostředků big blind - velká povinná sázka, minimální hodnota sázky blind - povinná sázka, která se sází dříve než se rozdají karty bot - počítačový hráč cash game - varianta hry, kdy žetony představují reálné peníze dealer - rozdávající hráč limit - varianta hry, ve které je pevně daná výše sázek no-limit - varianta hry, ve které není omezena výše sázek pot - celková výše sázek v dané hře pot-odds - poměr minimální sázky pro setrvání k celkové výši potu pot-limit - varianta hry, ve které je výše sázek omezena velikostí banku rake - poplatek kasínu z každé odehrané hry side-pot - vedlejší pot pro hráče, kteří již nemají co vsadit slow-playing - záměrné nezvyšování s výbornými kartami small blind - malá povinná sázka, většinou poloviční hodnota big blindu 33

50 34

51 Příloha B Instalační a uživatelská příručka Tato příloha popisuje instalaci aplikace včetně adresářové struktury obsahu přiloženého CD a postupu, jak aplikace spustit. Dále se věnuje základním ovládacím prvkům programu. B.1 Obsah přiloženého CD Na přiloženém CD se nachází čtyři adresáře, každý se specifickým obsahem týkajícím se této práce. Celková adresářová struktura je následující: Application configuration data Forms Source Text images language application document Adresář Application obsahuje funkční verzi programu a dále podadresáře uchovávající konfigurační soubory, pravidla pro umělou inteligenci, obrázky a data pro jazykové mutace programu. Adresář Forms obsahuje dotazníky, které byly vyplněné 35

52 v rámci testování aplikace pro získání zpětné vazby, a adresář Text obsahuje konečnou podobu dokumentace. Zdrojové kódy k projektu aplikace v prostředí NetBeans 6.1 a zdrojové kódy textu práce v prostředí TeXnicCenter se nacházejí v adresáři Source a slouží převážně jako reference způsobu tvorby práce. B.2 Instalace a spuštění Aplikace nevyžaduje instalaci a je možné ji spustit ihned po zkopírování. Je nutné pouze zachovat adresářovou strukturu programu a v případě ukládání nastavení mít povolen zápis do daného adresáře. Na CD zápis není povolen a proto je doporučeno adresář Application před spuštěním zkopírovat na pevný disk. Nejjednodušší způsob spuštění aplikace je kliknutí na soubor PokerSoftware.jar, který se nachází v adresáři Application. Z příkazové řádky téhož adresáře je možné spustit program příkazem: java -jar PokerSoftware.jar B.3 Ovládání aplikace V této sekci je popsán způsob ovládání důležitých prvků grafického uživatelského rozhraní aplikace. B.3.1 Menu V menu se nacházejí čtyři základní kategorie: Hra, Síťové připojení, Nastavení a Nápověda. Menu hra obsahuje možnosti spuštění hry, zastavení hry a ukončení programu. Volba ukončující program je dostupná z každého stavu aplikace, ale zbylé dvě možnosti se navzájem vylučují a je tedy aktivní vždy pouze jedna z nich. Síťové připojení umožňuje povolit připojení vzdáleným uživatelům, což je volba, kterou je možné zapnout i v průběhu rozehraného kola. Noví hráči se mohou ke hře hned připojit a pozorovat ji, hrát však mohou až od dalšího kola. Další možnost položky menu Síťové připojení - připojení se k síťové hře - vyžaduje ukončení rozehrané hry, protože se veškeré herní informace budou přebírat od serveru. Nastavení umožní o- tevření dvou dialogů, nastavení výchozích hodnot a nastavení hry, a poslední položka v menu zobrazí informace o programu. B.3.2 Hlavní pohled Po zapnutí aplikace a nastavení informací o hráči se otevře hlavní pohled. Volné pozice, na které může hráč usednout nebo na ně usadit počítačového hráče, jsou 36

53 označeny ikonou s křeslem, která znázorňuje volné místo u stolu. Obsadit pozici je možné kliknutím na ní a vybráním akce z nabízeného seznamu možností. V levém dolním rohu je prostor pro zobrazování historie hry a pro zasílání textových zpráv soupeřům a v pravém dolním rohu se nachází rozhodovací panel, ve kterém činí hráč všechna svá rozhodnutí během hry. Prostřední panel představuje pokerový stůl, na který jsou v průběhu hry vykládány hrací karty a na kterém se zobrazuje měnící se výše potu. Obrázek B.1: Hlavní obrazovka B.3.3 Nastavení Nastavení je v aplikaci dvojího druhu. Nastavení výchozích hodnot umožňuje nastavit hodnoty, které se zobrazují jako výchozí u programových dialogů. Kromě informací o hráči a hodnot síťového připojení je možné nastavit výchozí jazykovou 37

54 mutaci, která se v programu nastaví při jeho spuštění. Druhý dialog pracuje s herními proměnnými a jejich hodnoty jsou závazné, takže nemusí být nejprve potvrzeny jako hodnoty výchozí. Mezi tyto proměnné patří výše sázek, současná jazyková verze programu a trojice časových intervalů. Tyto intervaly zahrnují časový údaj doby trvání tahu počítačového hráče a dobu, po kterou jsou zobrazeny karty všech hráčů zbývajících ve hře při vyhodnocení. Obrázek B.2: Výchozí hodnoty Obrázek B.3: Herní hodnoty 38

====== ZAČÁTEK UKÁZKY ======

====== ZAČÁTEK UKÁZKY ====== ====== ZAČÁTEK UKÁZKY ====== Na závěr kapitoly poslední poznámka, která se týká obou variant. Praxí poznáte, že ačkoliv je startovních prémiových kombinací v Omaha pokeru víc než v Texas Hold'em, nedostanete

Více

PRAVIDLA POKERU Čtyři barvy Třináct hodnot VÝHERNÍ KOMBINACE

PRAVIDLA POKERU Čtyři barvy Třináct hodnot VÝHERNÍ KOMBINACE PRAVIDLA POKERU Poker se hraje s balíčkem 52 karet. Ty se dělí na čtyři barvy, každá z nich obsahuje 13 hodnot. Čtyři barvy Všechny barvy stejné hodnoty jsou si rovny, žádná z nich nemá vyšší hodnotu nad

Více

SEMINÁRNÍ PRÁCE Z MATEMATIKY

SEMINÁRNÍ PRÁCE Z MATEMATIKY SEMINÁRNÍ PRÁCE Z MATEMATIKY PETROHRADSKÝ PARADOX TEREZA KIŠOVÁ 4.B 28.10.2016 MOTIVACE: K napsání této práce mě inspiroval název tématu. Když jsem si o petrohradském paradoxu zjistila nějaké informace

Více

Hra před flopem (každý obdrží dvě vlastní karty)

Hra před flopem (každý obdrží dvě vlastní karty) Poker - pravidla pokeru Texas hold em Poker Texas hold em je v současné době nejpopulárnější varianta pokeru a hrají jej milióny lidí z celého světa. Proč? Pravidla pokeru texas hold em jsou totiž velmi

Více

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt.

Gymnázium, Praha 6, Arabská 14. předmět Programování, vyučující Tomáš Obdržálek. Počítačová hra Fotbalový Manažer. ročníkový projekt. Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek Počítačová hra Fotbalový Manažer ročníkový projekt Jan, 1E květen 2014 Anotace: Fotbalový Manažer je strategická hra pouze

Více

Úvod do počítačových sítí

Úvod do počítačových sítí Úvod do počítačových sítí Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: středa, 3 4 Obor: INIB INF E-mail: jtichava@students.zcu.cz Datum odevzdání: 19.12.06 Základní charakteristika Jednoduchá

Více

HERNÍ PLÁN POKER GIRLS APOLLO GAMES APKSOFT s.r.o.

HERNÍ PLÁN POKER GIRLS APOLLO GAMES APKSOFT s.r.o. HERNÍ PLÁN POKER GIRLS APOLLO GAMES APKSOFT s.r.o. HISTORIE REVIZÍ Datum Verze Popis změn Autor změn 27. 05. 2009 1.0 První naplnění Karel Kyovský 31. 07. 2015 1.1 Změna obsahu-riziko Radoslav Hrčka 23.

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Emotion 750. 1. Technická charakteristika

Emotion 750. 1. Technická charakteristika 1. Technická charakteristika Výherní hrací přístroj je elektronicky řízené zařízení umožňující sázky do interaktivních her (dále jen VHP). VHP je přímo obsluhováno sázejícím. Okolnost, jež určuje výhru,

Více

Sada na poker. Pravidla hry Základy Taktika Návod ke hře. Tchibo GmbH D Hamburg 71872AB6X6IIIZACE

Sada na poker. Pravidla hry Základy Taktika Návod ke hře. Tchibo GmbH D Hamburg 71872AB6X6IIIZACE Sada na poker Pravidla hry Základy Taktika Návod ke hře Tchibo GmbH D-22290 Hamburg 71872AB6X6IIIZACE Pravidla pokeru Balíček karet Jeden balíček karet se skládá z 52 karet. Karty jsou ve čtyřech barvách,

Více

Dobble HRA PLNÁ DIVOKÉ ATMOSFÉRY A RYCHLÝCH REFLEXŮ 2 AŽ 8 HRÁČŮ DOPORUČENÝ VĚK 6 A VÍCE LET. Pravidla

Dobble HRA PLNÁ DIVOKÉ ATMOSFÉRY A RYCHLÝCH REFLEXŮ 2 AŽ 8 HRÁČŮ DOPORUČENÝ VĚK 6 A VÍCE LET. Pravidla Dobble HRA PLNÁ DIVOKÉ ATMOSFÉRY A RYCHLÝCH REFLEXŮ 2 AŽ 8 HRÁČŮ DOPORUČENÝ VĚK 6 A VÍCE LET Pravidla Co je to Dobble? Dobble, to je více než 50 symbolů na 55 kartách. Na jedné je vždy 8 různých symbolů

Více

Kajot Casino Ltd. Popis hry Joker 27

Kajot Casino Ltd. Popis hry Joker 27 Joker 27 Joker 27 Popis a pravidla Joker 27 je hra se třemi kotouči. Zobrazený výsledek se skládá ze tří řad po třech symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Věc: Rozšířené stanovisko Ministerstva financí k tzv. Kvízomatům

Věc: Rozšířené stanovisko Ministerstva financí k tzv. Kvízomatům MINISTERSTVO FINANCÍ Státní dozor nad sázkovými hrami a loteriemi Věc: Rozšířené stanovisko Ministerstva financí k tzv. Kvízomatům Podle ust. 1 odst. 1 zákona č. 202/1990 Sb., o loteriích a jiných podobných

Více

Kajot Casino Ltd. Popis hry Ring of Fire XL

Kajot Casino Ltd. Popis hry Ring of Fire XL Ring of Fire XL Ring of Fire XL Popis a pravidla Ring of Fire XL je hra se pěti kotouči. Zobrazený výsledek se skládá ze tří řad po pěti symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený

Více

[BAL-MLP] Multiplayer

[BAL-MLP] Multiplayer České vysoké učení technické v Praze Fakulta elektrotechnická Semestrální práce D2 předmětu A7B39PDA [BAL-MLP] Multiplayer Tomáš Kozák (další členové týmu: Tomáš Bruštík, Jaroslav Havelík) LS 2012/2013

Více

Kajot Casino Ltd. Popis hry Lucky Dragon

Kajot Casino Ltd. Popis hry Lucky Dragon Lucky Dragon Lucky Dragon Popis a pravidla Lucky Dragon je hra se pěti kotouči. Zobrazený výsledek se skládá ze tří řad po pěti symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Kajot Casino Ltd. Popis hry Fly For Gold

Kajot Casino Ltd. Popis hry Fly For Gold Fly For Gold Fly For Gold Popis a pravidla Fly For Gold je hra se pěti kotouči. Zobrazený výsledek se skládá ze tří řad po pěti symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Princes of Florence - Pro Ludo

Princes of Florence - Pro Ludo Princes of Florence - Pro Ludo Die Fürsten von Florenz Pravidla pro rozšíření (Pro Ludo) Pravidla pro 2 hráče Při hře 2 hráčů použijte následující pravidla: Peníze do začátku: 2500 Florinů Základní cena

Více

MAGIC FOX MULTIGAME V.2.3 CZ(750)

MAGIC FOX MULTIGAME V.2.3 CZ(750) MAGIC FOX MULTIGAME V.2.3 CZ(750) OBSAHUJE NÁSLEDUJÍCÍ HRY: HOT COINS ULTRA HEAT CRYSTAL FRUITS SPARKLING HOT WATER WORLD JOKERS DELUXE ROYAL POKER EUROPEAN POKER DELUXE FRUIT POKER TUTTI FRUTTI + HI LO

Více

Úvod Game designer Struktura hry Formální a dramatické elementy Dynamika her Konec. Úvod do game designu 1 / 37

Úvod Game designer Struktura hry Formální a dramatické elementy Dynamika her Konec. Úvod do game designu 1 / 37 Počítačové hry Úvod do game designu 1 / 37 Obsah přednášky Role game designera Struktura hry Formální a dramatické elementy Dynamika herních systémů 2 / 37 Literatura a odkazy Chris Crawford. The Art of

Více

Teorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru

Teorie her a ekonomické rozhodování. 4. Hry v rozvinutém tvaru Teorie her a ekonomické rozhodování 4. Hry v rozvinutém tvaru 4.1 Hry v rozvinutém tvaru Hra v normálním tvaru hráči provedou jediné rozhodnutí a to všichni najednou v rozvinutém tvaru řada po sobě následujících

Více

Kajot Casino Ltd. Popis hry Big Apple

Kajot Casino Ltd. Popis hry Big Apple Big Apple Big Apple Popis a pravidla Big Apple je hra se třemi kotouči. Zobrazený výsledek se skládá ze tří řad po třech symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Kajot Casino Ltd. Popis hry Superwave 34

Kajot Casino Ltd. Popis hry Superwave 34 Superwave 34 Superwave 34 Popis a pravidla Superwave 34 je hra s pěti válci. Na každém válci je viditelná jiná část. Na prvním, třetím a pátém válci jsou vidět tři symboly, zatímco na druhém a čtvrtém

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

Piškvorky. Gymnázium, Praha 6, Arabská 16. Kristofer Filip, 1.E. Květen 2014. Stránka 1. předmět programování, vyučující Tomáš Obdržálek

Piškvorky. Gymnázium, Praha 6, Arabská 16. Kristofer Filip, 1.E. Květen 2014. Stránka 1. předmět programování, vyučující Tomáš Obdržálek Gymnázium, Praha 6, Arabská 16 předmět programování, vyučující Tomáš Obdržálek Piškvorky ročníkový projekt Kristofer Filip, 1.E Květen 2014 Stránka 1 Prohlášení Prohlašuji, že jsem jediným autorem tohoto

Více

Kajot Casino Ltd. Popis hry Crazy Fruits

Kajot Casino Ltd. Popis hry Crazy Fruits Crazy Fruits Crazy Fruits Popis a pravidla Crazy Fruits je hra se pěti kotouči. Zobrazený výsledek se skládá ze tří řad po pěti symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Obecná poker pravidla

Obecná poker pravidla Obecná poker pravidla Pokud jste se rozhodli začít s hraním pokeru, měli byste se seznámit s jeho základními pravidly. Do budoucna tím totiž získáte šanci stát se tak dobrými hráči, jako jsou Phil Ivey

Více

Martin Heni Eugene Trounev Kontrolor: Mike McBride

Martin Heni Eugene Trounev Kontrolor: Mike McBride Martin Heni Eugene Trounev Kontrolor: Mike McBride Překlad: Lukáš Vlček 2 Obsah 1 Úvod 5 2 Jak hrát 6 3 Herní pravidla, strategie a tipy 7 3.1 Herní obrazovka...................................... 7 3.2

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Hraní her (pro 2 hráče) Základy umělé inteligence - hraní her. Vlasta Radová, ZČU, katedra kybernetiky 1 Hraní her (pro dva hráče) Hraní her je přirozeně spjato s metodami prohledávání

Více

Kajot Casino Ltd. Popis hry Halloween King

Kajot Casino Ltd. Popis hry Halloween King Halloween King Halloween King Popis a pravidla Halloween King je hra se třemi kotouči. Zobrazený výsledek se skládá ze tří řad po pěti symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek

Více

MOBILNÍ MULTIPLAYEROVÁ HRA THE HUNT. Y39PDA, školní rok 2010/2011 Ondřej Šíma

MOBILNÍ MULTIPLAYEROVÁ HRA THE HUNT. Y39PDA, školní rok 2010/2011 Ondřej Šíma MOBILNÍ MULTIPLAYEROVÁ HRA THE HUNT Y39PDA, školní rok 2010/2011 Ondřej Šíma simaondr@fel.cvut.cz Popis aplikace Hra je založena na reálné pozici hráčů. Jeden z hráčů je na začátku hry vybrán jako oběť.

Více

Varianty Monte Carlo Tree Search

Varianty Monte Carlo Tree Search Varianty Monte Carlo Tree Search tomas.kuca@matfyz.cz Herní algoritmy MFF UK Praha 2011 Témata O čem bude přednáška? Monte Carlo Tree Search od her podobných Go (bez Go) k vzdálenějším rozdíly a rozšíření

Více

Dokumentace programu piskvorek

Dokumentace programu piskvorek Dokumentace programu piskvorek Zápočtového programu z Programování II PRM045 Ondřej Vostal 20. září 2011, Letní semestr, 2010/2011 1 Stručné zadání Napsat textovou hru piškvorky se soupeřem s umělou inteligencí.

Více

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM

PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/ PŘEDMĚT PRÁCE S POČÍTAČEM PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST Číslo projektu: CZ.1.07/1.1.38/02.0010 PŘEDMĚT PRÁCE S POČÍTAČEM Obor: Studijní obor Ročník: Druhý Zpracoval: Mgr. Fjodor Kolesnikov PROJEKT ŘEMESLO - TRADICE A BUDOUCNOST

Více

CÍLOVÝ KONCEPT. Ghoul Wars. pro. Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA

CÍLOVÝ KONCEPT. Ghoul Wars. pro. Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA pro Jihočeskou univerzitu Pedagogickou fakultu Předmět: TDSA Zpracovatel: Bohuslav Pindryč Datum zpracování: 20.04. 2010 Verze: 1 Stránka 2/13 OBSAH 1. Identifikace 4 2. Přílohy 4 3. Schvalovací doložka

Více

Kajot Casino Ltd. Popis hry Fruit Machine 27

Kajot Casino Ltd. Popis hry Fruit Machine 27 Fruit Machine 27 Fruit Machine 27 Popis a pravidla Fruit Machine 27 je hra se třemi kotouči. Zobrazený výsledek se skládá ze tří řad po třech symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený

Více

Rozšířený obchod. Náhrada za slabý list (karty v ruce)

Rozšířený obchod. Náhrada za slabý list (karty v ruce) Tato alternativní pravidla jsou určena hráčům, kteří již mají s hrou World of Tanks: Rush určité zkušenosti a chtěli by svůj zážitek ze hry prohloubit, a také obecně zkušeným hráčům moderních společenských

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

Kajot Casino Ltd. Popis hry Joker Area

Kajot Casino Ltd. Popis hry Joker Area Joker Area Joker Area Popis a pravidla Joker Area je hra se čtyřmi kotouči. Zobrazený výsledek se skládá ze tří řad po čtyřmi symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Úvodem... 9 Kapitola 1 Karetních

Úvodem... 9 Kapitola 1 Karetních Úvodem... 9 Základní znalosti o programovacích jazycích...10 Jazyk C# a platforma.net...10 Visual C# 2010 Express...11 Instalace platformy.net 4.0 a Visual C# 2010 Express...11 Zdrojový kód aplikací...12

Více

B) EX = 0,5, C) EX = 1, F) nemáme dostatek informací.

B) EX = 0,5, C) EX = 1, F) nemáme dostatek informací. Hlasovací otázka 9 Náhodná veličina X nabývá jen dvou různých hodnot, 0 a 1. Předpokládejme P(X = 0) = 0,5. Co můžeme říci o EX? Hlasovací otázka 9 Náhodná veličina X nabývá jen dvou různých hodnot, 0

Více

Rating Elo. Obsah. Výpočet. Průběžná metoda

Rating Elo. Obsah. Výpočet. Průběžná metoda Rating Elo Z Wikipedie, otevřené encyklopedie Tento článek pojednává o způsobu hodnocení výkonnosti hráčů. O americkém fyzikovi a statistikovi pojednává článek Arpad Elo. Rating Elo(též koeficient Elonebo

Více

Školení pro místní samosprávu Téma: Hazardní hry Obecné představení hazardních her a jejich regulace Druhy her základní přehled

Školení pro místní samosprávu Téma: Hazardní hry Obecné představení hazardních her a jejich regulace Druhy her základní přehled Školení pro místní samosprávu Téma: Hazardní hry Obecné představení hazardních her a jejich regulace Druhy her základní přehled Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Hazardní

Více

Teorie her a ekonomické rozhodování. 7. Hry s neúplnou informací

Teorie her a ekonomické rozhodování. 7. Hry s neúplnou informací Teorie her a ekonomické rozhodování 7. Hry s neúplnou informací 7.1 Informace Dosud hráči měli úplnou informaci o hře, např. znali svou výplatní funkci, ale i výplatní funkce ostatních hráčů často to tak

Více

Angličtina program k procvičování slovní zásoby

Angličtina program k procvičování slovní zásoby Středoškolská technika 2011 Setkání a prezentace prací středoškolských studentů na ČVUT Angličtina program k procvičování slovní zásoby Kamil Hanus Střední průmyslová škola elektrotechniky a informačních

Více

FAZOLE KOSTKOVÁ HRA POPIS

FAZOLE KOSTKOVÁ HRA POPIS od Uweho Rosenberga Hráči: 2-5 hráčů Věk: 10+ Herní doba: 45 min FAZOLE KOSTKOVÁ HRA POPIS I pěstitelé fazolí si po těžké celodenní dřině na poli chtějí užít trochu zábavy s kostkami. Zde se jim naskýtá

Více

Habermaaß-hra 3615A /4714N. Kartová hra Najdi správný pár

Habermaaß-hra 3615A /4714N. Kartová hra Najdi správný pár CZ Habermaaß-hra 3615A /4714N Kartová hra Najdi správný pár Kartová hra Najdi správný pár Monstrózně rychlá vyhledávací hra pro 2 až 6 hráčů ve věku od 4 do 99 let. Zahrnuje variantu pro experty na sbírání

Více

Herní plán k internetové sázkové hře Texas Hold'em

Herní plán k internetové sázkové hře Texas Hold'em Herní plán k internetové sázkové hře Texas Hold'em Herní plán určuje podmínky a pravidla karetní hry Texas Hold em provozované společnosti SYNOT TIP, a.s., se sídlem Jaktáře 1475, 686 01 Uherské Hradiště

Více

Výskyt sázkového hraní v populaci

Výskyt sázkového hraní v populaci Výskyt sázkového hraní v populaci Mgr. Pavla Chomynová 7/11/2013 Obsah zdroje dat prevalence hraní v obecné populaci výsledky studií charakteristika hráčů prevalence problémového hraní PGSI škála hraní

Více

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow

Více

Kajot Casino Ltd. Popis hry Joker Star 81

Kajot Casino Ltd. Popis hry Joker Star 81 Joker Star 81 Joker Star 81 Popis a pravidla Super Star je hra se čtyřmi kotouči. Zobrazený výsledek se skládá ze tří řad po čtyřmi symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek

Více

Hra pro 2 10 hráčů od deseti let. OBSAH HRY CÍL HRY

Hra pro 2 10 hráčů od deseti let. OBSAH HRY CÍL HRY Hra pro 2 10 hráčů od deseti let. OBSAH HRY 104 hracích karet s čísly 1 104, pravidla hry CÍL HRY Na všech kartách jsou symboly krav. Každá kráva, kterou během hry vezmete, znamená jeden minusový bod.

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

3. ANTAGONISTICKÉ HRY

3. ANTAGONISTICKÉ HRY 3. ANTAGONISTICKÉ HRY ANTAGONISTICKÝ KONFLIKT Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku,

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

Karty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek

Karty Prší. Anotace: Abstract: Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek Gymnázium, Praha 6, Arabská 14 předmět Programování, vyučující Tomáš Obdržálek Karty Prší ročníkový projekt, Tomáš Krejča 1E květen 2014 Anotace: Mým cílem bylo vytvořit simulátor karetní hry prší. Hráč

Více

WORKSHOP IV. Téma: Technická hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016

WORKSHOP IV. Téma: Technická hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016 WORKSHOP IV. Téma: Technická hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016 Technická hra Definice technické hry Technické hry s živým prvkem Sázky, výhry a

Více

POSUDEK VEDOUCÍHO BAKALÁŘSKÉ PRÁCE

POSUDEK VEDOUCÍHO BAKALÁŘSKÉ PRÁCE POSUDEK VEDOUCÍHO BAKALÁŘSKÉ PRÁCE Jméno studenta Branný Jan Název práce Jméno vedoucího práce Jméno oponenta práce Realizace modulárního CMS pro digitální agentury Ing. David Hartman Ph.D. Ing. Lukáš

Více

ODDVILLE hra pro 2 4 hráče od 10 let

ODDVILLE hra pro 2 4 hráče od 10 let ODDVILLE hra pro 2 4 hráče od 10 let Obsah hry: 64 karet budov/mincí 1 karta startovního náměstí 16 karet dělníků (4 od barvy) 36 figurek (9 od barvy) 1 deska zdrojů 12 karet postav (3 od jené gildy) Hráči

Více

AMERICAN POKER V- 300

AMERICAN POKER V- 300 AMERICAN POKER V- 300 Hra simulující karetní hru POKER a vycházející z jeho pravidel. Rozdává se 5 karet ze souboru 53 standardních hracích karet (soubor hracích karet obsahuje jednoho Jokera). Při každém

Více

Opakovaná zkušenost s jakoukoliv formou hazardní hry? (Účastníte se opakovaně hazardních her?)

Opakovaná zkušenost s jakoukoliv formou hazardní hry? (Účastníte se opakovaně hazardních her?) Příloha č. 1: Záznamový arch pro sociodemografické otázky a osnova rozhovoru Vstupní otázka: Opakovaná zkušenost s jakoukoliv formou hazardní hry? (Účastníte se opakovaně hazardních her?) Sociodemografické

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Kajot Casino Ltd. Popis hry Nitro 81

Kajot Casino Ltd. Popis hry Nitro 81 Nitro 81 Nitro 81 Popis a pravidla Super Star je hra se čtyřmi kotouči. Zobrazený výsledek se skládá ze tří řad po čtyřmi symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek představuje

Více

Hry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování

Hry a UI historie. von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon, přibližné vyhodnocování Hry a UI historie Hry vs. Prohledávání stavového prostoru Hry a UI historie Babbage, 1846 počítač porovnává přínos různých herních tahů von Neumann, 1944 algoritmy perfektní hry Zuse, Wiener, Shannon,

Více

Současná pravidla regulace hazardu na území obcí a připravované změny od roku 2016 Odbor 34 Státní dozor nad sázkovými hrami a loteriemi

Současná pravidla regulace hazardu na území obcí a připravované změny od roku 2016 Odbor 34 Státní dozor nad sázkovými hrami a loteriemi Současná pravidla regulace hazardu na území obcí a připravované změny od roku 2016 Odbor 34 Státní dozor nad sázkovými hrami a loteriemi HODONÍN 18.6.2015 Co se rozumí loterií a jinou podobnou hrou a kdo

Více

Magnetické šipky pravidla

Magnetické šipky pravidla Magnetické šipky - určeno všem hráčům, kterým došly v průběhu večera žetony ke hraní - po výhře v magnetických šipkách hráči obdrží výherní kupón na čerpání žetonů - po výhře v magnetických šipkách si

Více

Seznam her k vypůjčení v Areálové knihovně FSI

Seznam her k vypůjčení v Areálové knihovně FSI Seznam her k vypůjčení v Areálové knihovně FSI Cappuccino Hra pro 2-4 hráče Abstraktní hra s velmi jednoduchými pravidly. Na začátku hry jsou kalíšky vyskládány dnem vzhůru (na každém tak můžete vidět

Více

Zkrácení zápisu dvojitou dvojtečkou lze použít pouze jednou z důvodu nejednoznačnosti interpretace výsledného zápisu adresy.

Zkrácení zápisu dvojitou dvojtečkou lze použít pouze jednou z důvodu nejednoznačnosti interpretace výsledného zápisu adresy. Vlastnosti IPv6 (I) Minulé díly seriálu IPv6 vysvětlily proč se IPv4 blíží ke svému konci aže jeho nástupcem je nový Internetový Protokol verze 6 (IPv6). Tématem dnešního dílu jsou vlastnosti IPv6 protokolu.

Více

Hodnocení soutěžních úloh

Hodnocení soutěžních úloh Terč Koeficient 1 soutěžních úloh Kategorie žáci Soutěž v programování 25. ročník Krajské kolo 2010/2011 15. až 16. dubna 2011 Napište program, který zobrazí střelecký terč dle vzorového obrázku. Jak má

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

Náhodné jevy. Teorie pravděpodobnosti. Náhodné jevy. Operace s náhodnými jevy

Náhodné jevy. Teorie pravděpodobnosti. Náhodné jevy. Operace s náhodnými jevy Teorie pravděpodobnosti Náhodný pokus skončí jedním z řady možných výsledků předem nevíme, jak skončí (náhoda) příklad: hod kostkou, zítřejší počasí,... Pravděpodobnost zkoumá náhodné jevy (mohou, ale

Více

ANTAGONISTICKE HRY 172

ANTAGONISTICKE HRY 172 5 ANTAGONISTICKÉ HRY 172 Antagonistický konflikt je rozhodovací situace, v níž vystupují dva inteligentní rozhodovatelé, kteří se po volbě svých rozhodnutí rozdělí o pevnou částku, jejíž výše nezávisí

Více

Strana 1. Vysoké napětí FACTORY MANAGER / Ředitel továrny FRIEDEMANN FRIESE

Strana 1. Vysoké napětí FACTORY MANAGER / Ředitel továrny FRIEDEMANN FRIESE Strana 1 Vysoké napětí FACTORY MANAGER / Ředitel továrny FRIEDEMANN FRIESE 1 Strana 2 Předmluva Vítejte ve světě podnikatelů. Ve hře Vysoké napětí - Factory Manager se každý z hráčů vžije do role majitele

Více

A. Cíl hry. Vítězem je hráč s nejvíce vítěznými body po 5 kole. Vítězné body můžete získat dvěma způsoby. a) každé kolo -za darování zboží do senátu

A. Cíl hry. Vítězem je hráč s nejvíce vítěznými body po 5 kole. Vítězné body můžete získat dvěma způsoby. a) každé kolo -za darování zboží do senátu A. Cíl hry Vítězem je hráč s nejvíce vítěznými body po 5 kole. Vítězné body můžete získat dvěma způsoby. a) každé kolo -za darování zboží do senátu b) na konci hry -za nejvíce peněz - za největší rozmanitost

Více

ALTERNATIVNÍ SPORTOVNÍ HRY II.

ALTERNATIVNÍ SPORTOVNÍ HRY II. ALTERNATIVNÍ SPORTOVNÍ HRY II. Vytvořeno v rámci projektu Gymnázium Sušice Brána vzdělávání II Autor: Mgr. Jaroslav Babka Škola: Gymnázium Sušice Předmět: Tělesná výchova Datum vytvoření: březen 2014 Třída:

Více

Herní plán. Hot as Hell

Herní plán. Hot as Hell Herní plán Hot as Hell Hot as Hell 1. Úvod Hot as Hell je hra s pěti válci a 5 výherními liniemi. Hra obsahuje 7 různých symbolů, jeden divoký symbol Wild a bonusový symbol Pyramid of Joy. 2. Pravidla

Více

HERNÍ PLÁN IVT SYNOT

HERNÍ PLÁN IVT SYNOT HERNÍ PLÁN IVT SYNOT 1 Celtic Magick Celtic Magick je hra se čtyřmi válci a 81 výherními liniemi. Hra obsahuje 10 různých symbolů. Ve hře Celtic Magick může hráč nastavit sázky v následujících krocích:

Více

Kajot Casino Ltd. Popis hry Super Star 81

Kajot Casino Ltd. Popis hry Super Star 81 Super Star 81 Super Star 81 Popis a pravidla Super Star je hra se čtyřmi kotouči. Zobrazený výsledek se skládá ze tří řad po čtyřmi symbolech (každý kotouč zobrazuje tři symboly). Náhledy Uvedený obrázek

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

TEORIE HER Meta hry PŘEDNÁŠKA. OPTIMALIZACE A ROZHODOVÁNÍ V DOPRAVĚ část druhá Přednáška 4. Zuzana Bělinová

TEORIE HER Meta hry PŘEDNÁŠKA. OPTIMALIZACE A ROZHODOVÁNÍ V DOPRAVĚ část druhá Přednáška 4. Zuzana Bělinová PŘEDNÁŠKA 4a TEORIE HER Meta hry OPTIMALIZACE A ROZHODOVÁNÍ V DOPRAVĚ část druhá Přednáška 4 Strategické hry se nenulovým součtem počet hráčů není dán, ale dále uvažujeme 2 hráče hrající racionálně Meta

Více

Hra obsahuje: Příprava na hru: Desková hra pro odvážné dobrodruhy s chladnou hlavou č e s k ý n á v o d

Hra obsahuje: Příprava na hru: Desková hra pro odvážné dobrodruhy s chladnou hlavou č e s k ý n á v o d Desková hra pro odvážné dobrodruhy s chladnou hlavou č e s k ý n á v o d Počet hráčů: 2-4 Věk hráčů: 10-99 let Hra obsahuje: 1 herní plán 36 šestiúhelníkových tabulek, znázorňujících prostor, odhalovaný

Více

Obsah SLEDOVÁNÍ PRÁCE... 4

Obsah SLEDOVÁNÍ PRÁCE... 4 Co je nového Obsah SLEDOVÁNÍ PRÁCE...... 4 Konfigurace souboru... 5 Globální konfigurace... 6 Soubory... 6 Projekty... 6 Uživatelské rozhraní... 7 Synchronizace... 7 Typ serveru... 8 Test připojení...

Více

Komunikační strategie a plán rozvoje portálu portal.gov.cz

Komunikační strategie a plán rozvoje portálu portal.gov.cz Příloha č. 2 Výzvy - Detailní popis předmětu VZ Komunikační strategie a plán rozvoje portálu portal.gov.cz V rámci dodávky vznikne dokument s analýzou současného stavu Portálu veřejné správy (PVS), určením

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

WORKSHOP IV. Téma: Internetová hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016

WORKSHOP IV. Téma: Internetová hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016 WORKSHOP IV. Téma: Internetová hra Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi Praha 8. srpna 2016 Druhy hazardních her, které lze provozovat jako internetovou hru - a) loterii -

Více

DRUHY HAZARDNÍCH HER. Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi 12. října 2016

DRUHY HAZARDNÍCH HER. Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi 12. října 2016 DRUHY HAZARDNÍCH HER Vytvořeno: Odborem 34 Státní dozor nad sázkovými hrami a loteriemi 12. října 2016 Hazardní hra Tři znaky hazardní hry uvedené v 3 odst. 1 ZHH hra, sázka nebo los, do nichž sázející

Více

Mikroekonomie magisterský kurz - VŠFS Jiří Mihola, jiri.mihola@quick.cz, www.median-os.cz, 2013 Téma 4 Teorie her pro manažery Obsah 5.7 Kooperativní hry 5.7.1 Kooperativní hra 2 hráčů 5.7.2 Kooperativní

Více

Autor hry: Hervé Marly Ilustrátor: Thomas Vuarchex Počet hráčů: 3 6 Věk hráčů: 10+ Doba hraní: min OBSAH KRABIČKY:

Autor hry: Hervé Marly Ilustrátor: Thomas Vuarchex Počet hráčů: 3 6 Věk hráčů: 10+ Doba hraní: min OBSAH KRABIČKY: Autor hry: Hervé Marly Ilustrátor: Thomas Vuarchex Počet hráčů: 3 6 Věk hráčů: 10+ Doba hraní: 15 30 min OBSAH KRABIČKY: 24 žetonů rozdělených do 6 sad (každá po 4 žetonech). Každá sada obsahuje 3 žetony

Více

JAK HRÁT Petr Vojtěch Jindřich Pavlásek

JAK HRÁT Petr Vojtěch Jindřich Pavlásek JAK HRÁT Petr Vojtěch Jindřich Pavlásek Cíl Představte si, že jste velryba. Jste velryba. Nyní jste připraveni hrát hru. Herní materiál Hráči se jako velrybí generálové pokouší sestavit nejsilnější možnou

Více

13. cvičení z PSI ledna 2017

13. cvičení z PSI ledna 2017 cvičení z PSI - 7 ledna 07 Asymptotické pravděpodobnosti stavů Najděte asymptotické pravděpodobnosti stavů Markovova řetězce s maticí přechodu / / / 0 P / / 0 / 0 0 0 0 0 0 jestliže počáteční stav je Řešení:

Více

Řízení reálných projektů, agilní metodiky

Řízení reálných projektů, agilní metodiky Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj

Více

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI

HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI HERNÍ ENGINE PRO TVORBU DIDAKTICKÝCH HER VE FLASHI GAME ENGINE FOR CREATING DIDACTIC FLASH GAMES Pavel DOSPIVA, Dominika TALIANOVÁ, Ema ŠTURALOVÁ, Petr NAJMAN Resumé Tento herní engine vznikl jako semestrální

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

HERNÍ PLÁN. Multi Lotto je modulární systém pro obsluhu více her v jednom terminál.

HERNÍ PLÁN. Multi Lotto je modulární systém pro obsluhu více her v jednom terminál. HERNÍ PLÁN Systém: MULTI LOTTO Multi Lotto je modulární systém pro obsluhu více her v jednom terminál. TREASURE BO X II Je to 5-ti kotoučová hra s pevnými 10-ti výherními liniemi.. Možné sázky jsou od

Více

ZÁKON O DANI Z HAZARDNÍCH HER

ZÁKON O DANI Z HAZARDNÍCH HER ZÁKON O DANI Z HAZARDNÍCH HER Zákon č. 187/2016 Sb., ze dne 26. května 2016 Změna: č. 298/2016 Sb. Parlament se usnesl na tomto zákoně České republiky: ČÁST PRVNÍ DAŇ Z důvodové zprávy (k části první):

Více