(trick: list[dict], trump: str | None)
| 93 | |
| 94 | |
| 95 | def _trick_winner(trick: list[dict], trump: str | None) -> int: |
| 96 | led = trick[0]["card"][1] |
| 97 | best_pos, best_key = None, None |
| 98 | for play in trick: |
| 99 | suit = play["card"][1] |
| 100 | tier = 2 if (trump and suit == trump) else (1 if suit == led else 0) |
| 101 | key = (tier, _rank(play["card"])) |
| 102 | if best_key is None or key > best_key: |
| 103 | best_key, best_pos = key, play["position"] |
| 104 | return best_pos |
| 105 | |
| 106 | |
| 107 | class BridgeReplayer(ReplayRenderer): |