• [^] # Re: Numéros de partie séquentiels

    Posté par (site web personnel) . En réponse à la dépêche Trivabble continue à évoluer. Évalué à 7. Dernière modification le 08 mai 2020 à 09:44.

    Tu supposes que des numéros à 4 chiffres sont tirés, mais c'est juste parce qu'il y en a encore plein qui sont dispos :-)

    Si cet aspect t'intéresse je t'invite à lire le code :

    function newGameId() {
     let number;
     let k = 10000;
     let retries = 0;
     do {
     number = Math.floor(Math.random() * k).toString();
     if (retries > 10) {
     retries = 0;
     k *= 10;
     } else {
     retries++;
     }
     } while (games[number]);
     return number.toString();
    }

    Le code cherche un nombre en dessous de 10000. Si 10 fois d'affilée, il tombe sur un numéro de partie déjà utilisé, il recommence avec 100 000, et ainsi de suite. Ça passe tout seul à l'échelle (j'avais oublié que j'avais fait ça, je suis plutôt content de moi en fait :-P).

    On pourrait tomber sur un numéro en dessous de 1000, mais il n'y a environ que 10% de chance que cela arrive, c'est pour ça qu'en général on tombe sur un numéro à 4 chiffres.

    Pour l'instant il n'y a pas eu de problème de performance lié au tirage. Bien sûr, le jour où ça pose problème, on devra aviser. On pourrait enregistrer la valeur de k par exemple au lieu de se payer 10 ×ばつ x tentatives inutiles à chaque fois.

    Qu'apporte un uuid par rapport à cette solution ? Ça va être pénible à transmettre comparé à un numéro de quelques chiffres, et ça me semble beaucoup plus pénible à générer.

    Il s'avère aussi qu'en pratique, les gens qui ne sont pas à l'aise avec l'informatique s'en sorte bien avec le système actuel. Je le sais parce que j'ai reçu quelques mails, parfois de personnes âgées ou jouant avec des personnes âgées, et parmi les retours, on me dit que c'est simple à utiliser et on me demande de garder les choses simples à utiliser pour des personnes âgées. C'est facile de communiquer un numéro. Alors que copier une URL et l'envoyer, bah c'est moins intuitif :

    • cliquer sur un bouton copier l'URL (tout le monde n'a pas conscience qu'il ou elle peut copier l'adresse dans la barre du navigateur)
    • l'envoyer par mail (le numéro, ça s'envoie facile par texto, l'URL, un peu moins si tu n'es pas sur téléphone, et si le destinataire est sur son ordinateur, ça va l'embêter de recevoir une URL sur son téléphone)
    • l'autre clique... ou doit recopier l'URL

    Comparé à :

    • communiquer le numéro par mail ou texto
    • l'autre clique sur "Rejoindre ses adversaires"
    • saisit le numéro

    Plus simple ! Même si oui, il faut taper le numéro. Mais tout le monde sait taper ou recopier un numéro (c'est comme avec le téléphone que tout le monde sait utiliser), beaucoup plus de gens savent le faire que copier une URL.

    J'allais te répondre que ça serait cool, et une bonne idée, pour les "geek" / gens à l'aise d'avoir la possibilité de rejoindre une partie par URL mais cela pose un autre problème : elle s'enregistre dans l'historique. D'un coup, on introduit un bogue possible : le changement de numéro de partie silencieux et par inadvertance parce qu'on accède à la mauvaise adresse sans s'en rendre compte.

    J'ai réfléchi toute l'interface et en particulier ce mécanisme pour rejoindre une partie avec en tête quelqu'un qui a plus de 80 ans, et qui a découvert l'informatique et internet à travers une tablette il y a seulement quelques années. Je préfère une recopie pas si laborieuse à des comportements / une interface un peu compliquée. J'ai dû penser à l'époque à un mécanisme basé sur les URL pour rejoindre une partie (forcément séduisant !), et écarté l'idée pour les raisons mentionnées.

    Cela dit je suis ouvert au débat, dans le fond j'aimerais bien que cette fonctionnalité existe... mais seulement si elle résout un problème sans en ajouter d'autres :-)