Mon programme ne fonctionne pas correctement !

Multi73 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -  
Multi73 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Mon programme pierre feuille ciseaux ne fonctionne pas correctement !
Mon programme :

import random
point_pc = 0
point_joueur = 0
def egalite():
    print("Aucun point n'est attribué !")

def point_pc():
    print("Point attribué à l'ordinateur")
    point_pc = point_pc + 1


def point_joueur():
    print("Point attribué au joueur")
    point_joueur = point_joueur + 1


liste = ["pierre", "feuille", "ciseaux"]
reponse_choisie = random.choice(liste)


reponse_joueur = input("Choisi entre: pierre ou feuille ou ciseaux")

bonne_reponse = print(reponse_choisie)


if reponse_joueur == bonne_reponse or reponse_joueur == bonne_reponse or reponse_joueur == bonne_reponse:
    egalite()

if reponse_joueur == "pierre" and bonne_reponse == "ciseaux" or reponse_joueur == "feuille" and bonne_reponse == "pierre" or reponse_joueur == "ciseaux" and bonne_reponse == "feuille":
    point_joueur()

if bonne_reponse == "pierre" and reponse_joueur == "ciseaux" or bonne_reponse == "feuille" and reponse_joueur == "pierre" or bonne_reponse == "ciseaux" and reponse_joueur == "feuille":
    point_pc()

else:
    print("Erreur !")

if point_pc == 10:
    print("Vous avez perdu !")

if point_joueur == 10:
    print("Vous avez ganez")


Pouvez vous me dire les points qui fait cela ?
Merci
Bonne soirée

4 réponses

Utilisateur anonyme
 
Bonjour

Mon programme pierre feuille ciseaux ne fonctionne pas correctement

ça ne nous permet pas d'essayer de t'aider.

Est ce
  • qu'il plante? Si oui, il faut poster le message d'erreur
  • qu'il ne fait pas ce que tu veux, dans ce cas, décrit ce que tu voudrais et ce qui se passe
  • autre, décrit

0
jee pee Messages postés 41519 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Bonjour,

Il manque une chose fondamentale à ton programme, une boucle, là tu ne peux saisir qu'un seul choix du joueur et c'est fini. Par exemple utiliser while ....

Ton else n'est lié qu'au dernier if, alors qu'il faudrait tous les chainer avec des elif.

Quand tu utilises and et or sur un if, il faut des parenthèses pour ordonner les tests

Ne pas donner un même nom à une variable et une fonction : point_pc et point_pc()

Il faut être plus causant pour savoir où on en est avec des prints, je me suis passé des fonctions, à toi de les rajouter si tu veux, j'ai rajouté un max, car 10 tours c'est très long ;-)

import random
point_pc = 0
point_joueur = 0
victoire = 3
print("Bienvenu au jeu pierre feuille ciseaux")

while point_pc < victoire and point_joueur < victoire:
   liste = ["pierre", "feuille", "ciseaux"]
   reponse_pc = random.choice(liste)

   reponse_joueur = input("Choisir entre: pierre ou feuille ou ciseaux ")

   print("Le pc a choisi",reponse_pc)

   if reponse_joueur == reponse_pc:
      print("Aucun point n'est attribué !")

   elif (reponse_joueur == "pierre" and reponse_pc == "ciseaux") or (reponse_joueur == "feuille" and reponse_pc == "pierre") or (reponse_joueur == "ciseaux" and reponse_pc == "feuille"):
     print("Point attribué au joueur")
     point_joueur = point_joueur + 1

   elif (reponse_pc == "pierre" and reponse_joueur == "ciseaux") or (reponse_pc == "feuille" and reponse_joueur == "pierre") or (reponse_pc == "ciseaux" and reponse_joueur == "feuille"):
     print("Point attribué à l'ordinateur")
     point_pc = point_pc + 1

   else:
      print("Erreur !")
   print("Score joueur/pc",point_joueur,"/",point_pc)

if point_pc == victoire:
   print("Vous avez perdu !")

if point_joueur == victoire:
   print("Vous avez gagné")


0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

A tout hasard, un algo qui évite tout un tas de if ...elif.... :

precedences = ['feuillepierre', 'pierreciseaux', 'ciseauxfeuille']

if(choix_joueur == choix_machine):
    print('Match nul')
else:
    jeu, jeu_inverse = choix_joueur+choix_machine, choix_machine+choix_joueur
    for p in precedences:
        if(p == jeu):
            print('Joueur gagne !')
            points_joueur += 1
        elif(p == jeu_inverse):
            print('Ordi gagne !')
            points_machine += 1
0
Multi73 Messages postés 88 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup !

0