Classic Card Games
Klasické karetní hry
bachelor thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/101143Identifiers
Study Information System: 185186
Collections
- Kvalifikační práce [11322]
Author
Advisor
Referee
Bída, Michal
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Computer Science
Department
Department of Software and Computer Science Education
Date of defense
6. 9. 2018
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
hraní klasických karetních her, umělý hráč, klient, server aplikace, framework, knihovnaKeywords (English)
playing classic card games, artificial player, client, server application, framework, libraryPřestože jsou k dispozici knihovny zjednodušující tvorbu karetních her, pouze několik z nich umožňuje dostatečně obecný návrh umožňující tvorbu jakékoliv klasické karetní hry. Naše knihovna poskytuje jednoduché řešení pro tvorbu klasických karetních her a jejich grafickou reprezentaci. Součástí našeho řešení je klient-server aplikace schopná spustit libovolnou karetní hru vytvořenou pomocí naší knihovny. Pro ověření funkčnosti naší knihovny jsme implementovali pět ukázkových karetních her. Také jsme vytvořili samoučící umělou inteligenci, která je schopna se s minimálním zásahem ze strany programátora naučit libovolnou klasickou karetní hru vytvořenou pomocí naší knihovny. Pro tuto umělou inteligenci jsme zvolilli metodu Q-Learning posilovaného učení. Doufáme, že náš projekt umožní jednoduchou a efektivní tvorbu karetních her a jejich distribuci herní komunitě.
Although there are libraries simplifying creation of card games, only few of them provide general and comprehensive design that facilitates creation of any classic card game. Our library enables simple development of card games and their graphic representation. As part of all-in-one solution we created a client-server application that is able to run any card game created using our library. To evaluate our library we implemented five exemplary games. We also created self-learning artificial intelligence that should be able to learn any classic card game implemented using our library with minimal developer's input. For our artificial intelligence we chose Q-Learning method. We hope that our project will enable simple and effective card game development and distribution to the gaming community.