Programmation jeu de carte

[Résolu/Fermé]
Signaler
Messages postés
4
Date d'inscription
mardi 13 mars 2018
Statut
Membre
Dernière intervention
8 mai 2018
-
 AnaisArnoo -
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
A voir également:

1 réponse


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.
Messages postés
4
Date d'inscription
mardi 13 mars 2018
Statut
Membre
Dernière intervention
8 mai 2018

#!/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
Utilisateur anonyme
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.
D’accord merci beaucoup j’ai réussi à résoudre mon problème