whatsnewt, un juego de terminal que enseña Python 3.15 a base de puzzles
El proyecto convierte las novedades de la próxima versión del intérprete en una aventura de texto con 18 salas, y solo da por buena una respuesta si el código que la produce es el correcto.
whatsnewt es un juego de texto para terminal que repasa las novedades de Python 3.15 y obliga a usarlas de verdad. Se publica en PyPI y se lanza con un solo comando. Sus dieciocho puzzles no se resuelven eligiendo una opción ni rellenando un test: hay que escribir código y ejecutarlo contra un intérprete 3.15, y el juego mira también cómo has llegado a la respuesta, no solo el valor que devuelve.
La estructura es la de una aventura conversacional de toda la vida. Despiertas en el Startup Foyer, en algún lugar dentro del intérprete, y avanzas por un mapa hasta el Release Gate. Cada sala es una característica de la versión. El Hall of Imports cubre los imports perezosos explícitos del PEP 810; el Builtins Vault, frozendict (PEP 814) y los centinelas del PEP 661; la Encoding Tower of Babel, el UTF-8 como codificación por defecto del PEP 686; el Scriptorium, Unicode 17.0.0 y unicodedata.iter_graphemes. Más adelante aparecen el desestructurado en comprensiones (PEP 798), el tipado de TypedDict, TypeForm y disjoint_base (PEP 728, 747 y 800), el JIT mejorado y mimalloc, math.integer (PEP 791), Tachyon (PEP 799) y los frame pointers del PEP 831. Hay también una cripta con lo que 3.15 se lleva por delante.
Cómo se ejecuta
La vía rápida es tirar de uv: uvx --python 3.15 whatsnewt. Desde un clon del repositorio hay un script, ./play, que descarga CPython 3.15 si no está en el PATH, monta los entornos virtuales, instala las dependencias y arranca el juego como instalación editable en el sitio donde estés.
El requisito es tener esa versión. Vale una pre-release, pero conviene ceñirse a betas o candidatas, ya con la lista de características congelada. Los puzzles de tipado se verifican con pyrefly y el veredicto cita lo que devuelve el analizador.
En el prompt hay autocompletado con tabulador: primero los verbos y después lo que cada verbo admite en esa sala. Los comandos se agrupan en navegación (north, south, east, west, up, down), interacción (look, examine, take, drop), estado (inventory, map, score), partida (save, load, quit) y resolución (solve, y hint, que cuesta puntos). Las teclas siguen a Emacs donde Emacs tiene algo que decir: ctrl+g aborta el puzzle abierto, ctrl+h es la ayuda, ctrl+l vuelve a mostrar la sala y ctrl+r lo abre. Dentro del editor ctrl+o manda el borrador a $EDITOR y recupera lo que guardes.
La partida se guarda sola después de cualquier cambio, así que cerrar la terminal no cuesta nada. El estado vive en $XDG_STATE_HOME/whatsnewt/ o, si no existe, en ~/.local/state/whatsnewt/. Al volver a arrancar ofrece retomarla, y si dices que no, la anterior se mueve a previous-game.json. El juego pide una terminal de 112x40 para lucir bien, aunque se apaña hasta 80x24.
El marcador máximo son 375 puntos repartidos entre 18 puzzles, 6 sigilos y 15 salas. Algunos acertijos son oscuros y las pistas restan, así que llegar arriba no es trivial. Quien juegue ahora habrá tocado las novedades antes de que la versión final llegue, y el proyecto recoge feedback en su GitLab.

