Jeu de UNO sur python

[Fermé]
Signaler
-
Messages postés
16858
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 septembre 2021
-
Bonjour, je m'appelle Arnold et je suis en terminale s spécial ISN, je dois rendre un projet de programmation pour mai. J'ai choisi de programmer un jeu de Uno sur python cependant j'ai déjà quelques problèmes. Sur le programme ci dessous, j'ai créer ma liste de cartes et j'ai voulu créer la liste des cartes des 2 joueurs, puis une carte aléatoire est choisie pour commencer la talon. Est ce que le code est bon pour le moment ? J'ai voulu en utilisant la fonction pop enlever de la liste des cartes les cartes distribuées (est ce que utiliser une fonction random.choice suffit elle pour faire cela?). Aidez moi s'il vous plait ! Merci


from random import choice
from random import shuffle
def Distribution(mescartes,joueur): 
    carte= choice(mescartes) 
    joueur.append(carte) 
    mescartes.remove(carte) 
cartes=["+4","+4","invV","invV","+2V","+2V","9V","8V","8V","7V","7V","6V","4V","4V","3V","3V","2V","2V","4c","4c","invJ","invJ","+2J","+2J","9J","8J","8J","7J","7J","6J","4J","4J","3J","3J","2J","2J","stopV","stopV","9V","+4","+4","invB","6V","5V","5V","9B","8B","8B","1V","1V","0V","4B","4B","3B","stopJ","stopJ","9J","4c","4c","invR","6J","5J","5J","1J","1J","0J","9R","8R","8R","4R","4R","3R","invB","+2B","+2B","stopB","stopB","9B","7B","7B","6B","6B","5B","5B","3B","2B","2B","1B","1B","0B","invR","+2R","+2","stopR","stopR","9R","7R","7R","6R","6R","5R","5R","3R","2R","2R","1R","1R","0R"] 
shuffle(cartes)

carte_joueur_1 = [cartes.pop()] 
carte_joueur_2 = [cartes.pop()] 
for i in range (7): 
    Distribution(cartes, carte_joueur_1) 
    Distribution(cartes, carte_joueur_2) 
     
print(carte_joueur_1) 
print(carte_joueur_2) 
 
talon=[cartes.pop()] 
print(talon) 





2 réponses

Messages postés
16858
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 septembre 2021
900
bonjour,
moi, après avoir fait shuffle, je ne vois pas l’intérêt d'utiliser choice.
suggestion:
from random import shuffle
cartes=["+4","+4","invV","invV","+2V","+2V","9V","8V","8V","7V","7V","6V","4V","4V","3V","3V","2V","2V","4c","4c","invJ","invJ","+2J","+2J","9J","8J","8J","7J","7J","6J","4J","4J","3J","3J","2J","2J","stopV","stopV","9V","+4","+4","invB","6V","5V","5V","9B","8B","8B","1V","1V","0V","4B","4B","3B","stopJ","stopJ","9J","4c","4c","invR","6J","5J","5J","1J","1J","0J","9R","8R","8R","4R","4R","3R","invB","+2B","+2B","stopB","stopB","9B","7B","7B","6B","6B","5B","5B","3B","2B","2B","1B","1B","0B","invR","+2R","+2","stopR","stopR","9R","7R","7R","6R","6R","5R","5R","3R","2R","2R","1R","1R","0R"] 
shuffle(cartes)

carte_joueur_1=[]
carte_joueur_2=[]
for i in range (7): 
    carte_joueur_1.append(cartes.pop()) 
    carte_joueur_2.append(cartes.pop())  
     
print(carte_joueur_1) 
print(carte_joueur_2) 
 
talon=[cartes.pop()]
print(talon) 
print (cartes)

en faisant quelques exécutions, tu devrais facilement vérifier si tout se passe bien. qu'observes-tu?
Bonjour, j'ai testé votre suggestion elle marche super, c'est sur que c'est plus clair. Merci ! Ensuite, je ne sais pas par quoi commencer pour la suite du jeu, comment fait on pour créer le joueur "ordinateur" ?
Messages postés
16858
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 septembre 2021
900 > ArnoAnais
c'est un jeu à deux joueurs, et tu as chosi de faire un programme qui permet à un joueur de jouer contre l'ordinateur?
en qui consiste le jeu? c'est à partir de cette compréhension que tu vas faire ton programme.
Oui d'accord, mais par ou commencer ?
Messages postés
16858
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 septembre 2021
900 > ArnoAnais
en qui consiste le jeu? décris en les différentes étapes.
-Tout d’abord, un des joueurs distribue à chacun 7 cartes. Le reste des cartes fait office de pioche.
-Il doit recouvrir la carte de la pioche par une carte d’une même couleur, du même chiffre ou du même symbole (cartes spéciales +2, changement de sens, passe ton tour).
-Si le joueur ne peut pas jouer, il a la possibilité de poser une carte « joker » ou « +4′′.
-Dans le cas ou le joueur ne possède aucune de ces cartes, il doit en piocher une. -Si cette carte peut être jouée, il peut directement la poser, sinon il devra la conserver dans son jeu.
-Lorsque qu’un joueur n’a en plus qu’une carte en sa possession, il doit crier « Uno » pour avertir tous les autres joueurs.

https://www.regles-de-jeux.com/regle-du-uno/
Bah tu commence par créer deux tableaux un pour le joueur et un pour l'ordi, tu mets 7 cartes dans chacun, et vogue la galère...
C'est quoi un tableau ?... Je débute sur python
Messages postés
16858
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 septembre 2021
900 > ArnoAnais
je te suggère de d'abord apprendre python avec des exercices plus simples.