Skip to content

Commit 483275d

Browse files
author
Claude
committed
feat(#616): auction the hot seat instead of assigning it
Once per game, at a randomly drawn round, the chair is sold rather than handed to whoever is last. Everyone bids in secret; the highest bid answers one question alone while the rest of the room may stake points on the outcome. Bids are a SHARE of the bidder's own score, never an absolute number of points. This is the decision the mode stands on: in points the auction always goes to whoever is already ahead, which inverts the comeback lever the issue was opened for. In percent everyone can commit everything, so the chair goes to whoever risks the most rather than whoever holds the most — and it is cheapest for the player in last place. It also matches how the wager finale already stakes (player.py:84), so the game gains no second notion of "an amount you put down". Settlement is symmetric, like the finale. Unlike the finale, an unanswered question still costs the stake: the chair was bought either way, and "bid, then let the clock run out" would otherwise be free — which is what any sleeping phone does on its own, no bad intent required. #653 brings the finale in line so this ends up being one rule rather than two. A bid must also cost something. A player on zero points bidding 100% would be the highest bid in the room at a stake of nothing: they would win nothing, lose nothing, and the only effect would be that nobody else gets the chair. Found by a test that was checking something else. Implementation follows the Lightning Round exactly — rules in a synchronous game/hot_seat.py, three phases, and one loop in the WS layer. The auction never draws the round Lightning already owns, and it reserves the main game's queued questions the same way (#544). Off in the kids preset, for the same family of reasons Lightning is: losing points is the mechanic children like least. 67 new tests, suite 2175.
1 parent 8c2a73d commit 483275d

19 files changed

Lines changed: 2547 additions & 13 deletions

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,18 @@
33
All notable changes to Quizify are documented here. This project follows
44
[Semantic Versioning](https://semver.org/).
55

6+
## [Unreleased]
7+
8+
### 🪑 The hot seat goes to the highest bidder
9+
10+
Once per game, at a round nobody sees coming, the chair is auctioned. Everyone bids in secret, the highest bid takes the seat and answers one question alone, and the rest of the room may stake points on whether they get it.
11+
12+
A bid is a **share of your own points**, not a number of them. That one choice is what makes the mode work: bid in points and whoever is already ahead wins every auction, so the chair would go to the player who needs it least. In percent everyone can commit everything, and the seat is cheapest for whoever is last.
13+
14+
Right answer wins your stake, wrong answer loses it — and so does no answer at all. Winning the auction means paying for it.
15+
16+
Betting is optional, the player in the chair may not bet, and the auction is off in the kids preset.
17+
618
## [1.10.0] — 2026-08-23
719

820
### 🇪🇸 Spanish is complete

0 commit comments

Comments
 (0)