Mélange de liste

Bonsoir,

Je suis en première avec la spécialité NSI et je dois rendre un projet dans pas très longtemps. Le problème est que je n'arrive pas à écrire une fonction. Voici la question : écrire une fonction melange(jeu) qui renvoie la liste mélangée du jeu de carte. Pourriez-vous m'aider ? merci d'avance.

Voici ce que j'ai commencé à faire (je sais pas comment on partage du code exactement):

import random

couleur=['pique','coeur','carreau','trèfle']

print("les couleurs sont : ",couleur)

valeurs=['As','2','3','4','5','6','7','8','9','10','j','q','k']

print("les valeurs sont : ",valeurs)

def creer_jeu():
return [(x,y) for x in valeurs for y in couleur]

carte = creer_jeu()

print("création d'un jeu de cartes : ",carte)

def melange(jeu):
jeu = []
random.shuffle(jeu)
return jeu

4 réponses

  1. 2 points
    • Écrire une fonction distribue (jeu, n) qui distribue équitablement les cartes du jeu aux n joueurs

    Cela veut dire que le nombre de joueurs est connu avant cette fonction.
    Donc tu n’as pas à le demander dans la fonction.
    • dans la vraie vie, comment se passe une distribution? Si besoin réfléchis pour 2 joueurs, 3, 4 et généralise pour n?

    0
    1. Contributeur
      Bonsoir Jean,

      Vous y étiez presque et j'ai saisi l'opportunité de me plier à l'exercice.

      En fait, dans la fonction, c'est carte qu'il faut soumettre à shuffle et non jeu, et là, ca fonctionne, pour moi.

      def melange(carte):
          random.shuffle(carte)
          return carte
      melange(carte)
      print()
      print("mélange: ",carte)


      J'ai dû faire une erreur dans la déclaration du langage. Désolé Whismeril. Je ferai mieux la prochaine fois.
      0
      1. ben georges t'as merdouillé avec les balises ;)
        0
      2. Contributeur
        @Utilisateur anonymeEh oui, c'est la première fois que je m'en sers. C'est la honte, je vois d'ici le fou rire de Jean. Je vais m'entrainer. A bientôt.
        0
      3. @georges97si tu les tapes à la main, il faut finir par </code>

        sinon, tu lis le tuto que j'ai donné plus haut.
        Je corrige ton message aussi
        0
      4. Contributeur
        @Utilisateur anonymeMerci, effectivement, j'ai appelé <code>, puis "corrigé" .

        Bonne nuit.
        0
      5. Bonsoir;
        Merci beaucoup pour l'aide !
        Maintenant cela fait 3-4 jours que je suis bloqué à la question suivante qui est:

        "Écrire une fonction distribue (jeu, n) qui distribue équitablement les cartes du jeu aux n joueurs et renvoie la liste pot des cartes restante non distribuées, éventuellement vide."

        Pourriez-vous m'aider encore une dernière fois s'il vous plaît, je suis vraiment perdue..

        import random
        
        couleur=['pique','coeur','carreau','trèfle']
        
        print("les couleurs sont : ",couleur)
        
        valeurs=['As','2','3','4','5','6','7','8','9','10','j','q','k']
        
        print("les valeurs sont : ",valeurs)
        
        def creer_jeu():
            return [(x,y) for x in valeurs for y in couleur]
        
        carte = creer_jeu()
        
        print("création d'un jeu de cartes : ",carte)
        
        def melange(carte):
            random.shuffle(carte)
            return carte
            melange(carte)
            print()
        
        def distribue(jeu,n):
            Njoueur = int(input("choisir un nombre de joueurs"))
        0
    2. import random
      
      couleur=['pique','coeur','carreau','trèfle']
      
      print("les couleurs sont : ",couleur)
      
      valeurs=['As','2','3','4','5','6','7','8','9','10','j','q','k']
      
      print("les valeurs sont : ",valeurs)
      
      def creer_jeu():
          return [(x,y) for x in valeurs for y in couleur]
      
      carte = creer_jeu()
      
      print("création d'un jeu de cartes : ",carte)
      
      def melange(jeu):
          jeu = []
          random.shuffle(jeu)
          return jeu
      
      0
      1. Merci je ne savais pas
        0
      2. @JeanL'idée étant quand même de conserver l'indentation, quand tu copies colles depuis le site, ça n'est plus indenté....
        Bon je corrige ton second post
        0