What Python versions are supported?

  • Python 3.10+ (uses match-case in set_level).

Do I need MongoDB?

  • Not for basic play at CPU levels 1–3. For level 4 search and for building or exporting the evalmap, you need MongoDB and the pymongo package.

What is the position key format?

  • A canonical JSON string with no spaces: “[[a…],[b…],turn]”. Lists are sorted to ensure canonical form.

How are wins, losses, and draws encoded?

  • value ≥ +100: forced win for First (Blue)
  • value ≤ -100: forced win for Second (Red)
  • value = 0: forced draw

Why does “opponent cannot move” result in a loss for me?

  • Dodgem has the rule “when the opponent cannot move, you lose.”

Why does the GUI sometimes open MongoDB?

  • If either player uses CPU level 4 or if verbose is very high, the engine opens MongoDB to support lookups and logging.

Where is the evalmap stored?

  • A packaged default is included and referenced by EVALMAP. You can override with –evalmap-path or ~/.dodgem.