Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un équivalent au GOTO en python ?

    18 novembre 2019 à 20:14:54

    Bonsoir;

    J'aimerais pouvoir revenir à une ligne précédente pour mon programme python. Malgré plusieurs recherches, je n'ai rien trouvé qui pourrait correspondre à mes attentes. Il faut noter aussi que je suis sous EduPython conformément aux demandes de mon prof du lycée. 

    from random import *
    
    
    
    def choix_utilisateur():
        joueur = input ("~ JEU DU PIERRE - FEUILLE - CISEAUX ~\nQue veux tu jouer ?\nPierre ?\nFeuille ?\nCiseaux ?")
        while joueur not in ("Pierre,Feuille,Ciseaux"):
            joueur = input ("Tu as sûrement mal orthografié ton choix !\nQue veux tu jouer ?\nPierre ?\nFeuille ?\nCiseaux ?")
        return (joueur)
    
    def choix_ordi():
        n = randint(1,3)
        if n == 1:
            ordi = ("L'ordinateur a choisi Pierre")
        elif n == 2:
            ordi = ("L'ordinateur a choisi Feuille")
        elif n == 3:
            ordi = ("L'ordinateur a choisi Ciseaux")
        return (ordi)
    
    Ton_score = 0
    Score_ordinateur = 0
    a = choix_utilisateur()
    b = choix_ordi()
    print (b)
    
    if a == ("Pierre") and b == ("L'ordinateur a choisi Pierre"):
        print("Égalité !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    elif a == ("Pierre") and b == ("L'ordinateur a choisi Feuille"):
        print("Tu as perdu :'(")
        Score_ordinateur = Score_ordinateur + 1
        print("Score de l'ordinateur = ",Score_ordinateur)
        print("Ton score =",Ton_score)
    elif a == ("Pierre") and b == ("L'ordinateur a choisi Ciseaux"):
        Ton_score = Ton_score + 1
        print("Tu as gagné !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    if a == ("Feuille") and b == ("L'ordinateur a choisi Pierre"):
        Ton_score = Ton_score + 1
        print("Tu as gagné !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    elif a == ("Feuille") and b == ("L'ordinateur a choisi Feuille"):
        print("Égalité !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    elif a == ("Feuille") and b == ("L'ordinateur a choisi Ciseaux"):
        print("Tu as perdu :'(")
        Score_ordinateur = Score_ordinateur + 1
        print("Score de l'ordinateur = ",Score_ordinateur)
        print("Ton score =",Ton_score)
    if a == ("Ciseaux") and b == ("L'ordinateur a choisi Pierre"):
        print("Tu as perdu :'(")
        Score_ordinateur = Score_ordinateur + 1
        print("Score de l'ordinateur = ",Score_ordinateur)
        print("Ton score =",Ton_score)
    elif a == ("Ciseaux") and b == ("L'ordinateur a choisi Feuille"):
        Ton_score = Ton_score + 1
        print("Tu as gagné !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    elif a == ("Ciseaux") and b == ("L'ordinateur a choisi Ciseaux"):
        print("Égalité !")
        print("Ton score =",Ton_score)
        print("Score de l'ordinateur = ",Score_ordinateur)
    
    def finjeu():
        joueur = input ("Veux-tu continuer a jouer ?\nÉcrire Oui ou Non :")
        while joueur not in ("Oui,Non"):
            joueur = input ("Veux-tu continuer a jouer ?\nN'oublie pas les majuscules !\nÉcrire Oui ou Non :")
        return(joueur)
    
    c = finjeu()
    
    if c == ("Oui"):
      
    elif c == ("Non"):
        print("Ton score = ",Ton_score,"Score de l'ordinateur = ",Score_ordinateur,"Au revoir !")
    
    
    
    

    Pensez vous qu'il serait possible de definir un goto ?

    Par exemple def goto(): ..... ?

    Le but serait de revenir a la demande du choix pierre feuille ou ciseaux après avoir demandé si le joueur souhaitais continuer à jouer

    -
    Edité par ArthurTrouillet2 18 novembre 2019 à 20:16:56

    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2019 à 20:39:48

      Bonjour. Le goto c'est mal. C'est un choix délibéré de ne pas en mettre en Python. Si tu as besoin d'un goto, c'est que tu as mal conçu ton programme.
      • Partager sur Facebook
      • Partager sur Twitter

      typage structurel ftw

        18 novembre 2019 à 20:42:10

        digammaF a écrit:

        Bonjour. Le goto c'est mal. C'est un choix délibéré de ne pas en mettre en Python. Si tu as besoin d'un goto, c'est que tu as mal conçu ton programme.


        Malheureusement, je ne vois pas d'autres alternatives a moins de copier coller l'intégralité du programme indéfiniment...
        • Partager sur Facebook
        • Partager sur Twitter
          18 novembre 2019 à 20:45:30

          La boucle While ? Peut-être que tu ne connais pas encore cet aspect du langage, mais il est impératif de te renseigner un petit peu si c'est le cas : https://mathsp.tuxfamily.org/spip.php?article228

          • Partager sur Facebook
          • Partager sur Twitter

          typage structurel ftw

            18 novembre 2019 à 21:04:42

            digammaF a écrit:

            La boucle While ? Peut-être que tu ne connais pas encore cet aspect du langage, mais il est impératif de te renseigner un petit peu si c'est le cas : https://mathsp.tuxfamily.org/spip.php?article228

            J'ai essayé a plusieurs reprises d'utiliser la boucle While en vain ... saurait-tu comment l’intégrer a mon programme ?
            • Partager sur Facebook
            • Partager sur Twitter
              18 novembre 2019 à 21:07:41

              Il te faut une structure du type :

              continue_game = True
              player_loose = False
              
              while continue_game:
                  game()
                  if player_loose:
                      continue_game = False



              • Partager sur Facebook
              • Partager sur Twitter

              typage structurel ftw

                18 novembre 2019 à 21:10:09

                digammaF a écrit:

                Il te faut une structure du type :

                continue_game = True
                player_loose = False
                
                while continue_game:
                    game()
                    if player_loose:
                        continue_game = False
                Encore désolé de t’embêter, je n'arrive vraiment pas a le mettre dans mon programme, que des essais infructueux... aurais-tu une solution alternative ou pourrait tu intégrer une boucle à mon programme ?

                -
                Edité par ArthurTrouillet2 18 novembre 2019 à 21:23:02

                • Partager sur Facebook
                • Partager sur Twitter
                  18 novembre 2019 à 23:00:47

                  Voici un exemple de ce type d'usage de while dans un jeu intercatif :

                  from random import randrange
                  
                  print("Jeu du 42")
                  print("===========\n")
                  
                  jouer=True
                  
                  while jouer:
                      n=input("Choisis un entier entre 1 et 100 :\n")
                  
                      if n=="42":
                          print("Bravo !")
                          rep=input("veux-tu rejouer (o/n) ?\n")
                          jouer=rep=="o"
                              
                      else:
                          print("Essaye encore !")



                  Pas de fonction, à toi d'adapter à ton code.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Un équivalent au GOTO en python ?

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown