CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

Tant qu'il y a du gras, tout va #200

Open sinedied opened 2 years ago

sinedied commented 2 years ago

Parmi tant de bons choix, il faut être sur de prendre la bonne décision et de garantir la parfaite aléatoirité du choix, quitte a s'y reprendre quelques fois hein.

const les_specialites_regionales_de_mardi_gras = ["gaufres", "croustillons du ch\'nord", "bugnes", "ganses", "pets de nonne", "roussettes", "merveilles", "crouchepettes", "bougnettes", "beugnot", "bottereaux", "oreillettes"];

function choisi_une_recette_aleatoire_de_mardi_gras(liste) {
  let ca_matche = false;
  let recette_aleatoire = "";
  let liste_des_recettes_restantes = liste;

  // Tant que la recette n'est pas trouvée, on continue de chercher, logique hein ?
  while (!ca_matche) {
    // On choisit un caractère ASCII aléatoire
    let caractere_aleatoire = String.fromCharCode(Math.floor(Math.random() * 128));

    // On regarde si le caractère matche avec quelques chose dans la liste
    const liste_des_recettes_qui_matchent = liste_des_recettes_restantes.filter(recette => recette.startsWith(recette_aleatoire + caractere_aleatoire));

    // Est-ce qu'on a trouvé quelque chose ?
    if (liste_des_recettes_qui_matchent.length > 0) {
      // On progresse, c'est bien!
      recette_aleatoire += caractere_aleatoire;
      // On continue de chercher parmi les recettes qui matchent,
      // en mélangeant un peu parce que ca doit rester aléatoire (logique)
      liste_des_recettes_restantes = liste_des_recettes_restantes.sort(() => Math.random() - 0.5);
    }

    // On n'oublie pas bien sûr de vérifier si jamais on a trouvé la recette
    if (liste_des_recettes_restantes.includes(recette_aleatoire)) {
      // Pour être bien sûr qu'on soit aléatoire,
      // on décide à pile ou face si on s'arrête ou pas
      const pile = Math.random() < 0.5;
      const face = !pile;

      // Pile, on arrête
      ca_matche = pile;

      // Face, on repart à zéro
      if (face) {
        recette_aleatoire = "";
      }
    }
  }

  return recette_aleatoire;
}

const qu_est_ce_qu_on_mange = choisi_une_recette_aleatoire_de_mardi_gras(les_specialites_regionales_de_mardi_gras);
console.log(qu_est_ce_qu_on_mange);
louismarslen commented 2 years ago

Salut salut,

Malheureusement tu n'as pas gagné l'édition 9 de MOVAICODE (c'est S4lem qui gagne : #186) 😭 Toutefois nous t'invitons fortement à participer à l'édition 10 qui vient d'être lancée : le README est ici

Merci pour ta prestation 🤘