Shifumi avec fonction
Résolu
Nael11
-
Naell11 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Naell11 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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)
A voir également:
- Shifumi avec fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
2 réponses
Bonjour,
Déjà il faut que sur chaque saisie tu mettes un texte explicatif donc
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 comme
Déjà il faut que sur chaque saisie tu mettes un texte explicatif donc
a = 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 comme
while score_joueur < nombre and score_ordi < nombre: