Mélange de liste

Fermé
Jean - 17 nov. 2021 à 21:45
 Utilisateur anonyme - 21 nov. 2021 à 21:16
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
A voir également:

4 réponses

Utilisateur anonyme
17 nov. 2021 à 21:59
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
0
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
Merci je ne savais pas
0
Utilisateur anonyme > Jean
17 nov. 2021 à 23:07
L'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
georges97 Messages postés 13115 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 19 février 2025 2 494
Modifié le 17 nov. 2021 à 23:12
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
Utilisateur anonyme
Modifié le 17 nov. 2021 à 23:11
ben georges t'as merdouillé avec les balises ;)
0
georges97 Messages postés 13115 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 19 février 2025 2 494 > Utilisateur anonyme
17 nov. 2021 à 23:09
Eh 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
Utilisateur anonyme > georges97 Messages postés 13115 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 19 février 2025
17 nov. 2021 à 23:12
si 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
georges97 Messages postés 13115 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 19 février 2025 2 494 > Utilisateur anonyme
18 nov. 2021 à 00:53
Merci, effectivement, j'ai appelé <code>, puis "corrigé" .

Bonne nuit.
0
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
Utilisateur anonyme
21 nov. 2021 à 21:16
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