PERCEPTS ⇄ ACTIONSWorld — tic-tac-toe · X is MAX (+1), O is MIN (−1) · the agent reads the board here, and its move lands here
Environment — this game's properties, live
| observable | Fully |
| deterministic | Deterministic |
| agents | Two — adversarial |
| episodic / sequential | Sequential |
| static / dynamic | Static |
| discrete / continuous | Discrete |
Flip Kriegspiel or the opponent policy and watch the top rows change — every changed row demands a different algorithm. (Search Arena flips the agents row back.)
Controls
Mode
You play
Algorithm
Ordering
Opponent
Speed
AGENT FUNCTIONMy agent — f: percept → move, as JavaScript you write
Define agent(percept) → a cell index 0–8. Your agent plays the side selected under “You play”.
Rubric a perfect agent meets: never loses vs random ×20, and draws vs optimal.
Metrics — last analysis
| nodes evaluated | — |
| terminal nodes | — |
| prune events | — |
| root value (X view) | — |
Try: same position, Minimax vs Alpha-Beta; then best vs worst ordering. Watch nodes evaluated.
AGENT FUNCTIONAlpha-Beta window — at the node being visited
player
—α
—β
—best so far
—best move
—AGENT FUNCTIONGame tree — f thinks here: root = current position · values are X-view (+1 X wins · 0 draw · −1 O wins)
Game space: depth
— plain enumeration, no search: how big does it get?
MAX level (X, ▲ takes max)
MIN level (O, ▽ takes min)
being visited
best move
pruned (✂ never evaluated)