De retour à la table en un geste
L’écran de résultat peut désormais relancer la même partie, et Partie rapide vous place dans un salon qui se remplit déjà plutôt que d’en ouvrir un autre vide.

En clair
Le meilleur moment pour lancer une partie est la seconde où la précédente se termine. La preuve était sous nos yeux et nous la gaspillions : parmi les joueurs revenus pour une deuxième partie, plus de la moitié la lançaient dans les deux minutes suivant la fin de la première — et tout ce que nous leur proposions à cet instant était un lien vers le hall, où il fallait choisir un mode, choisir un nombre de places, créer un salon et attendre.
L’écran de résultat a maintenant un bouton Rejouer. Un geste et vous êtes dans une nouvelle partie : même mode, même nombre de places, chaises vides déjà occupées, partie déjà lancée. Pas de hall, rien à régler.

Partie rapide est l’autre moitié du même problème, dans le hall. C’était un bouton qui ne faisait rien. Il vous place désormais dans le meilleur salon ouvert du mode choisi : d’abord celui tenu par une vraie personne, puis celui le plus près de démarrer, enfin celui qui attend depuis le plus longtemps. Et ce n’est que s’il n’y a vraiment rien à rejoindre qu’il vous en ouvre un.
Pour les curieux techniques
La revanche n’ajoute aucun nouveau point d’entrée côté serveur. Elle fait exactement ce qu’un joueur fait à la main — créer le salon, asseoir les bots un par un (l’appel prend la prochaine chaise libre, donc les lancer en parallèle les ferait se disputer la même), puis démarrer — et chaque étape est autorisée en tant que le joueur, si bien que toutes les règles d’un salon créé soi-même s’appliquent ici.
Cela compte à cause de qui appuie sur le bouton. Neuf sorties de première partie sur dix sont des abandons, pas des faillites : le cas habituel est donc quelqu’un qui quitte une partie encore en cours pour les autres. Cela fonctionne parce qu’un joueur sorti d’une partie ne compte plus comme étant dans une partie — une règle livrée pour une autre raison il y a un an, et qui rend aujourd’hui le bouton Rejouer légal.
Partie rapide garde sa décision dans une fonction pure, testable sans hall ni base de données. Le mode est un filtre et non une préférence : se retrouver dans une partie Classique d’une demi-heure après avoir choisi Blitz serait pire que patienter un instant.
// 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);
});La liste triée complète est renvoyée plutôt qu’un seul choix, car le nombre de places est un instantané : l’appelant descend la liste jusqu’à ce qu’une inscription réussisse vraiment, ce qui évite que deux personnes se disputant la dernière chaise se retrouvent toutes deux seules.
