Pokerbot

De flesta Texas Hold’em-spelare har hört talas om speciell mjukvara som använts för pokerspel. Denna mjukvara kallas för pokerbot och har skapats med mål att vinna pengar, utan att en spelare behöver följa spelet. Det sparar tid och utesluter risker för matematiskt felaktiga beslut. Algoritmen bakom pokerboten är gjord på ett sådant sätt att alla insatser som görs är statistiskt sett felfria.

Termen pokerbot är egentligen en abbreviatur av orden poker och robot. Ett exempel på robotar just i denna bemärkelse är sökmotorrobotar som har hjälpt dig att hitta vår sajt. Ordet robot har myntats av tjecken Čapek på 1920-talet som valde att kalla slavarbetare för robotar i sin sci-fi-pjäs R.U.R. Idag har betydelsen av ordet ändrats något. Syftet med pokerrobotar är dock exakt likadant som i denna tjeckiska bok. En bot gör slavjobbet åt dig som vill vinna pengar på pokerspel.

Pokerbotar är ett kontroversiellt ämne, vilket gör det svårt att hitta objektiv information om dem på nätet. Vi marknadsför inte deras användning och rekommenderar er att spela Texas Hold’em på egen hand. Däremot är det bra att förstå vad robotar är för något. Vi börjar genomgången med en kortpresentation av botar i stort. Alla listade robotar är artificiell intelligens/mjukvara vars yttersta mål är att ersätta människan online. De kommer i flera olika varianter:

  • Chatbotar – mjukvara vars uppgift är att delta i diskussioner i pokerchatten;
  • Sökmotorbotar eller sökspindlar som finns till för att hitta sidor som på det bästa möjliga sättet motsvarar sökarens förväntningar;
  • Assistbotar – mjukvara som hjälper spelaren vinna i shooterspel och andra typer av spel som kräver interaktion;
  • Spambotar – botar som gör ett intrång i din dator och gör spamutskick;
  • Spelbotar, däribland pokerbots eller pokerbotar – mjukvara som hjälper dig att vara med i spelet utan att närvara vid bordet/skärmen.

Hur fungerar en pokerbotHur fungerar en pokerbot

Av alla spelbotar finns det en typ som är i särklass populärast, nämligen pokerbot. Det gäller i alla fall spel om riktiga pengar. Vi fokuserar här på bots som är program, skapade för att vinna på Texas Hold’em-pokerspel. Dags nu att kika närmare in i hur dessa fungerar.

När en IT-specialist jobbar med utveckling av en pokerrobot, måste denne hålla koll på en rad olika faktorer:

  • Pokerbotens spelstil, då det finns en del sätt att spela på och strategier som av olika spelarproffs anses vara fördelaktiga/vinnande;
  • Pokerklienten som boten skapas för. Alla klienter har unika parametrar, vilket gör det omöjligt att skapa ett program som fungerar på alla sidor som erbjuder pokerspel på nätet;
  • Om det går det att chatta i pokerklienten. Gör det det, kan det vara smart att lägga till en chattfunktionalitet som gör att boten publicerar inlägg lite då och då.

Trådar och multi threading

För att få en inblick i hur pokerbots skapas, måste vi fördjupa oss i något komplicerade koncept som trådar och multi threading. För att hålla koll på all nödvändig information som krävs för att vinna pengar på poker och minimera risken att bli nedstängd, måste boten programmeras med trådar. Varje sådan tråd har sin egen unika uppgift, vilket gör att pokerboten kan utföra sitt jobb på ett optimalt sätt och behålla all information som den tidigare har samlat in.

Trådar som finns inbyggda i pokerbotens mjukvara brukar rankas utifrån hur viktiga för resultatet de är. När programmerare skapar boten med multi threading, bör de känna till tre huvudtrådar:

  1. Pokerklienttråd, vars mål är att hålla koll på allt som händer vid pokerbordet och hämta alla viktiga uppgifter;
  2. Pokerspeltråd som avgör besluten som roboten fattar under spelets gång. Dessa beror i sin tur på info som denna tråd får av klienttråden;
  3. Eventuell pokerchattråd som tar hand om allt som rör sig chatten.

Klienttråd

För att förstår hur en klienttråd ska vara uppbyggd, är det viktigt att veta vilka slags pokerklienten det finns. Dess huvuduppgift är ju att automatiskt samla in info från spelet. Denna information används sedan för att med hjälp av en algoritm göra vinstgivande beslut. Det är med andra ord helt avgörande att klienttråden fungerar felfritt, är ”kompatibel” med pokerklienten och levererar alla uppgifter som krävs för att slå andra Texas Hold’em-spelare.

Klienttråden hämtar in pokerspelinformation genom att antingen avläsa datan. Det görs genom att HTML-koden eller en annan typ av rådata plockas upp av pokerroboten. Vissa robotar använder sig av så kallade skärmskrapare som får data från det grafiska användargränssnittet (eng. GUI).

Syftet med skärmskrapning (eng. screen scraping) är att samla in info från skärmen genom bildanalys med OCR. Abbreviaturen står för Optical Character Recognition.

Det finns en rad sajter som erbjuder OCR gratis på nätet. För en pokerbot brukar man antingen använda sig av en tredjepartslösning eller skapa mjukvaran själv. Uppgifterna som OCR-mjukvara behöver lösa inkluderar följande:

  • Val av den skärmdelen som ska läsas av och som innehåller relevanta uppgifter, t. ex. insatsbelopp;
  • Analys, tolkning och sammanställning av avlästa symboler.

