---
# System prepended metadata

title: Hat Guessing with Information

---

# Hat Guessing with Information

Assumptions:
- If a clue is not giving a play to a certain player, then it doesn't need to give plays to any player after them (they will be probably be giving a clue, and they can just tell those plays with their clue)
- A clue is giving either information or plays (we use the same mechanism to talk about both trash and useful unplayable cards)
- We are going to make use of the whole clue space, so there needs to be at least one cop-out clue which says that your hat clue is unavailable

Reflections: Supposing a clue is only giving information, there is a tradeoff between how many players it gives information to and how many hands the information can depend on. e.g if you're only giving information to Bob, then you can consider Cathy, Donald, and Emily's hands and treat duplicates of their cards differently

## 3p
possible clue meanings (Bob + Cathy):
1. information + nothing
2. information + information
3. play + play
4. play + one-away
5. play + information

From Bob's perspective, 3 is intrinsically distinct from 2, 4, and 5
From Cathy's perspective, 2 is intrinsically distinct from 3, 4, and 5, and 3 does not need to be distinguished from 4

Therefore, the possible types of clues are:
- 1
- 2/3
- 3/4
- 5

2 is not that valuable, and 3 is already covered by 3/4, so we can get rid of 2/3.

## 4p 
possible clue meanings (P = play, I = info, *n* = play card on top of card played in action *n*)
- I
- II
- III
- PI
- PII
- PPI
- P1I
- PPP
- PP1
- PP2
- P1P
- P12


possible types of clues are:
- I
- II/PPP/PP1/PP2
- II/PPI
- III/PPP/PP1/PP2/P1P
- III/PPI/P1P
- PI
- PII/PPP/PP1/P1P
- P12/PPP/PP1/PP2/P1P
- P1I/PPP
- P1I/PPI

If we copied hat with finesses's approach we would restrict to the following

- III/PPP/PP1/PP2/P1P (0/3 plays)
- PII/PPP/PP1/P1P ("1" play)
- P1I/PPI (2 plays)

That leaves out I, II, PI, and P12.

If we're going to make use of the whole clue space, then we probably want I as a cop out clue, so we don't really need III. That would give
- I
- PII/PPP/PP1/P1P
- PPI/P1I
- P12/PPP/PP1/P1P/PP2

## 5p
desirable clue meanings (P = play, I = info, *n* = play card on top of card played in action *n*)
- `I`
- `PIII`
- `PPII`
- `P1II`
- `PPPI`
- `PP1I`
- `PP2I`
- `P1PI`
- `P12I`
- `PPPP`
- `PPP1`
- `PPP2`
- `PPP3`
- `PP1P`
- `PP12`
- `PP13`
- `PP2P`
- `PP21`
- `PP23`
- `P1PP`
- `P1P2`
- `P1P3`
- `P12P`
- `P123`

TODO: elaborate possible clue types

## Information

The [state of the art for information hat clues](https://github.com/WuTheFWasThat/hanabi.rs/blob/2d1a6163a51584980864544ef6b2386042290131/src/strategies/information.rs) seems to revolve around
- Asking yes or no questions about whether specific slots are playable/trash
  - (And combining the answers using an encoding which takes additive clue space)
- Partitioning the possibilities for one slot

Possible additional ideas:
- Asking questions like "what is the leftmost trash card which has a useful card immediately to the right of it?"
  - Compared to "what is the leftmost trash card", this is almost always gives both a known useful card and a known trash card
  - When there is no such card, it means that the hand is all useful/all trash, and usually only one or the other is possible.
- Giving elim notes for cards; asking questions like "do I have a g5?"
- Giving elim notes for cards without using hat. Asking questions about all the hands like "do I see a g5 in anybody's hand?" or "how many green 3s 4s and 5s do I see mod 3?" or "do I see (0 or 3), (1 or 2), or (4+) green cards?"
- Keeping track of "cmed" cards which were not trash or playable at some point, and reducing the clue space used on discard signalling them
- Making sure that information buckets are easily clarified by later positive/negative info

Let's suppose there's two cmed cards and they're both rb45. The possible combinations are

| left rank | left is red | left is blue |
| --------- | ----------- | ------------ |
| 4         | r4,b4,r5,b5 | r4,b4,r5,b5  |
| 5         | r4,b5,b5    | r4,b4,r5     |