-1
votes

Python: Comment puis-je obtenir cela pour comprendre l'entrée?

J'essaie de créer un jeu de trivia espagnol, mais j'ai du mal à obtenir les questions au hasard pour accepter les réponses comme des réponses à cette question. Comme il s'agit actuellement, le code se retrouve simplement recycler la question jusqu'à la question jusqu'à ce que les trois devises aient été faites. Toute assistance serait grandement appréciée.

merci! xxx

Qu'est-ce que je fais mal ici?


0 commentaires

5 Réponses :


0
votes

Vous utilisez Python de sa mode inattendue. Vous écrivez un programme de procédure dans un langage de programmation orienté objet.

ma suggestion:

Créer un dict de toutes les questions et réponses, utilisez une boucle pour continuer à poser des questions une boucle et arrêtez-vous lorsque toutes les questions sont épuisées ou à boucle et randomisent toutes les questions. De cette façon, vous n'aurez besoin que d'une seule condition (pour vérifier s'ils avaient raison).

Pour l'ordinateur, faites un nombre aléatoire de 0 au nombre de questions que l'ordinateur n'a pas besoin de répondre à toutes les questions que cela doit simplement être au hasard ou mal.


2 commentaires

Merci beaucoup, Jaba. Je suis très nouveau à Python.


J'ai mis en œuvre cela dans ma réponse, cela devrait vous aider.



0
votes

Vous pouvez consolider la condition IF dans la boucle tandis que ci-dessous: xxx

Cependant, je vous encourage à approcher lentement un codage optimisé dans Python une fois que vous avez terminé avec elle.

Heureux apprentissage!


0 commentaires

0
votes

Il existe des erreurs critiques dans la logique de votre programme. Étant donné que le code s'exécute de haut en bas, la variable ne sera générée qu'une fois, elle continuera donc à poser la même question. De plus, la réponse n'est jamais correctement vérifiée. Vous utilisez si des questions == Réponse qui ne sera jamais vraie car la question n'est pas la même que la réponse. De plus, cette ligne sera exécutée avant que l'utilisateur ne puisse entrer sa propre réponse.

Voici un échantillon pour vous mettre sur la bonne voie. Je vous laisserai savoir comment prévenir les questions en double et toutes les autres fonctionnalités que vous avez voulues. xxx


0 commentaires

0
votes

Le code ne vérifie jamais la réponse. Il ne détermine donc pas exactement l'exactitude.

Lorsque vous avez une grande liste de données telles que ceci, il est généralement judicieux d'envisager de la mettre dans une liste (ou de le charger d'un fichier ). P>

ci-dessous J'ai fait les questions une liste de jeux de questions-réponses. Cela peut être référencé comme: p> xxx pré>

ou séparément comme: p> xxx pré>

Ceci donne un code plus simple. Lors de la vérification de la réponse, il est toujours plus facile pour l'utilisateur si l'ordinateur prend soin de ne pas vérifier l'excès d'espaces ou la capitalisation des mots. Ceci peut être géré avec la chaîne Python Strip () code> et inférieur () code> dans la comparaison. P>

from random import randint

starting_line = 0
Comp_startingline = 0
finish_line = 100

guess_count = 0
limit_of_guesses = 3

player_1 = 0

player1 = randint(1,10)
computer = randint(1,10)
question_number = randint(1,10)

question_text = [
              [ "Hola, como estas, Carlos?", "Hello, how are you, Carlos?" ],
              [ "Me llamo, Mateo!", "My name is Matthew!" ],
              [ "Que rabia!", "What rage!" ],
              [ "Amigo!", "Friend!" ],
              [ "Me nombre es.", "You are correct!" ],
              [ "Le gusta?", "Do you like him?" ],
              [ "Soy escritor", "I am a writer." ],
              [ "Me gusta musica!", "I like music!" ],
              [ "Que estado?", "What state?" ],
              [ "De donde eres?", "Where are you from?" ]
            ]

while starting_line != finish_line:
    player_1_progress = starting_line + player1
    Computer_progress = computer + Comp_startingline
    print(question_text[question_number][0])
    if guess_count < limit_of_guesses:
        answer = input("What did the phrase say? ")
        if (answer.strip().lower() == question_text[question_number][1].strip().lower()):
            print("Correct")
            question_number = randint(1,10)
        else:
            guess_count += 1
    else:
        print("Wah, wah, wahhh! Better luck next time!")
        break


0 commentaires

0
votes

Votre code est fondamentalement faux, vous devriez essayer quelque chose comme ceci:

# The questions that will come up in racing
phrases = {
    "Hola, como estas, Carlos?": "Hello, how are you, Carlos?",
    "Me llamo, Mateo!": "My name is Matthew!",
    "Que rabia!": "What rage!",
    "Amigo!": "Friend!",
    "Me nombre es.": "My name is.",
    "Le gusta?": "Do you like him?",
    "Soy escritor": "I am a writer.",
    "Me gusta musica!": "I like music!",
    "Que estado?": "What state?",
    "De donde eres?": "Where are you from?"
}

for phrase, answer in phrases.items():
    while not input(f"What does that mean:\n{phrase}\n> ") == answer:
        print("Wrong answer try again ! :o(")


0 commentaires