Probleme programme pierre feuille ciseaux
Résolu
Torivak
-
Torivak -
Torivak -
Bonjour, j'ai quelque probleme avec mon programme de pierre feuille ciseaux,
la consol me donne que la derniere ligne ou egalité, mais ne me donne pas les print("l'ordinateur a gagné") ou print("le joueur....") j'ai du mal a comprendre ( aucune erreur detacter dans la syntaxe)
from random import * joueur = int(input("choisissez pierre = 1, feuille = 2 ou ciseaux = 3")) pierre = 1 feuille = 2 ciseaux = 3 n = 0 b = 0 if joueur == 1: result_joueur = "pierre" elif joueur == 2: result_joueur = "feuille" elif joueur == 3: result_joueur = "ciseaux" list = [] a = randint(1,3) if a == 1: result = "pierre" elif a == 2: result = "feuille" elif a == 3: result = "ciseaux" if result == result_joueur: print("égalité") if result == 1 and result_joueur == 2: print("le joueur a gagné") n+1 if result == 1 and result_joueur == 3: print("L'ordinateur a gagné") b+1 if result == 2 and result_joueur == 1: print("L'ordinateur a gagné") b+1 if result == 2 and result_joueur == 3: print("Le joueur a gagné") n+1 if result == 3 and result_joueur == 1: print("le joueur a gagné") n + 1 if result == 3 and result_joueur == 2: print("L'ordinateur a gagné") print(result, result_joueur)
la consol me donne que la derniere ligne ou egalité, mais ne me donne pas les print("l'ordinateur a gagné") ou print("le joueur....") j'ai du mal a comprendre ( aucune erreur detacter dans la syntaxe)
Configuration: Windows / Chrome 71.0.3578.98
A voir également:
- Pierre papier ciseaux python
- Presse papier - Guide
- Télécharger outil capture d'écran ciseaux - Télécharger - Capture d'écran
- Presse-papier - Guide
- Citizen code python avis - Accueil - Outils
- Pierre eclat pokemon platine ✓ - Forum Jeux vidéo
3 réponses
Bonjour.
On pourrait simplifier ce travail en procédant par soustraction de valeurs, admettons que nous affections 1 pour pierre, 2 pour papier, 3 pour ciseaux.
Puis procédons par soustraction de la valeur joueur par celle de l'adversaire pour voir ce que ça peut donner.
mains gagnantes
pierre vs ciseaux -> 1 - 3 -> -2
papier vs pierre -> 2 - 1 -> 1
ciseaux vs papier -> 3 - 2 -> 1
mains perdantes
pierre vs papier -> 1 - 2 >> -1
papier vs ciseaux -> 2 - 3 >> -1
ciseaux vs pierre -> 3 - 1 >> 2
On peut s'apercevoir qu'on obtient seulement 2 valeurs pour chaque mains gagantes/perdantes. Il devient alors très facile de condenser et simplifier le programme.
On pourrait simplifier ce travail en procédant par soustraction de valeurs, admettons que nous affections 1 pour pierre, 2 pour papier, 3 pour ciseaux.
libelles = {1:'pierre', 2:'papier', 3:'ciseaux'}
Puis procédons par soustraction de la valeur joueur par celle de l'adversaire pour voir ce que ça peut donner.
mains gagnantes
pierre vs ciseaux -> 1 - 3 -> -2
papier vs pierre -> 2 - 1 -> 1
ciseaux vs papier -> 3 - 2 -> 1
mains perdantes
pierre vs papier -> 1 - 2 >> -1
papier vs ciseaux -> 2 - 3 >> -1
ciseaux vs pierre -> 3 - 1 >> 2
On peut s'apercevoir qu'on obtient seulement 2 valeurs pour chaque mains gagantes/perdantes. Il devient alors très facile de condenser et simplifier le programme.
import random libelles = {1:'pierre', 2:'papier', 3:'ciseaux'} choix_joueur = int(input('choisissez pierre = 1, feuille = 2 ou ciseaux = 3 :')) choix_ordi = random.choice(list(libelles)) resultat = choix_joueur - choix_ordi if not resultat: # 0 message = 'égalité !' elif resultat in (1, -2): message = 'gagné !' else: message = 'perdu !' print('vous avez joué %s' % libelles[choix_joueur]) print('ordinateur joue %s' % libelles[choix_ordi]) print(message)