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! P> Qu'est-ce que je fais mal ici? p> p>
5 Réponses :
Vous utilisez Python de sa mode inattendue. Vous écrivez un programme de procédure dans un langage de programmation orienté objet. P>
Créer un 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. P> dict code> 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). P>
Merci beaucoup, Jaba. Je suis très nouveau à Python.
J'ai mis en œuvre cela dans ma réponse, cela devrait vous aider.
Vous pouvez consolider la condition IF dans la boucle tandis que ci-dessous: Cependant, je vous encourage à approcher lentement un codage optimisé dans Python une fois que vous avez terminé avec elle. P > Heureux apprentissage! p> p>
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 code> code> 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 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. p> si des questions == Réponse code> 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.
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> ou séparément comme: p> 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
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(")