Partage
  • Partager sur Facebook
  • Partager sur Twitter

Math Random Unique

    21 novembre 2017 à 17:24:40

    Bonjour, 

    Je recherche à faire un Math random pour un jeu de carte mais je ne veux pas que les cartes ce répète,

    Est-il possible de faire cela en js ?

    J'avais pensé à Slice()

    Mais étant très limité en JS je me demande si c'est le bon choix si quelqu'un aurait des idée, des fonctions ? 

    Merci d'avance 

    Excellente soirée

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      21 novembre 2017 à 18:10:09

      Qu'entends-tu par "je ne veux pas que les cartes ce répète" ?

      -
      Edité par Anonyme 26 novembre 2017 à 16:32:59

      • Partager sur Facebook
      • Partager sur Twitter
        21 novembre 2017 à 20:25:49

        Hello.
        Je suppose que tu as un tableau/array/liste dans lequel sont stockées toutes tes cartes, et tu cherches à piocher de facon aleatoire des cartes, mais sans bien sur piocher deux fois la même carte ?

        Il te suffit de definir un index aleatoire d'un des elements de ta liste, puis de le retirer


        var packet = ["carte 1","carte 2","carte 3"];
        while( packet.length ) { // tant qu'il y a des cartes dans le packet var index = Math.floor( Math.random()*packet.length ); // on en choisit une aleatoirement console.log( packet[index] ); // on affiche la carte dans la console packet.splice( index, 1 ); // puis on la retire du packet }

        -
        Edité par Fenix92 21 novembre 2017 à 20:29:30

        • Partager sur Facebook
        • Partager sur Twitter
          23 novembre 2017 à 18:22:36

          Fenix92 a écrit:

          Hello.
          Je suppose que tu as un tableau/array/liste dans lequel sont stockées toutes tes cartes, et tu cherches à piocher de facon aleatoire des cartes, mais sans bien sur piocher deux fois la même carte ?

          Il te suffit de definir un index aleatoire d'un des elements de ta liste, puis de le retirer


          var packet = ["carte 1","carte 2","carte 3"];
          while( packet.length ) { // tant qu'il y a des cartes dans le packet var index = Math.floor( Math.random()*packet.length ); // on en choisit une aleatoirement console.log( packet[index] ); // on affiche la carte dans la console packet.splice( index, 1 ); // puis on la retire du packet }


          -
          Edité par Fenix92 21 novembre 2017 à 20:29:30

          Non je n'ai aucun Array ou quoi que sois si tu veux je cherche à afficher un nombre X de phrase mais je ne veux pas qu'elle se répète je peux très bien les afficher directement dans la fonction ? 

           Que tu ma gentillement montrer ci dessus :)

          Merci à toi 

          • Partager sur Facebook
          • Partager sur Twitter
            24 novembre 2017 à 9:35:00

            Salut, tu peux utiliser Random.shuffle pour mélanger un jeu déjà en place

            import random
            cartes = []
            for i in ["carreau","trèfle","pique","coeur"]:
                for j in "1 2 3 4 5 6 7 8 9 10 valet reine roi".split(" "):
                    cartes.append(i+" "+j)
            
            print("cartes avant : ",cartes)
            random.shuffle(cartes)#mélange les cartes
            print("cartes après : ",cartes)

            Après, tu n'as plus qu'à prendre la première carte du paquet à chaque fois, sachant que la carte sera unique tant que tu la supprime du paquet.

            • Partager sur Facebook
            • Partager sur Twitter
              24 novembre 2017 à 13:33:26

              @Kalioz : tu es dans le forum JS là. google me dit que c'est du python que t'as écris là

              -
              Edité par LCaba 24 novembre 2017 à 13:34:06

              • Partager sur Facebook
              • Partager sur Twitter
                30 novembre 2017 à 23:47:04

                Antoine_C a écrit:

                Non je n'ai aucun Array ou quoi que sois si tu veux je cherche à afficher un nombre X de phrase mais je ne veux pas qu'elle se répète je peux très bien les afficher directement dans la fonction ? 

                 Que tu ma gentillement montrer ci dessus :)

                Merci à toi 


                Oui oui, bien sur :)
                Les cartes doivent etre dans un tableau/array. c'est le meilleur moyen de les stocker. Et pour les afficher directement dans la fonction, oui, en fait ma fonction "console.log( packet[index] );" affiche la carte dans la console, mais rien ne t'empeche de l'afficher ailleurs
                • Partager sur Facebook
                • Partager sur Twitter

                Math Random Unique

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown