Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme ne fonctionne pas comme prévu

Système combat RPG

Sujet résolu
    11 septembre 2020 à 19:58:39

    Bonjour, alors voilà,

    je me suis lancé dans la conception d'un RPG, très simpliste, pour un travail en Info. Je me heurte maintenant au système de combat.

    J'avais dans l'idée de proposer à l'utilisateur 2 choix qui influeront sur les "pv" d'un monstre choisi aléatoirement. De toute évidence il y a une erreur. Lorsque je lance mon programme il s'exécute sans erreur, selon Python, mais le choix est infini. J'ai l'impression que la fonction choix et la boucle des points de vie ne sont pas liés.

    Voici ce que j'ai fait :

    from random import *
    
    A = [1,2,3,4,5,6,7,8,9,10] #les différentes valeurs des points de vie
    A2 = choice(A) #choix aléatoires des points de vie
    b = 3 #force du joueur
    
    
    print (1,".Attaque simple - 2mp") #Choix attaque
    print (2,".Attaque forte - 4mp")
    
    def choix_utilisateur (): #Fonction choix
        joueur = input(1, 2)
        while joueur not in [1, 2]:
            joueur = input(1, 2)
            return(joueur)
    
    x = choix_utilisateur #Attaque
    
    G = (A2) #boucle du combat
    while G > 0:
        if x == 1:
            G2 = G-b
        elif x == 2:
            G2 = G-2*b
    else:
        print ("Victoire !")



    -
    Edité par S4varin 11 septembre 2020 à 20:15:54

    • Partager sur Facebook
    • Partager sur Twitter
      11 septembre 2020 à 20:03:36

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Besoin d'aide pour un programme)

      Liens conseillés

      -
      Edité par AbcAbc6 11 septembre 2020 à 20:04:25

      • Partager sur Facebook
      • Partager sur Twitter
        11 septembre 2020 à 20:58:23

        Mets un print(x), t'auras ta réponse, et les suivantes aussi.
        • Partager sur Facebook
        • Partager sur Twitter

        Python c'est bon, mangez-en. 

          11 septembre 2020 à 21:10:10

          Bonjour. Le résultat d'un input est toujours un str, or "1" != 1
          • Partager sur Facebook
          • Partager sur Twitter

          typage structurel ftw

            11 septembre 2020 à 22:00:02

            digammaF a écrit:

            Bonjour. Le résultat d'un input est toujours un str, or "1" != 1


            Y a pas que ça.
            • Partager sur Facebook
            • Partager sur Twitter

            Python c'est bon, mangez-en. 

              11 septembre 2020 à 22:53:05

              josmiley a écrit:

              digammaF a écrit:

              Bonjour. Le résultat d'un input est toujours un str, or "1" != 1


              Y a pas que ça.


              Bien vu, le problème de type est bien plus fort. Il faut dire que considérer une fonction en temps qu'objet ça peut demander des efforts au début.

              La boucle du combat me semble également problématique.

              • Partager sur Facebook
              • Partager sur Twitter

              typage structurel ftw

                12 septembre 2020 à 5:36:43

                digammaF a écrit:

                La boucle du combat me semble également problématique.


                Ha oui bien vu.

                J'avais pas été jusque là, toutes ces variables d'une lettre m'ayant achevé avant la fin.

                • Partager sur Facebook
                • Partager sur Twitter

                Python c'est bon, mangez-en. 

                  12 septembre 2020 à 14:23:13

                  La fonction choix_utilisateur n'est jamais appelée (regarde bien ta ligne 17). Si elle l'était, tu obtiendrais une erreur sur l'appel à input qui est erroné (la fonction ne prend qu'un argument).

                  Sans parler des autres erreurs et du fait que la boucle est effectivement infinie puisque la valeur de G ne change jamais.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 septembre 2020 à 16:52:23

                    Sans vouloir accabler OP, le choix des noms de variable est un peu catastrophique. Difficile de faire moins explicite.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Blond, bouclé, toujours le sourire aux lèvres...

                    Programme ne fonctionne pas comme prévu

                    × 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