Eigenes Projekt · Station 3 von 10

Pat's Quiz

Ein Quiz-Programm mit Fenster: Allgemeinwissen, Python, Englisch, Vokabeln und Abkürzungen, mit Highscore.

Pat's Quiz

Ziel

Aus den Python-Grundlagen ein richtiges Programm mit Oberfläche bauen.

Umsetzung

  • Oberfläche mit tkinter und einem eigenen Farbschema (ttk-Theme).
  • Fragen und Ergebnisse liegen in einer SQLite-Datenbank und in CSV-Dateien.
  • Klassen für die Fenster, die Zufallsauswahl der Fragen und die Bestenliste.

Code

Eine Frage mit zwei falschen Antworten ziehen

functions.py
def random_generate(library):
    if library == 1:
        dictionary = open_base()
    elif library == 2:
        dictionary = open_python()
    elif library == 3:
        dictionary = open_english()

    data_count = len(dictionary)
    data_count -= 1

    rnd = randint(0, data_count)
    rnd_w1 = randint(0, data_count)
    rnd_w2 = randint(0, data_count)

    for i in dictionary[f"id{rnd}"]:
        term = (i['term'])
        definition = (i['definition'])
        if library == 2:
            beginner_explanation = (i['beginner_explanation'])
        else:
            beginner_explanation = None

    wrong1 = dictionary[f"id{rnd_w1}"][-1]['definition']
    wrong2 = dictionary[f"id{rnd_w2}"][-1]['definition']

    answers = [definition, wrong1, wrong2]
    shuffle(answers)

    right_answer = definition

    return term, definition, answers, beginner_explanation, right_answer

Die richtige Antwort wird mit zwei zufälligen falschen gemischt.

Was ich gelernt habe

Programme in Klassen und Dateien aufzuteilen. Die Oberfläche hat dabei mehr Arbeit gemacht als die Logik dahinter.

Es ist ein unerwarteter Fehler aufgetreten. Neu laden 🗙

Verbindung wird wiederhergestellt …

Verbindung fehlgeschlagen. Nächster Versuch in Sekunden.

Verbindung fehlgeschlagen. Bitte erneut versuchen oder die Seite neu laden.

Die Sitzung wurde vom Server pausiert.

Die Sitzung konnte nicht fortgesetzt werden. Bitte erneut versuchen oder die Seite neu laden.