Jeu de UNO sur python

Fermé
ArnoAnais - 10 mars 2018 à 15:40
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 - 11 mars 2018 à 17:19
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

yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 Ambassadeur 1 548
Modifié le 10 mars 2018 à 17:59
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?
0
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" ?
0
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 1 548 > ArnoAnais
Modifié le 11 mars 2018 à 16:26
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.
1
Oui d'accord, mais par ou commencer ?
0
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 1 548 > ArnoAnais
11 mars 2018 à 16:27
en qui consiste le jeu? décris en les différentes étapes.
0
-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.
0