A range is not a vague feeling about what somebody might hold. It is the complete set of hands still possible at this decision, with a weight on each one. The line you watched filters that set: a hand that rarely chooses the observed actions becomes a small bar; an impossible hand disappears altogether.
Build a range, then read it
Start with [? ? ?] for every legal three-card hand. Fix cards by typing their notation, clicking a slot and selecting a card, or dragging it onto a slot; all three inputs stay synchronized. GRID always draws every matching block. Its brass badge changes only the split — H, M, or L — while LIST gives the same arriving range as rows. Choose any holding to make it exact.
Type a hand, click a slot to choose a card, or drag one onto a slot. ? keeps that card unknown.
Every shaded cell is a dealable holding. <0.1% means a tiny share, not a blocked hand.
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 | 4 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | <0.1% |
| 5♥ | <0.1% | <0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | <0.1% | |
| 5♠ | <0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | <0.1% | ||
| 5♦ | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | 0.1% | <0.1% | |||
| 3 | 0.2% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.1% | |||
| 2 | 0.2% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.1% | ||||
| A | 0.2% | 0.5% | 0.5% | 0.5% | 0.5% | 0.5% | 0.1% | |||||
| K | 0.2% | 0.5% | 0.5% | 0.5% | 0.5% | 0.1% | ||||||
| J | 0.2% | 0.5% | 0.5% | 0.5% | 0.1% | |||||||
| Q | 0.2% | 0.5% | 0.5% | 0.1% | ||||||||
| 7 | 0.2% | 0.5% | 0.1% | |||||||||
| 6 | 0.2% | 0.1% | ||||||||||
| 4 | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 | 6 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | ||||
| A | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | |||||
| K | 0.3% | 0.7% | 0.7% | 0.7% | 0.3% | ||||||
| J | 0.3% | 0.7% | 0.7% | 0.3% | |||||||
| Q | 0.3% | 0.7% | 0.3% | ||||||||
| 7 | 0.3% | 0.3% | |||||||||
| 6 | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q | 7 |
|---|---|---|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | ||||
| A | 0.3% | 0.7% | 0.7% | 0.7% | 0.3% | |||||
| K | 0.3% | 0.7% | 0.7% | 0.3% | ||||||
| J | 0.3% | 0.7% | 0.3% | |||||||
| Q | 0.3% | 0.3% | ||||||||
| 7 | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J | Q |
|---|---|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.7% | 0.7% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.7% | 0.7% | 0.7% | 0.3% | ||||
| A | 0.3% | 0.7% | 0.7% | 0.3% | |||||
| K | 0.3% | 0.7% | 0.3% | ||||||
| J | 0.3% | 0.3% | |||||||
| Q | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K | J |
|---|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.7% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.7% | 0.7% | 0.3% | ||||
| A | 0.3% | 0.7% | 0.3% | |||||
| K | 0.3% | 0.3% | ||||||
| J | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A | K |
|---|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.7% | 0.3% | ||||
| A | 0.3% | 0.3% | |||||
| K | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 | A |
|---|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.7% | 0.3% | |||
| 2 | 0.3% | 0.3% | ||||
| A | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 | 2 |
|---|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.2% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.2% | 0.1% | |
| 5♠ | <0.1% | 0.2% | 0.1% | ||
| 5♦ | 0.2% | 0.1% | |||
| 3 | 0.3% | 0.3% | |||
| 2 | <0.1% |
| H \ M | 5♥ | 5♠ | 5♦ | 3 |
|---|---|---|---|---|
| 5♣ | <0.1% | <0.1% | <0.1% | 0.1% |
| 5♥ | <0.1% | <0.1% | 0.1% | |
| 5♠ | <0.1% | 0.1% | ||
| 5♦ | 0.1% | |||
| 3 | <0.1% |
| H \ M | 5♥ | 5♠ |
|---|---|---|
| 5♣ | <0.1% | <0.1% |
| 5♥ | <0.1% |
| H \ M | 5♥ |
|---|---|
| 5♣ | <0.1% |
Blockers — why hands disappear
A blocker is just a card that is already visible, so it cannot also be in a hand. The vira removes one copy before anybody acts; each open card in the line removes another. That is a physical deck constraint, not a solver preference. The lab greys choices with no copies left, and the range editor refuses them too.
Click a card in Mão's hand to pin or clear it. The visible vira and every pinned card are removed from the deck before Pé's hidden hand is counted.