chess-vs-jev
Pygame chess where python-chess owns the rules and Jev picks one labelled legal move per turn, with Human or Jev on either side.
Overview
Chess vs Jev is a pygame chess game whose opponent is a decision model rather than an engine. The point is a clean sandbox where rules stay in code and each turn is one small question: pick the best move from this list.
python-chess handles legality, including castling, en passant, promotion, checkmate and draws. Jev only sees legal moves labelled like e2-e4 or e7-e8=Q, with target squares, captures and special moves written out, and answers with one label. The answer is matched against the board and revalidated; an unrecognized label becomes a random legal move, so a bad answer costs a bad move but never crashes the game. Modes are Human vs Human, Human vs Jev and Jev vs Jev. Jev is accessed via OpenRouter or TypeSafe.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which legal move should be played? | labelled legal moves (e.g. e2-e4) |
How it works
- python-chess lists legal moves
- Label moves with their facts
- Jev picks one label
- Validate and play; fall back to a random legal move if unrecognized
Strengths
- Rules entirely in code
- Safe fallback on bad answers
- Easy to watch model behaviour
Caveats
- Hobby demo; no strength evaluation stated
Getting started
Set up .env with your Jev key and run python main.py, choosing a mode.At a glance
- Type
- Demo
- Status
- prototype
- Language
- Python
- Runtime
- pygame desktop
- Has code
- yes
Use cases and integrations
How curated lists describe it
Pygame chess where python-chess owns the rules and Jev picks one legal move per turn, playable Human vs Human, Human vs Jev, or Jev vs Jev.
AnotiaWang/awesome-decision-models
Frequently asked questions
Can Jev make illegal moves?
No, it only sees legal moves and answers are revalidated.
What happens on a bad answer?
A random legal move is played instead.
Which modes exist?
Human vs Human, Human vs Jev and Jev vs Jev.
Related projects
Source for browser chess and Chess960 where code computes each legal move's facts and Jev picks one per turn as a typed Choice.
ProjectproductionTypeScriptBrowser 1v1 sniper arena where Jev reads match state about 9 times a second and chooses movement, aim, ADS, firing and jumping.
ServicebetaTypeScriptInstrumented 2048 web lab where every move is a Jev Choice over four directions, with probabilities, latency and cost shown live.
ProjectbetaTypeScriptFifteen live arcade games where Jev and LLMs play each other, led by WikiRace in which Jev picks only real links.
ProjectbetaTypeScriptReal-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.
ProjectbetaTypeScriptBrowser extension that lets Jev, local Laya or an OpenAI-compatible model take over a running ra2web (WannaFire) RTS match.
ProjectbetaTypeScript