De vuelta a la mesa con un toque
La pantalla de resultados ya puede volver a empezar la misma partida, y Partida rápida te mete en una sala que ya se está llenando en vez de abrir otra vacía.

En palabras sencillas
El mejor momento para empezar una partida es el segundo en que termina la anterior. Teníamos la prueba y la estábamos desperdiciando: de los jugadores que volvían para una segunda partida, más de la mitad la empezaba en los dos minutos siguientes al final de la primera — y lo único que les ofrecíamos en ese momento era un enlace al vestíbulo, donde había que elegir modo, elegir número de plazas, crear una sala y esperar.
Ahora la pantalla de resultados tiene un botón Jugar otra vez. Un toque y ya estás en una partida nueva: el mismo modo, el mismo número de plazas, las sillas vacías ya ocupadas y la partida en marcha. Sin vestíbulo y sin nada que configurar.

Partida rápida es la otra mitad del mismo problema, en el vestíbulo. Antes era un botón que no hacía nada. Ahora te mete en la mejor sala abierta del modo que elegiste: primero una creada por una persona real, después la que está más cerca de empezar y por último la que lleva más tiempo esperando. Solo si de verdad no hay nada a lo que unirse te abre una sala.
Para los más técnicos
La revancha no añade ningún punto nuevo en el servidor. Hace exactamente lo que hace un jugador a mano — crear la sala, sentar los bots de uno en uno (la llamada elige la siguiente silla libre, así que hacerlo en paralelo las haría competir por la misma), y luego empezar — y cada paso va autorizado como el jugador, de modo que aquí se aplican todas las reglas de una sala que creas tú.
Eso importa por quién pulsa el botón. Nueve de cada diez salidas de una primera partida son rendiciones, no bancarrotas, así que el caso habitual es alguien que abandona una partida que sigue en marcha para los demás. Funciona porque quien ya está fuera de una partida deja de contar como estando en una: una regla que se lanzó por otro motivo hace un año y que hoy es lo que hace legal el botón de revancha.
Partida rápida guarda su decisión en una función pura, así que se puede probar sin vestíbulo y sin base de datos. El modo es un filtro, no una preferencia: acabar en una partida Clásica de media hora después de elegir Blitz sería peor que esperar un momento.
// lib/lobby/quickMatch.ts — which open room to try, in order
.sort((a, b) => {
// 1. a human host: pool the people who are actually online
if (a.creator_is_bot !== b.creator_is_bot) return a.creator_is_bot ? 1 : -1;
// 2. fewest free seats: a nearly-full room starts sooner
const freeA = a.max_players - a.player_count;
const freeB = b.max_players - b.player_count;
if (freeA !== freeB) return freeA - freeB;
// 3. oldest: whoever has waited longest gets company first
return Date.parse(a.created_at) - Date.parse(b.created_at);
});Se devuelve la lista ordenada completa en vez de una única elección, porque los recuentos de plazas son una foto fija: quien llama recorre la lista hasta que una unión funciona de verdad, y eso evita que dos personas que compiten por la última silla acaben las dos solas.
