Programmation jeu de carte

Résolu/Fermé
AnaisArnoo Messages postés 4 Date d'inscription mardi 13 mars 2018 Statut Membre Dernière intervention 8 mai 2018 - 14 mars 2018 à 10:10
 AnaisArnoo - 19 mars 2018 à 00:24
Bonjour je suis une élève de terminale et j’ai pour projet d’isn le jeu du uno en programmation Python. Cependant je ne visualise pas comment faire pour que la carte du talon change, je m’explique, si c’est un joker il faut en piocher une nouvelle afin de pouvoir commencer le jeu. Pouvez vous m’aider à donner cette condition à la première carte du talon car cela bloque mon jeu pour le moment. Merci d’avance pour votre aide

1 réponse

Utilisateur anonyme
14 mars 2018 à 12:59
Tout dépend de ta manière de voir les choses. Tu peux insérer le code que tu as déjà réalisé pour que nous ayons une idée de ta pensée. Pour cela, utilise le bouton <> dans le menu d'édition de message puis choisit Python. Enfin colle ton code entre les balises.

Une idée serait de différencier les cartes normales des jokers par une simple variable : estJoker (qui vaut vrai ou faux selon la carte). Si la première carte piochée pour le début du jeu est un joker (estJoker == true) alors remettre la carte dans le packet, mélanger et refaire.
0
AnaisArnoo Messages postés 4 Date d'inscription mardi 13 mars 2018 Statut Membre Dernière intervention 8 mai 2018
14 mars 2018 à 14:22
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from random import shuffle


def initialisation():

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","sto
pV","stopV","9V","+4","+4","invB","6V","5V","5V","9B","8B","8B","1V","1V","0V","4B","4B","3B","st
opJ","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","+2R","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())
talon=[cartes.pop()]
return cartes,carte_joueur_1,carte_joueur_2,talon


def coup_possible (carte_jouee):
if carte_jouee[1]==talon[-1][1] or carte_jouee[0]==talon[-1][0]:
talon.append(carte_jouee)
carte_joueur_1.remove(carte_jouee)


print("tu peux jouer")
else:
print("tu peux pas")
# Distribution des cartes
cartes,carte_joueur_1,carte_joueur_2,talon = initialisation()
print(talon)
print(carte_joueur_1)
carte_jouee = input("Que jouez-vous ?")
coup_possible(carte_jouee)

Voici mon code, c’est un prototype afin d’en comprendre comment marchera le vrai code mais je pense que vous comprendrez vers où je souhaite aller, merci pour votre réponse
0
Utilisateur anonyme
15 mars 2018 à 11:43
Tu stockes le résultat de cartes.pop() dans une variable. Tu test cette variable pour savoir si :
- la longueur de la chaine vaut 2 exactement
- le signe + n'est pas dans la chaine
Si c'est le cas, alors le talon est valide donc tu peux l'ajoute dans le tableau talon. Sinon, tu ajoutes la carte dans son packet, tu mélanges et tu recommences.
0
D’accord merci beaucoup j’ai réussi à résoudre mon problème
0