Wenn Sie Python lernen möchten, ist es gut, mit einigen einfachen textbasierten Spielen zu beginnen. In diesem Artikel erfahren Sie, wie Sie ein Quizspiel erstellen.
Schritte
Schritt 1. Installieren Sie Python, falls Sie dies noch nicht getan haben
Es gibt zwei Hauptversionen von Python: Python 2 und Python 3. Sie sind nicht austauschbar und die Unterstützung für Python 2 endet im Jahr 2020, daher wird in diesem Artikel davon ausgegangen, dass Sie Python 3 installieren.
Schritt 2. Öffnen Sie eine neue Datei in einem Texteditor oder Ihrer Python-IDE
Geben Sie ihm einen beschreibenden Namen, der mit.py endet.
Schritt 3. Importieren Sie die zufällige Bibliothek
Sie benötigen es, um die möglichen Antworten zufällig anzuordnen.
Schritt 4. Definieren Sie eine Klasse "QA"
Eine "QA" besteht aus einer Frage und einer richtigen Antwort sowie einer Liste möglicher anderer Antworten. Die Funktion _init_() wird immer dann aufgerufen, wenn Sie mit der Funktion QA() ein neues QS-Objekt erstellen, wobei deren Argumente an das entsprechende Attribut übergeben werden. Typ:
class QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = Question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers
Schritt 5. Erstellen Sie eine Liste von QAs
Denken Sie an einige Fragen mit einer richtigen und einigen falschen Antworten. Erstellen Sie aus jedem QS-Objekte und fügen Sie sie in eine Liste ein. Da die Liste ziemlich lang ist, können Sie sie zur besseren Lesbarkeit auf mehrere Zeilen aufteilen. All dies geschieht mit folgendem Code (Ihr Text könnte anders sein):
qaList = [QA("Wo liegt Minsk?", "in Weißrussland", ["in Russland", "so eine Stadt existiert nicht"]), QA("Was ist die Hauptstadt von Australien?", "Canberra", ["Sydney", "New York", "Australien existiert nicht"]), QA("Welche der folgenden gibt es nicht auf der Erde?", "Sea of Tranquility", ["Mittelmeer", "Ostsee ", "Nordsee"]), QA("Welcher der folgenden ist kein Kontinent?", "Arctica", ["Antarktis", "Amerika"]), QA("Welcher der folgenden ist kein afrikanisches Land ?", "Malaysia", ["Madagaskar", "Dschibuti", "Südafrika", "Simbabwe"])]
Schritt 6. Fügen Sie eine Variable hinzu, die zählt, wie viele Antworten richtig waren
Stellen Sie es am Anfang auf Null. Fügen Sie die Zeile hinzu:
corrCount = 0
Schritt 7. Mischen Sie die QA-Liste
Dadurch erscheinen Ihre Fragen in einer zufälligen Reihenfolge. Dies geschieht mit folgender Funktion:
random.shuffle (qaList)
Schritt 8. Machen Sie eine Schleife
Das Programm sollte jeden Punkt der Liste durchgehen und etwas damit machen. Erstellen Sie eine solche Schleife mit diesem Ausdruck:
für qaItem in qaList:
Schritt 9. Geben Sie jede Frage aus
Schreiben Sie nach dem Schleifenausdruck die Zeile:
print(qaItem.frage)
Schritt 10. Geben Sie alle möglichen Antworten aus
Sie sollten in zufälliger Reihenfolge erscheinen, damit sich die richtige Antwort nicht immer an derselben Position befindet. Außerdem sollte ihnen eine Zahl vorangestellt werden, damit der Benutzer nicht die gesamte Antwort erneut eingeben muss. Folgender Code macht dies:
print("Mögliche Antworten sind:") möglich = qaItem.otherAnsw + [qaItem.corrAnsw] # eckige Klammern verwandeln die richtige Antwort in eine Liste zur Verkettung mit anderen Listen random.shuffle(möglich) count = 0 # Listenindizes beginnen bei 0 in Python while count < len(möglich): print(str(count+1) + ": " + möglich[count]) count += 1
Schritt 11. Nehmen Sie die Eingaben des Benutzers entgegen
Sagen Sie dem Benutzer zuerst, dass er seine Nummer eingeben muss. Prüfen Sie dann, ob es sich bei der Eingabe des Benutzers wirklich um eine Zahl handelt, die einer Antwort entspricht. Wenn dies nicht der Fall ist, informieren Sie den Benutzer erneut. Verwenden Sie diesen Code (außerhalb der while-Schleife, die Sie für die Ausgabe erstellt haben):
print("Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input() while not userAnsw.isdigit(): print("Das war keine Zahl. Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(möglich)): print("Diese Zahl entspricht keiner Antwort. Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input()
Schritt 12. Überprüfen Sie, ob die Antwort des Benutzers richtig war
Rufen Sie dazu den Text der Antwort ab, für die der Benutzer eine Zahl eingegeben hat, und vergleichen Sie ihn mit dem Text der richtigen Antwort. Wenn sie gleich sind, war die Antwort des Benutzers richtig und die Variable corrCount sollte um 1 erhöht werden. Andernfalls ist sie falsch und dem Benutzer sollte die richtige Antwort mitgeteilt werden. Drucken Sie schließlich eine leere Zeile, um der nächsten Frage etwas Platz zu geben. Geben Sie den folgenden Code ein:
wenn möglich[userAnsw-1] == qaItem.corrAnsw: print("Ihre Antwort war richtig.") corrCount += 1 else: print("Ihre Antwort war falsch.") print("Richtige Antwort war: " + qaItem. corrAnsw) print("")
Schritt 13. Geben Sie eine Schlussfolgerung aus
Am Ende möchte der Benutzer wahrscheinlich wissen, wie viele Fragen er richtig beantwortet hat. Sagen Sie es ihnen, indem Sie den folgenden Ausdruck außerhalb der for-Schleife hinzufügen:
print("Sie haben " + str(corrCount) + " von " + str(len(qaList)) + " Fragen richtig beantwortet.")
Schritt 14. Überprüfen Sie Ihren Code
Achten Sie besonders auf die Einbuchtung. Ihr vollständiger Code sollte jetzt so aussehen:
import random class QA: def _init_(self, question, correctAnswer, otherAnswers): self.question = question self.corrAnsw = correctAnswer self.otherAnsw = otherAnswers qaList = [QA("Wo ist Minsk?", "in Weißrussland", ["in Russland", "so eine Stadt existiert nicht"]), QA("Was ist die Hauptstadt von Australien?", "Canberra", ["Sydney", "New York", "Australien existiert nicht"]), QA("Welches der folgenden ist nicht auf der Erde?", "Sea of Tranquility", ["Mittelmeer", "Ostsee", "Nordsee"]), QA("Welches der folgenden ist nicht ein Kontinent?", "Arctica", ["Antarktis", "America"]), QA("Welches der folgenden Länder ist kein afrikanisches Land?", "Malaysia", ["Madagascar", "Djibouti", "South Africa", "Simbabwe"])] corrCount = 0 random.shuffle(qaList) for qaItem in qaList: print(qaItem.question) print("Mögliche Antworten sind:") possible = qaItem.otherAnsw + [qaItem.corrAnsw] # eckige Klammern verwandeln die richtige Antwort in eine Liste zur Verkettung mit anderen Listen random.shuffle(möglich) count = 0 # Listenindizes beginnen bei 0 i n python while count < len(möglich): print(str(count+1) + ": " + possible[count]) count += 1 print("Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input() while not userAnsw.isdigit(): print("Das war keine Zahl. Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input() userAnsw = int(userAnsw) while not (userAnsw > 0 and userAnsw <= len(möglich)): print("Diese Zahl entspricht keiner Antwort. Bitte geben Sie die Nummer Ihrer Antwort ein:") userAnsw = input() falls möglich[userAnsw-1] == qaItem.corrAnsw: print("Ihre Antwort war richtig.") corrCount += 1 else: print("Ihre Antwort war falsch.") print("Die richtige Antwort war: " + qaItem.corrAnsw) print("") print("Sie haben " + str(corrCount) + " of " + str(len(qaList)) + " Fragen richtig beantwortet. ")
Schritt 15. Führen Sie den Code aus
Wenn Sie eine IDE verwenden, klicken Sie auf das Symbol "Ausführen" oder den Menüpunkt. Wenn Sie einen Texteditor verwenden, speichern Sie Ihr Programm, schließen Sie den Editor und öffnen Sie Ihr Programm mit Python.
Tipps
- Achten Sie auf die richtige Einrückung. Code in einer Funktions- oder Klassendefinition wird eingerückt, ebenso wie Code in einer Schleife. Ein Python-Programm mit falscher Einrückung funktioniert nicht.
- Drücken Sie Strg+C, wenn Sie das Spiel unterbrechen und nicht beenden möchten.
- Wenn Sie jeden Aufruf von input() durch einen Aufruf von raw_input() ersetzen, funktioniert dieses Programm in Python 2, hört jedoch auf, in Python 3 zu arbeiten.