The problem I needed to solve
My teammate’s Pasur bot chooses among legal options without inspecting hidden opposing cards. That information boundary mattered more to me during integration than the artificial-intelligence label.
Implementation in this snapshot
PasurBotStrategy.ChooseMove evaluates its own cards and their captures. EvaluateCapture scores card points, clubs, reaching seven clubs and Sur.
The design decision and its cost
Without a capture, EvaluateDiscard estimates discard cost. Preserving jacks and avoiding valuable giveaways enter its heuristics; the result contains the actual CardInstance and selected captured set.
Current boundaries
This is a weighted one-step choice, not complete game search or a trained model. Its weights are not benchmark results or guarantees of bot strength.
Review scenarios and contract meaning
To understand a bot decision, I first need the legal options in that state. Its own hand and the visible table are decision inputs; this normal choice does not require hidden opposing cards. Card points, club counts and reaching seven clubs can give different values to captures that look similar. Sur also influences evaluation. ChooseMove returns the actual card instance and captured set, allowing the runner to execute that choice rather than guess again from a move label.
When no capture exists, the problem becomes choosing a discard. Preserving a jack or avoiding a valuable giveaway contributes simple costs, but this is not complete future-game search. Weights are design judgments; numbers in an evaluation function do not establish competitive quality or a win rate. States with several legal captures, no capture, or proximity to the club target are useful integration review scenarios. I present them as ways to understand behavior, not completed test results. My teammate’s explainable strategy keeps the information boundary and reason for a choice clear without being described as a trained model.
Explainable weights do not make every outcome obvious. Two options can score closely and a weight change can move a particular decision boundary. Future review benefits from reading each option’s contribution in a specific state. That supports tuning my teammate’s strategy around known behavior rather than claiming general intelligence or judging from one match.
What this stage taught me
For me, an explainable strategy is easier to integrate. I can inspect why an option gains value and what public information it uses without inferring quality from Bot or claiming my teammate’s work.