Nu när vi har gått igenom hur pokerroboten samlar in information, är det dags att gå vidare och kika på vilka uppgifter som spelar roll och är värda att spara. De flesta pokerbotar opererar med sju parametrar:

  1. Kort som är givna, inklusive så väl hålkort som pokerboten får som flopp, turn och river på bordet;
  2. Dealerns position som är ett måste för att veta vem som får pröjsa för small respektive big blind i pokerspelet;
  3. Potten – visst är det även viktigt att veta hur mycket pengar som går att vinna på Texas Hold’em-spelrunda inklusive information om eventuella sidopotter;
  4. Spelarnas tidigare val – hur agerar motståndare och vilka beslut de fattat kan vara helt avgörande när roboten väljer en optimal spelstrategi, baserad på spelarnas stil. Dessutom är det ett måste att kunna tracka insatser i pågående spelet för att veta när pokerbotens egna insatser ska göras;
  5. Robotens bankroll är så klart också en viktig parameter som låter pokerboten veta hur mycket ”hon” har har råd att satsa i pokerspelet;
  6. Chatten – i fall botens användarnamn/nick omnämns, brukar den publicera ett inlägg;
  7. Spelarnas tur – självklart är det också ett måste för boten att hålla koll på när det är dags att lägga sina insatser.

Speltråd
Speltråd

När alla avgörande uppgifter är plockade upp av pokerbotens klienttråd, går speltråden in i bilden. Den kan fungera på en rad olika sätt och kan utföra så väl enkla uppgifter som att bara lägga insatser till komplicerad analys av spelarbeteendet. Speltrådvarianter som är mer komplexa är kapabla till att basera sina insatser på en rad olika faktorer. Dessa kan inkludera, men är inte begränsade av, pokerhänder och vinstodds. Hur en speltråd fungerar beror alltså på kreativitet och kunskap som skaparen av algoritmen och mjukvaran har. Beslutet att vara med i spelet, raisa eller folda beror på insamlad information och förutbestämd strategi som aktiveras utifrån spelsituation som kommuniceras av klienttråden. När pokerboten har information endast om sina egna hålkort, räknar den fram vinstodds utifrån dessa två kort. Antal spelkort som är synliga på pokerbordet gör att algoritmen ändras för att analysera alla kort.

Informationen om odds på kombinationer av hållkort och om olika pokerhänders ranking finns tillgänglig för alla och är redan publicerad på ett flertal spelrelaterade webbsidor. De flesta av oss som någon gång har spelat poker vet att kombinationen med två ess är den allra bästa du kan få. Det vet självklart även pokerboten. Fördelen med boten är att den kan per automatik ranka och räkna fram odds även på de hålkortkombinationer som är rätt svåra för Texas Hold’em-spelarna att ranka utantill. En sådan autoranking kan i flera fall vara helt avgörande för spelutgång.

Dessutom är det viktigt att pokerboten ”förstår” positioner vid bordet. Det gör att roboten kan sno small och big blind-insatser genom att raisa sist i insatsrundan före floppen. Har inga andra Texas Hold’em-spelare valt att syna i den allra första insatsrunda, kan pokerboten använda sig av blufftaktik och vinna hela potten, bestående av blind bets.

Utöver vinstodds för en rad olika kortkombinationer, beroende på antal synliga kort, baseras beslut som avancerade pokerbots gör i Texas Hold’em på spelarstilar. Det går att urskilja fyra huvudstilar:
Tight och aggressiv stil som är att rekommendera för den maximerar vinstchanser på lång sikt. Du väljer att vara med på få starka pokerhänder och satsar relativt stora belopp när det verkligen är värt det;

  • Tight och passiv stil betyder att spelaren satsar pengar endast vid starka hålkort/pokerhänder, men inte vågar satsa mycket åt gången, inte ens när handen är riktigt stark;
  • Loose och aggressiv spelstil utmärker Texas Hold’em-spelarna som gillar risk och att bluffa. De är med på många pokerhänder och satsar mycket, oftast vid starkare händer.
  • Loose och passiv stil går ut på att pokerspelaren väljer att delta i många pokerhänder och satsar små belopp.

För varje spelstil finns det en optimal strategi som pokerboten kan välja att implementera. Vid en bra algoritm, kan roboten ”svälta ut” eller ”skrämma bort” motståndarna. Det är enormt viktigt att utvecklaren av pokerboten är ordentligt påläst om pokerstrategi, -psykologo och vinstodds.

Chattråd

Slutligen är det dags att kika på chattråd som av de flesta pokerexperter som jobbar med utveckling av pokerbots inte anses vara avgörande. De flesta seriösa Texas Hold’em-spelare avaktiverar chattfunktionen eller kollar inte ens på chattfönstret medan de spelar poker.

Syftet med chattboten är att stärka illusionen om att det är en fysisk person som är med i spelet. Deras uppgift är att simulera chatt och kunna klara av Turing-testet, det vill säga vara så pass bra att motspelarna inte förstår att de chattar med en bot.
Chattråd fungerar oftast som så att den postar något i chatten när någon ställer en fråga till pokerboten. Det sker direkt eller med en förutbestämd fördröjning. Avancerade pokerrobotar är bättre på att agera som riktiga människor, medan de enklare är relativt enkla att avslöja.