Shi Fu Mi

hellgeek Messages postés 2 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 11 septembre 2012 - 5 juin 2012 à 17:34
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 17 oct. 2022 à 11:25
Bonjour à tous,
je débute tout juste avec Python et j'ai un problème en codant un petit shifumi


pfc=""
import random
def tirage_ordi :
    rep = random.randint (1, 3)

    if rep == 1 :
        print ("pierre")
    elif rep == 2 :
        print ("feuille")
    else :
        print ("ciseaux")

    if pfc == rep :
        print ("égalité")
    else :
        if pfc==1 and rep==3 :
            print ("Vous avez gagné(e)")
        else :
            if pfc==2 and rep==1:
                print ("Vous avez gagné(e)")
            else :
                if pfc 3 and rep 2:
                    print ("Vous avez gagné(e)")
                else :
                    print ("Vous avez perdu(e)")

while 1:

    while pfc!="pierre" or pfc!="feuille" or pfc!="ciseaux" :
        print ("Pierre, feuille, ou ciseaux?")
            

        pfc = input()

        if pfc == "pierre" :
            pfc = 1
        else :
            if pfc == "feuille" :
                pfc = 2
            else :
                if pfc == "ciseaux" :
                    pfc = 3
                else :
                    print ("try again")



Sur la troisième ligne,le ":" n'est pas considéré comme valable et je ne comprend pas pourquoi.
Merci d'avance pour votre aide, et n'hésitez pas à me conseiller si j'ai fais d'autres erreurs.

2 réponses

taz_iup Messages postés 179 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 21 mai 2014 3
25 juin 2012 à 14:55
Tu dois également dire quels arguments prend ta fonction.

exemple sans arguments:

def tirage_ordi( ):



exemple avec arguments:
def tirage_ordi( a, b ):
0
tu peux également mettre juste des variables a (correspondant à ce que le joueur 1 joue ) et b ( correspondant à se que le joueur 2 joue) ensuite tu pourra créer deux listes vide qui correspondent au score de chacun pour finalement créer une boucle while qui ne s'arretera que lorsque la liste n°1 ou n°2 atteindra le score 3
je sais que ça change beaucoup en final ton programme mais ça a l'avantage de le rappetisser énormement et de pouvoir comptabiliser les scores des deux joueurs.
0
bravo \o/
0

c'est loin d'être bon ton codage n'a aucun sens il ne peut pas être exécuté comme il faut car les boucles ne prennent rien en compte ce  qui fait que ton codage ne peut pas être lancé. mais tu vas y arriver trql tu geres 

0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
17 oct. 2022 à 11:25

BONJOUR  si si la politesse c'est toujours une bonne idée.

Et encore plus quand on reveille une discussion qui dort gentiment depuis 10 ans.....

0
Rejoignez-nous