2

I am looking for any direction on how to implement the process below, you should not need to understand much at all about poker.

Below is a grid of possible two-card combinations.

Pocket pairs in blue, suited cards in yellow and off-suited in red.

flopzilla range matrix

Essentially there is a slider under the matrix which selects a percentage of possible combinations of two cards which a player could be dealt. However, you can see that it moves in a sort of linear fashion, towards the "better" cards.

These selections are also able to be parsed from strings e.g AA-88,AKo-AJo,KQo,AKs-AJs,KQs,QJs,JTs is 8.6% of the matrix.

I've looked around but cannot find questions about the specific selection process. I am not looking for "how to create this grid" or , more like how would I go about the selection process based on the sliding percentage. I am primarily a JavaScript developer but snippets in any language are appreciated, if applicable.

My initial assumptions are that there is some sort of weighting involved i.e. (favoured towards pairs over suited and suited over non-suited) or could it just be predetermined and I'm overthinking this?

Bucket
  • 7,415
  • 9
  • 35
  • 45
Emobe
  • 660
  • 11
  • 32
  • so you set the percentage of the element in the grid and when the slider is greater than or equal to you adjust it. – epascarello Jan 14 '19 at 14:49
  • so it's pretty much just predetermined? I always tend to overthink processes like this. – Emobe Jan 14 '19 at 14:51
  • I am sure there could be math, but to me seems like pre determined is the easiest. It is not like the combos will change. http://www.pokerology.com/lessons/drawing-odds/ – epascarello Jan 14 '19 at 14:53
  • makes the most sense to me, I just needed some confirmation before I suddenly code it all then realise I have to change stuff. Could you please add this as an answer so I can accept it? – Emobe Jan 14 '19 at 14:58
  • The background data structure might be a 1-dimensional array of length 1326, which is presorted in a certain order (according to value in the game). You determine once the ordering of the cards rather than doing so on the fly. Trivial modular arithmetic gets you from the 1-dimensional index to the place on the grid. – John Coleman Jan 14 '19 at 14:58

1 Answers1

0

In my opinion there should be something along the lines of "grouping(s)" AND "a subsequent weighting" process. It should also be customisable for the user to provide an optimal experience (imo).

For example, if you look at the below: https://en.wikipedia.org/wiki/Texas_hold_%27em_starting_hands#Sklansky_hand_groups These are/were standard hand rankings created back in the 1970s/1980s however since then, hand selection has become much more complicated. These kind of groupings have changed a lot in 30 years so poker players will want a custom user experience here.

But lets take a basic preflop scenario.

Combinations:- pairs = 6, suited = 4, nonsuited = 12

1 (AA:6, KK:6, QQ:6, JJ:6, AKs:4) = 28combos 
2 (AQs:4, TT:6, AK:16, AJs:4, KQs:4, 99:6) = 40
3 (ATs:4, AQ:16, KJs:4, 88:6, KTs:4, QJs:4) = 38
....
9 (87s:4, QT:12, Q8s:4, 44:6, A9:16, J8s:4, 76s:4, JT:16) = 66

Say for instance we only reraise the top 28/1326 of combinations (in theory there should be some deduction here but for simplicity let's ignore that). We are only 3betting or reraising a very very obvious and small percentage of hands, our holdings are obvious at around 2-4% of total hands. So a player may want to disguise their reraise or 3bet range with say 50% of the weakest hands from group 9. As a basic example.

Different decision trees and game theory can be used with "range building" so a simple ordered list may not be suitable for what you're trying to achieve. depends on your programs purpose.

That said, if you just looking to build an ordered list then you could just take X% of hands that players open with, say average is 27% and run a hand equity calculator simulation tweaking the below GitHub to get different hand rankings. https://github.com/andrewprock/pokerstove

Theres also some lists here at the bottom this page.
http://www.propokertools.com/help/simulator_docs

Be lucky!