Shifumi avec fonction
Résolu
Nael11
-
Naell11 -
Naell11 -
Bonjour, je suis débutant en python et je suis en train d'essayer de faire un pierre feuille ciseau en utilisant des fonctions. Malheureusement lorsque j'exécute le code, il n'y a qu'en cas de victoire qu'un texte s'affiche. J'aimerai comprendre d'où viens le problème.
Merci d'avance.
Voici le code en question :
Merci d'avance.
Voici le code en question :
from random import randint
score_joueur = 0
score_ordi = 0
def joueur_pierre(choix_joueur, choix_ordi):
if choix_joueur == 1:
if choix_ordi == 3:
global score_joueur
score_joueur = score_joueur + 1
print("Joueur : pierre", "Ordi : ciseau", "Victoire")
if choix_joueur == 1:
if choix_ordi == 2:
global score_ordi
score_ordi = score_ordi + 1
print("Joueur : pierre", "Ordi : feuille", "Defaite")
if choix_joueur == 1:
if choix_ordi == 1:
print("Joueur : pierre", "Ordi : pierre", "Egalite")
def joueur_feuille(choix_joueur, choix_ordi):
if choix_joueur == 2:
if choix_ordi == 1:
global score_joueur
score_joueur = score_joueur + 1
print("Joueur : feuille", "Ordi : pierre", "Victoire")
if choix_joueur == 2:
if choix_ordi == 3:
global score_ordi
score_ordi = score_ordi + 1
print("Joueur : feuille", "Ordi : ciseau", "Defaite")
if choix_joueur == 1:
if choix_ordi == 1:
print("Joueur : feuille", "Ordi : feuille", "Egalite")
def joueur_ciseau(choix_joueur, choix_ordi):
if choix_joueur == 3:
if choix_ordi == 2:
global score_joueur
score_joueur = score_joueur + 1
print("Joueur : ciseau", "Ordi : feuille", "Victoire")
if choix_joueur == 3:
if choix_ordi == 1:
global score_ordi
score_ordi = score_ordi + 1
print("Joueur : ciseau", "Ordi : pierre", "Defaite")
if choix_joueur == 1:
if choix_ordi == 1:
print("Joueur : ciseau", "Ordi : ciseau", "Egalite")
def manche(nombre):
if score_joueur < nombre:
if score_ordi < nombre:
choix_joueur = int(input())
choix_ordi = randint(1, 3)
if choix_joueur == 1:
joueur_pierre(choix_joueur, choix_ordi)
if choix_joueur == 2:
joueur_feuille(choix_joueur, choix_ordi)
if choix_joueur == 3:
joueur_ciseau(choix_joueur, choix_ordi)
print(score_joueur, score_ordi)
global a
manche(a)
print("Combien de manche ?")
a = int(input())
manche(a)
2 réponses
-
Bonjour,
Déjà il faut que sur chaque saisie tu mettes un texte explicatif donca = int(input("Combien de manches ? ")) et choix_joueur = int(input("Votre jeu : pierre=1, feuille=2, ciseaux=3 ? "))
Puis ton code n'est pas logique, si le joueur choisit 1, donc joueur_pierre(), pourquoi retester qu'il a pris 1 dans la fonction. D'ailleurs sur 2 et 3 en fin tu testes 1 :-/
Puis pour faire une boucle, plutot dans manche() en fin rappeler la fonction elle même, il faudrait utiliser une boucle commewhile score_joueur < nombre and score_ordi < nombre:
-