Program Za Igranje Igre Texas Hold'em Poker – Sit'n Go
Total Page:16
File Type:pdf, Size:1020Kb
Mitja Cof PROGRAM ZA IGRANJE IGRE TEXAS HOLD’EM POKER – SIT’N GO Diplomsko delo Maribor, avgust 2013 PROGRAM ZA IGRANJE IGRE TEXAS HOLD’EM POKER – SIT’N GO Diplomsko delo Študent: Mitja Cof Študijski program: Univerzitetni študijski program Računalništvo in informatika Smer: Programska oprema Mentor: izr. prof. Damjan Strnad Somentor: red. prof. Nikola Guid Lektorica: Štefanija Krhlanko, prof. slov. in soc. Maribor, avgust 2013 ZAHVALA Zahvaljujem se mentorju izr. prof. Damjanu Strnadu za pomoč in vodenje pri opravljanju diplomskega dela. I Program za igranje igre Texas hold’em poker – Sit’n go Ključne besede: poker, turnir, pričakovana vrednost, karte, tipi igre, Texas hold'em, neodvisen model žetonov, strategija UDK: 004.5:004.94(043.2) Povzetek V diplomskem delu predstavljamo program za igranje pokra, ki zna igrati tako proti realnim kot tudi proti virtualnim igralcem ter je specializiran samo za turnirsko igro Sit'n go. V prvem delu diplomskega dela opišemo igro poker, njene različice, zgodovino ter razvoj računalniških igralcev pokra. V nadaljevanju predstavimo vse najpomembnejše statistične podatke, ki jih zbiramo o nasprotnikih in ki jih s pomočjo posebnega algoritma obdelamo in hranimo v podatkovni bazi. Prav tako opišemo nekaj najpomembnejših matematičnih modelov, ki jih uporabljamo v strategiji igranja, na podlagi katere se računalniški igralec odloča za potezo. Opišemo tudi delovanje našega programa ter z njim povezane implementirane strategije in algoritme. V sklepnem delu nato podamo natančno analizo podatkov, ki smo jih pridobili, potem ko smo program preizkusili v turnirski igri Sit'n go. II Program for playing Texas hold'em poker – Sit'n go Key words: poker, tournament, expected value, cards, types of game, Texas hold'em, independent chip model, strategy UDK: 004.5:004.94(043.2) Abstract In this thesis we present the poker bot program, which is capable of playing against physical and virtual poker players. Program is specialized for specific poker game, which is called Sit'n go. In the first part of the document we described the game of poker, all variants of poker, its history and development of artificial intelligence in poker. Next we present the most important statistical data that we collect about the opponent poker players. Those data are obtained with special algorithms and are saved in personal database. We also describe the program operation with related strategies and algorithms. In the last part of the document we give a thorough analysis of poker bot efficiency based on the data that was gathered in several Sit'n go tournaments. III KAZALO 1 UVOD ............................................................................................................................ 1 2 O POKRU ...................................................................................................................... 2 2.1 Kratka zgodovina pokra .......................................................................................... 3 2.2 Oblike pokra............................................................................................................ 3 2.3 Poker - pravila, kombinacije in verjetnosti ............................................................. 4 2.3.1 Kategorije rok .................................................................................................. 6 2.4 Texas hold'em Sit'n go različica pokra ................................................................... 9 2.4.1 Texas hold'em .................................................................................................. 9 2.4.2 Sit'n go ........................................................................................................... 10 2.5 Razvoj pokra v računalništvu................................................................................ 11 2.6 PokerStars – spletna igralnica pokra ..................................................................... 12 3 ANALIZA NASPROTNIKA V IGRI POKRA........................................................... 15 3.1 Statistični podatki za analizo ................................................................................ 15 3.1.1 Prostovoljni vložek denarja v pot (voluntary put $ in pot – VPIP) ............... 16 3.1.2 Višanje v prvi stavni fazi (preflop raise – PFR) ............................................ 17 3.1.3 Faktor agresivnosti (aggression factor – AF) ................................................ 17 3.1.4 Frekvenca agresivnosti (aggression frequency – AGG%) ........................... 18 3.1.5 Igranje do odpiranja (went to showdown – WTSD) ...................................... 19 3.1.6 Odstotek zmag pri odpiranju (won $ at showdown – W$SD) ....................... 20 3.1.7 Poskus kraje obveznih stav (attempt to steal – ATS) .................................... 21 3.1.8 Nadaljevalna stava (continuation bet – CB) .................................................. 21 3.1.9 Ostali statistični podatki ................................................................................ 22 3.2 Tipi igralcev in stili igranja ................................................................................... 22 3.2.1 Opredelitev stilov igranja .............................................................................. 23 3.2.2 Ozko pasiven tip igralca ................................................................................ 23 IV 3.2.3 Lahko pasiven tip igralca ............................................................................... 24 3.2.4 Ozko agresivni tip igralca .............................................................................. 24 3.2.5 Lahko agresiven tip igralca............................................................................ 25 3.2.6 The nit in the maniac ..................................................................................... 25 4 MATEMATIČNI MODELI PRI POKRU .................................................................. 26 4.1 Začetne karte in upoštevanje položaja za mizo ..................................................... 26 4.2 Razmerje M, faktor Q in število lastnih žetonov .................................................. 31 4.2.1 Razmerje M ................................................................................................... 31 4.2.2 Faktor Q ......................................................................................................... 32 4.2.3 Razmerje števila naših žetonov glede na BB ................................................. 32 4.3 Pravilo 5/10 ........................................................................................................... 32 4.4 Vrednost stave in vnaprejšnja vrednost stave ....................................................... 33 4.4.1 Vrednost stave (pot odds) .............................................................................. 33 4.4.2 Vnaprejšnja vrednost stave (implied odds) ................................................... 34 4.5 Pričakovana vrednost (expected value - EV) ....................................................... 34 4.6 Zavezanost k potu (pot committed) in prag zavezanosti (commitment threshold)35 4.6.1 Prag zavezanosti ............................................................................................ 36 4.7 Razmerje med višino pota in efektivnega sklada (stack to the pot ratio - SPR) ... 36 4.8 Določanje območja začetnih kart .......................................................................... 38 Prve tri skupne karte na flopu prav tako kategoriziramo glede na: ............................. 38 4.9 Pogojna verjetnost in Bayesov izrek ..................................................................... 41 4.10 Verjetnost odstopa (fold equity) ........................................................................ 42 5 PROGRAM ZA IGRANJE TEXAS HOLD'EM NO LIMIT SIT'N GO .................... 44 5.1 Knjižnica poker sleuth .......................................................................................... 45 5.2 Datoteka za shranjevanje zgodovine odigranih rok .............................................. 46 5.3 Grafično razpoznavanje igralne mize ................................................................... 48 V 5.3.1 Algoritem za iskanje igralne mize ................................................................. 48 5.3.2 Razpoznava lastnih in skupnih kart ............................................................... 49 5.3.3 Razpoznava delivčevega gumba in zaprtih kart, ki jih držijo nasprotniki ..... 50 5.3.4 Razpoznava števila nasprotnikovih žetonov .................................................. 51 5.3.5 Razčlenjevanje datoteke za shranjevanje zgodovine odigranih krogov ........ 53 5.4 Shranjevanje statističnih podatkov o igralcih ....................................................... 53 6 RAZDELITEV TURNIRJA SIT'N GO IN IMPLEMENTIRANE STRATEGIJE ...................................................................................................................... 54 6.1 Strategija za začetno fazo turnirja ......................................................................... 55 6.2 Strategija za srednjo fazo turnirja ......................................................................... 56 6.2.1 Neodvisni model žetonov (independent chip model - ICM) ......................... 56 6.2.2 Negativna pričakovana vrednost (-$EV) ....................................................... 63 6.3 Strategija za zadnjo fazo turnirja .......................................................................... 65 7 REZULTATI IN ANALIZA ODIGRANIH IGER S POKER