Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul en chaîne de caractère

    21 janvier 2018 à 21:16:40

    Bonjour,

    Si je mets un poste et parce que, je crée actuellement un jeu et je crée une petite application relier à mon jeu qui va permettre au joueur de calculer leur statistique de personnage en fonction de l'équipement actuel du joueur, mais mon problème c'est que je n'arrive pas à trouver comment faire pour transformer une chaîne de caractères en calcule.

    ex: "49+25*988/58-88"

    j'aimerais que ça me renvoie le résultat de l'opération écrite par le joueur, j'ai déjà regardé avec le Split, mais je trouve uniquement pour couper une chaîne de caractères, mais là ne suis pas ce que je veux.

    PS: J'aimerais qu'en même temps de me donner une réponse l'on m'explique pourquoi du comment, car j'aimerais avoir ma réponse mais savoir pour plus tard ce qu'elle faite :p

    Merci de votre compréhension.

    • Partager sur Facebook
    • Partager sur Twitter

    Warren Dereclenne, 24 ans libre comme l'air #GTO

      21 janvier 2018 à 21:24:22

      Salut !

      Ceci devrait faire l'affaire :

      Dim calcul As String = "Ton calcule"
      Dim result = New DataTable().Compute(calcule , Nothing)


      Si calcul = "49+25*988/58-88"

      result vaudra 386,862068965517

      Je ne pense pas avoir besoin d'expliquer, puisqu'il n'y a qu'une ligne de code... Mais si tu veux savoir comment ça fonctionne, n'hésite pas à le demander.

      -
      Edité par vanaur 21 janvier 2018 à 21:28:43

      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        21 janvier 2018 à 22:21:30

        Salut, je te dire merci, malgré que c'était du VB, je les modifier pour que il me convienne en C#

                    Console.WriteLine("Donner moi votre calcule");
                    string calcul = Console.ReadLine();
                    var result = new DataTable().Compute(calcul, null);
        
                    Console.WriteLine(result);
        
                    Console.ReadKey();


        J'ai juste un deuxième petit problème c'est que si je fait (50+50*2), le résultat me donne 150, car il va calculer d'abord la multiplication puis l'addition, moi j'aimerais que le calcul se passe dans l'ordre que le joueur aura donner ::p

        -
        Edité par Warren-Dereclenne 21 janvier 2018 à 22:43:36

        • Partager sur Facebook
        • Partager sur Twitter

        Warren Dereclenne, 24 ans libre comme l'air #GTO

          21 janvier 2018 à 22:57:01

          Warren-Dereclenne a écrit:

          J'ai juste un deuxième petit problème c'est que si je fait (50+50*2), le résultat me donne 150, car il va calculer d'abord la multiplication puis l'addition, moi j'aimerais que le calcul se passe dans l'ordre que le joueur aura donner ::p


          ben fait (50+50)*2

          La fonction compute n'est pas faite pour s'abaisser au niveau mathématique de l’utilisateur!

          -
          Edité par breizhbugs 21 janvier 2018 à 22:58:11

          • Partager sur Facebook
          • Partager sur Twitter
          ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
            21 janvier 2018 à 23:18:11

            Oui mais le truck c'est que j'aimerais que le joueur est juste à faire 50 + 50 * 2

            -
            Edité par Warren-Dereclenne 21 janvier 2018 à 23:21:11

            • Partager sur Facebook
            • Partager sur Twitter

            Warren Dereclenne, 24 ans libre comme l'air #GTO

              22 janvier 2018 à 0:01:22

              programme le truc pour que le joueur fasse 50+50 <Entrer> tu fais le calcul et tu reutilises le resultat en string pour concatener "*2" éventuellement mais sinon, on ne vas pas changer les règles de priorité mathématique pour tes "joueurs" hein^^

              Sinon, au lieu d'utiliser database.compute, ben tu écris ta propre "calculatrice"...

              -
              Edité par breizhbugs 22 janvier 2018 à 0:02:45

              • Partager sur Facebook
              • Partager sur Twitter
              ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **
                22 janvier 2018 à 8:42:38

                «Solution» bancale mais fonctionnelle ; tu comptes le nombre de nombres dans ta chaîne, tu mets autant de parenthèse ouvrante en début, et une fermante après chaque nombre.

                -
                Edité par Sehnsucht 22 janvier 2018 à 15:24:07

                • Partager sur Facebook
                • Partager sur Twitter
                Censément, quelqu'un de sensé est censé s'exprimer sensément.
                  22 janvier 2018 à 19:03:51

                  Warren-Dereclenne a écrit:

                  Oui mais le truck c'est que j'aimerais que le joueur est juste à faire 50 + 50 * 2


                  Mais si tu crées un jeu, pourquoi ne pas rendre ce système automatique, cela résoudra le problème ? Et personnellement, si c'est moi qui devais faire toutes les statistiques par rapport à mon stuff, ... Ce serait un peu long à la fin, et ce système tel qu'il est énoncé n'aurait plus d’intérêt.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                    23 janvier 2018 à 4:09:45

                    Oui bien sûr tu as raison, mais certaine préfère avoir un calculateur avant de placer leur skill ou choisir quelles équipement prendre ect... autre afin de connaître la meilleur possibilité et optimisation de leur perssonage :p

                    Je compte déjà faire les 2 systèmes, mais je bloque justement sur le System du calcul, car j'utilise unity3D pour crée mon jeux, et le problème c'est que j'apprend en autodidacte pour le moment car je vais intégrer le cesi début septembre pour commencer mon bac+2 en analyste programmeur. Donc le problème c'est que pour le moment je connait pas toute les bases du c# pur :p

                    Car malgré que unity3D soit du c# il on leur propre framework, couplant avec celui de .Net, mais je connait pas assez sur le .Net d'ou ma question si l'on pouvais m'aider à faire se bous de script et m'éxpliquer le system par des commentaires :p

                    Merci de votre compréhension :p

                    -
                    Edité par Warren-Dereclenne 23 janvier 2018 à 4:13:09

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Warren Dereclenne, 24 ans libre comme l'air #GTO

                      23 janvier 2018 à 7:23:32

                      C'est pas vraiment une question de framework ou de «langage pur» surtout, mais un problème d'algorithmie ; et pour ça j'ai souvent tendance à suggérer le combo papier/crayon (+ gomme éventuellement)
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Censément, quelqu'un de sensé est censé s'exprimer sensément.
                        23 janvier 2018 à 17:00:50

                        Si ça peut t'aider, j'ai trouvé ceci.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                        Calcul en chaîne de caractère

                        × 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