Texas Hold ‘em is de bekendste en meest voorkomende variant van poker. Deze variant is zo populair dat het doorgaans bedoeld wordt als men over poker spreekt. De grootste pokerevenementen ter wereld zijn meestal Texas Hold ‘em evenementen, denk hierbij aan het World Series Of Poker Main Event en het EPT Main Event. Ook in de wereld van online poker is Texas Hold ‘em veruit het meest populair en daarom de reden dat de grote online aanbieders voornamelijk pokertoernooien en cashgames aanbieden in deze variant. Naast Texas Hold ‘em is Pot Limit Omaha de meest populaire vorm van Poker.
Het doel van het spel is om de hoogst mogelijke kaartcombinatie te maken. De speler doet dit door 5 kaarten te kiezen uit 2 eigen gesloten kaarten en 5 gemeenschappelijke open kaarten. De speler mag kiezen om twee, één of geen van zijn eigen kaarten te gebruiken. Van tevoren zijn er afspraken gemaakt over de spelvorm en inzetlimieten. Texas Hold’em wordt gespeeld met één stok (Engels: deck) van 52 kaarten.
Als oefening zullen we een aantal zaken van het spel automatiseren a.d.h.v. functies.
Het tweede argument geeft de integer die voor “A” moet worden teruggegeven. Indien het tweede argument niet gegeven is (lees default) dien je 1 terug te geven.
Maak een functie int2getalwaarde. Deze functie doet de omgekeerde omzetting van de functie getalwaarde2int.
AssertionError
met boodschap “Ongeldige invoer” indien de lengte van de lijst niet gelijk is aan \(n\). Indien dit wel het geval geef je een boolean die indiceert of de kaarten gelijke getalwaarden hebben. (e.g. \(n=3\) zijn deze kaarten three of a kind?).AssertionError
met boodschap “Ongeldige invoer” indien de lengte van de lijst niet gelijk is aan 5. De functie geeft een boolean terug die indiceert of de 5 kaarten samen een flush vormen. (zie punt 5)AssertionError
met boodschap “Ongeldige invoer” indien de lengte van \(l1\) niet gelijk is aan \(n1\) of de lengte van \(l2\) niet gelijk is aan \(n2\). Indien dit wel het geval is geef je een boolean die indiceert of \(l1\) een \(n1\) paar is en \(l2\) een \(n2\) paar is. (e.g. \(n1=3\) en \(n2=2\) zijn deze kaarten a full house?)AssertionError
met boodschap “Ongeldige invoer” indien de lengte van de lijst niet gelijk is aan 5. De functie geeft een boolean terug die indiceert of de 5 kaarten samen een straat vormen. (zie punt 6)>>> iskaart((9, "H"))
True
>>> iskaart((10, "Z"))
False
>>> ishand([(5, 'K'), ('J', 'K')])
True
>>> ispaar([(7, 'K'), (7, 'H'), (7, 'S'), (7, 'R')], 4)
True
>>> isxpaar([(3, 'R'), ('J', 'K')], [(8, 'S'), (6, 'R')], 2, 2)
False
>>> isflush([('A', 'R'), ('J', 'S'), (4, 'H'), (7, 'S'), (2, 'R')])
False
>>> isstraat([(3, 'R'), (5, 'H'), (7, 'S'), (6, 'R'), (4, 'K')])
True
>>> isstraightflush([(3, 'R'), (5, 'R'), (7, 'R'), (6, 'R'), (4, 'R')])
True