Comment faire un jeu de quiz en Python (avec des images)

Table des matières:

Comment faire un jeu de quiz en Python (avec des images)
Comment faire un jeu de quiz en Python (avec des images)

Vidéo: Comment faire un jeu de quiz en Python (avec des images)

Vidéo: Comment faire un jeu de quiz en Python (avec des images)
Vidéo: Python : Créer un compte à rebours (Tkinter/Time) facilement !!! 2024, Peut
Anonim

Si vous voulez apprendre Python, il est bon de commencer par quelques jeux simples basés sur du texte. Cet article va vous montrer comment créer un jeu de quiz.

Pas

947361 1
947361 1

Étape 1. Installez Python si vous ne l'avez pas déjà fait

Il existe deux versions principales de Python: Python 2 et Python 3. Ils ne sont pas interchangeables et la prise en charge de Python 2 prendra fin en 2020, cet article suppose donc que vous installez Python 3.

947361 2
947361 2

Étape 2. Ouvrez un nouveau fichier dans un éditeur de texte ou votre IDE Python

Donnez-lui un nom descriptif qui se termine par.py.

947361 3
947361 3

Étape 3. Importez la bibliothèque aléatoire

Vous en aurez besoin pour ranger au hasard les réponses possibles.

947361 4
947361 4

Étape 4. Définissez une classe "QA"

Un « QA » consistera en une question et une réponse correcte, ainsi qu'une liste d'autres réponses possibles. La fonction _init_() sera appelée chaque fois que vous créerez un nouvel objet QA avec la fonction QA(), ses arguments étant transmis à l'attribut correspondant. Taper:

classe QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers

947361 5
947361 5

Étape 5. Créez une liste d'AQ

Pensez à certaines questions avec une bonne et des mauvaises réponses. Créez des objets QA à partir de chacun et placez-les dans une liste. Comme la liste sera assez longue, vous pouvez la diviser sur plusieurs lignes pour une meilleure lisibilité. Tout cela est fait avec le code suivant (votre texte pourrait être différent):

qaList = [QA("Où est Minsk ?", "en Biélorussie", ["en Russie", "une telle ville n'existe pas"]), QA("Quelle est la capitale de l'Australie ?", "Canberra", ["Sydney", "New York", "L'Australie n'existe pas"]), QA("Lequel des éléments suivants n'est pas sur Terre ?", "Sea of Tranquility", ["Mediterranean Sea", "Baltic Sea ", "Mer du Nord"]), QA("Lequel des pays suivants n'est pas un continent ?", "Arctique", ["Antarctique", "Amérique"]), QA("Lequel des pays suivants n'est pas un pays africain ?", "Malaisie", ["Madagascar", "Djibouti", "Afrique du Sud", "Zimbabwe"])]

947361 6
947361 6

Étape 6. Ajoutez une variable qui compte le nombre de réponses correctes

Mettez-le à zéro au début. Ajoutez la ligne:

corrCount = 0

947361 7
947361 7

Étape 7. Mélangez la liste QA

Cela fera apparaître vos questions dans un ordre aléatoire. Cela se fait avec la fonction suivante:

aléatoire.shuffle(qaList)

947361 8
947361 8

Étape 8. Faites une boucle

Le programme doit parcourir chaque élément de la liste et en faire quelque chose. Créez une telle boucle avec cette expression:

pour qaItem dans qaList:

947361 9
947361 9

Étape 9. Sortez chaque question

Après l'expression de boucle, écrivez la ligne:

print(qaItem.question)

947361 10
947361 10

Étape 10. Sortez toutes les réponses possibles

Ils doivent apparaître dans un ordre aléatoire afin que la bonne réponse ne soit pas toujours à la même position. En outre, ils doivent être précédés d'un numéro afin que l'utilisateur n'ait pas à saisir à nouveau la réponse complète. Le code suivant fait ceci:

