Files
Wizard/wizard_server/game_logic/README.md
T
marvinandClaude Opus 5.5 21a2b044d9 Trump card: draw from the stack, no trump for wizards and jesters
- Deal the hands from the shuffled stack and draw the trump card from it,
  so the trump card is in nobody's hand and cannot be played
- A wizard or jester as trump card means no trump suit (previously a
  wizard let the dealer choose); remove the trump selection phase, the
  ChooseTrump action, the trump picker UI and the AI trump actions
- Completed tricks carry their round's trump card, so the table keeps
  showing the matching trump card while the last trick of a round is
  displayed
- Card corners are no longer rotated, so 6 and 9 cannot be confused
- Trump label explains why there is no trump (wizard, jester, last round)
- Tests: trump card never dealt, special cards give no trump, tricks keep
  their trump card

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 10:28:53 +02:00

27 lines
877 B
Markdown

# wizard_game
Pure-Python rules engine of Wizard (no dependencies). It is used by the game
server and can be installed on its own to train AI players:
```bash
pip install ./wizard_server/game_logic
```
```python
import random
from wizard_game import WizardGame, GameOptions
game = WizardGame(num_players=4, options=GameOptions(hidden_bids=True), seed=1)
rng = random.Random(1)
while not game.is_finished:
player = game.current_player
obs = game.observation(player) # what this player may see
action = rng.choice(obs.legal_actions) # Bid / PlayCard
events = game.apply(player, action) # TrickCompleted, RoundCompleted, ...
print(game.scores, game.winners())
```
`Observation.to_dict()` / `Observation.from_dict()` and
`action_to_dict()` / `action_from_dict()` define the JSON format that the
server sends to web clients and to the AI service.