Quiz-Spill

Skip to content

Vanskelighetsgrad: Medium

Lag et quiz-spill som spør spørsmål med svaralternativer, så skal brukeren svare på spørsmålene.

Svaralternativene kan for eksempel være (A/B/C/D), eller noe annet dersom det passer.

Hvis spilleren svarer rett skal de få ett poeng. Tell opp scoren etterhvert og gi ut resultatet til slutt!

Litt om hvordan dette kan gjøres

Dictionaries

For å holde styr på spørsmålene i Python kan det være lurt å bruke et “Dictionary”. Du kan lese om dictionaries her på w3schools.

En dictionary er en datastruktur (Wikipedia) som kan inneholde forskjellige elementer.

Start-kode for spørsmål (du kan copy-paste)
questions = [
    {
        "question": "Hva heter hovedstaden i Norge?",
        "answers": ["A. Bergen", "B. Oslo", "C. Trondheim", "D. Stavanger"],
        "correct_answer": "B"
    },
    {
        "question": "Hvor høyt er Mt. Everest?",
        "answers": ["A. 2469m", "B. 9330m", "C. 8848m", "D. 5895m"],
        "correct_answer": "C"
    },
    {
        "question": "Hvilken planet er kjent som 'den røde planeten'?",
        "answers": ["A. Venus", "B. Mars", "C. Jupiter", "D. Platoon"],
        "correct_answer": "B"
    },
    {
        # neste spørsmål
    },
    # flere spørsmål nedover...
]

Bruk deretter en for-loop som henter ut verdier fra denne.

En annen måte å gjøre det på

Eventuelt kan du bruke range her for å hente ut spørsmålene:

for i in range(len(questions)):
    current_question = questions[i]

[0], slik betyr at du henter ut aller første element, altså, første spørsmål. Deretter kan du bruke current_question["question"] for å hente ut en bestemt verdi.

Variabelen brukes for å holde styr på hvilket spørsmål vi er på.


Dette skal du ha med:

  • ✅ La det være minst 7 spørsmål i listen.
    • Her kan det jo være kjekt å lage en quiz som handler om et spesifikt tema.
  • ✅ Bruk en variabel for å holde styr på score.
  • ✅ Bruk en for-loop til å gå igjennom listen med spørsmål.
  • ❗ Gjerne skriv ut om svaret var rett eller galt når brukeren svarer!
  • ✅ Når spillet er ferdig skal du skrive ut hvilken score spilleren fikk.
Tips til framgangsmåte
  • Du må bruke input() for å hente ut fra brukeren.
    • Hint: sammenlign dette med correct_answer
  • Øk score med 1 etter at du har sjekket om svaret er rett.

Ekstra!

  • Gjør at spørsmålene kommer i tilfeldig rekkefølge hver gang du spiller!
Hint:

Dette kan du gjøre på følgende måte:

import random
random.shuffle(questions)
  • Endre på score-utskriften slik at den skriver ut på følgende måte:
    • Du fikk 5 / 7 poeng!
    • Hint: Her må du bruke len(questions) for å finne ut hvor mange spørsmål som finnes.
  • Kanskje også legg til en måte å gi en fin melding dersom du fikk over en viss mengde poeng!

Ekstra tilfeldig - Vanskelig!

  • Dersom du vil, så kan du også gjøre det slik at svaralternativene også kommer i tilfeldig rekkefølge.
    • Her må du automatisere måten du skriver ut svar-alternativene på.
    • I stedet for å “hard-code” A, B, C også videre kan dette automatiseres!
  • Endre på koden din til å bruke funksjoner for å gjøre koden ryddigere!
Eksempler på funksjoner:
  • print_question(question)
    • printer spørsmålet og svaralternativene
  • check_valid_answer(question, user_answer)
    • returner True eller False her basert på om det er gyldig.
    • denne funksjonen kan eventuelt inkludere logikken for å la spilleren svare på nytt dersom svaret er ugyldig.
  • check_correct_answer(question, user_answer)
    • returner True eller False her basert på om svaret er rett eller ikke.
  • Fiks programmet slik at det ikke krasjer dersom du skriver inn et ugyldig svar, altså at det ikke er A, B, C, D.
  • La brukeren svare på nytt dersom dette skjer.
  • Endre på “dictionary”-et til å inkludere et felt som har en forklaring over hvorfor svaret er rett.
  • Skriv dette ut når brukeren svarer feil.
  • 💾 Endre på koden til å lese ut spørsmålene til quizzen fra en “.json”-fil.
  • Lag flere quizzer ved å bruke flere “.json”-filer, én for hver quiz.
    • Dette kan du la spilleren velge når spillet startes!

✏️🔥 Make your own quiz! - Vanskelig!

  • Lag en modus i programmet ditt der du kan lage en egen quiz.
  • ✅ Denne quizzen kan du deretter lagre til en “.json”-fil.
  • Endre på valg-koden til å automagisk (🧙‍♂️) hente ut alle quizzene som eksisterer i en mappe.
    • For dette kan du lage endre JSON-en til en dictionary som har et “quiz_name” felt på toppen av quizzen. Dette skrives ut når spilleren skal velge hvilken quiz som skal spilles.