print("Les réponses possibles sont:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # les crochets transforment la bonne réponse en liste pour la concaténation avec une autre liste random.shuffle(possible) count = 0 # les index de liste commencent à 0 en python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1

947361 11
947361 11

Étape 11. Prenez l'entrée de l'utilisateur

D'abord, dites à l'utilisateur qu'il doit entrer le numéro de son. Ensuite, vérifiez si ce que l'utilisateur a entré est vraiment un nombre qui correspond à une réponse. Si ce n'est pas le cas, répétez-le à l'utilisateur. Utilisez ce code (en dehors de la boucle while que vous avez créée pour la sortie):

print("Veuillez saisir le numéro de votre réponse:") userAnsw = input() sans userAnsw.isdigit(): print("Ce n'était pas un nombre. Veuillez saisir le numéro de votre réponse:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(possible)): print("Ce numéro ne correspond à aucune réponse. Veuillez saisir le numéro de votre réponse:") userAnsw = input()

947361 12
947361 12

Étape 12. Vérifiez si la réponse de l'utilisateur était correcte

Pour ce faire, récupérez le texte de la réponse pour laquelle l'utilisateur a entré un nombre et comparez-le avec le texte de la bonne réponse. S'ils sont identiques, la réponse de l'utilisateur est correcte et la variable corrCount doit être augmentée de 1. Sinon, c'est faux et l'utilisateur doit être informé de la bonne réponse. Enfin, imprimez une ligne vide pour ajouter de l'espace à la question suivante. Saisissez le code suivant:

si possible[userAnsw-1] == qaItem.corrAnsw: print("Votre réponse était correcte.") corrCount += 1 else: print("Votre réponse était fausse.") print("La bonne réponse était: " + qaItem. corrAnsw) print("")

947361 13
947361 13

Étape 13. Sortez une conclusion

En fin de compte, l'utilisateur veut probablement savoir à combien de questions il a répondu. Alors dites-leur en ajoutant l'expression suivante en dehors de la boucle for:

print("Vous avez répondu " + str(corrCount) + " de " + str(len(qaList)) + " questions correctement.")

947361 14
947361 14

Étape 14. Vérifiez votre code

Portez une attention particulière à l'indentation. Votre code complet devrait ressembler à ceci maintenant:

importer la classe aléatoire QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA("Où est Minsk?", "en Biélorussie", ["en Russie", "une telle ville n'existe pas"]), QA("Quelle est la capitale de l'Australie ?", "Canberra", ["Sydney", "New York", "L'Australie n'existe pas"]), QA("Lequel des éléments suivants n'est pas sur Terre ?", "Mer de la tranquillité", ["Mer Méditerranée", "Mer Baltique", "Mer du Nord"]), QA("Lequel des éléments suivants n'est pas un continent ?", "Arctica", ["Antarctica", "America"]), QA("Lequel des pays suivants n'est pas un pays africain?", "Malaysia", ["Madagascar", "Djibouti", "South Africa", "Zimbabwe"])] corrCount = 0 random.shuffle(qaList) pour qaItem dans qaList: print(qaItem.question) print("Les réponses possibles sont:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # les crochets transforment la bonne réponse en liste pour la concaténation avec une autre liste random.shuffle(possible) count = 0 # les index de liste commencent à 0 i n python while count < len(possible): print(str(count+1) + ": " + possible[count]) count += 1 print("Veuillez saisir le numéro de votre réponse:") userAnsw = input() sans userAnsw.isdigit(): print("Ce n'était pas un nombre. Veuillez saisir le numéro de votre réponse:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(possible)): print("Ce numéro ne correspond à aucune réponse. Veuillez entrer le numéro de votre réponse:") userAnsw = input() si possible[userAnsw-1] == qaItem.corrAnsw: print("Votre réponse était correcte.") corrCount += 1 else: print("Votre réponse était faux.") print("La bonne réponse était: " + qaItem.corrAnsw) print("") print("Vous avez répondu " + str(corrCount) + " de " + str(len(qaList)) + " questions correctement. ")

947361 15
947361 15

Étape 15. Exécutez le code

Si vous utilisez un IDE, cliquez sur le symbole ou l'élément de menu « Exécuter ». Si vous utilisez un éditeur de texte, enregistrez votre programme, fermez l'éditeur et ouvrez votre programme avec Python.

Des astuces

  • Attention à l'indentation correcte. Le code à l'intérieur d'une définition de fonction ou de classe est en retrait, tout comme le code à l'intérieur d'une boucle. Un programme Python avec une indentation incorrecte ne fonctionnera pas.
  • Appuyez sur Ctrl+C si vous souhaitez interrompre le jeu et ne pas le terminer.
  • Si vous remplacez chaque appel de input() par un appel de raw_input(), ce programme fonctionnera en Python 2, mais cessera de fonctionner en Python 3.

Conseillé: