Skip to main content

Oefenexamen uitgewerkt

✅ VOLLEDIG UITGEWERKT AVONTURENSPEL (met uitleg in comments)



# We importeren de random module
# Deze hebben we nodig om willekeurige schade, geld en kansen te genereren
import random

print("Welkom bij het Avonturenspel!")

# Introductie van het verhaal
print("Je bent een avonturier op zoek naar een verborgen schat.")
print("Je begint je reis in een donker bos.")

# ==============================
# Variabelen
# ==============================

# Hoeveel geld de speler heeft
geld = 0

# Hoeveel schatten de speler heeft gevonden
schatten = 0

# De speler begint met een zwaard
zwaard = True

# De speler begint met een magische toverstok
toverstok = True

# Het aantal levenspunten van de speler
leven = 100


# ==============================
# Functie voor een gevecht
# ==============================

def vecht_tegen_monster():
    # We gebruiken de globale variabele 'leven'
    # zodat we deze binnen de functie kunnen aanpassen
    global leven

    # Het monster begint met 50 levenspunten
    monster_leven = 50

    # Deze loop blijft draaien zolang het monster nog leeft
    while monster_leven > 0:

        # De speler kiest wat hij wil doen
        keuze = input("Wat wil je doen? (vecht, vlucht) ")

        # Als de speler kiest om te vechten
        if keuze == "vecht":

            # Controleer of de speler een zwaard heeft
            if zwaard:

                # Bepaal willekeurige schade tussen 10 en 20
                schade = random.randint(10, 20)

                # Trek de schade af van het monster
                monster_leven -= schade

                # Toon hoeveel schade is gedaan
                print("Je veroorzaakt " + str(schade) + " schade aan het monster.")

                # Controleer of het monster verslagen is
                if monster_leven <= 0:
                    print("Je hebt het monster verslagen!")
                    return True

            else:
                # Geen zwaard = niet kunnen vechten
                print("Je hebt geen zwaard om tegen het monster te vechten.")
                return False

        # Als de speler probeert te vluchten
        elif keuze == "vlucht":

            # 50% kans om te ontsnappen
            kans = random.randint(1, 2)

            if kans == 1:
                print("Je ontsnapt aan het monster.")
                return False
            else:
                print("Je kon niet ontsnappen.")

                # Monster doet schade aan de speler
                schade = random.randint(5, 10)
                leven -= schade

                print("Het monster veroorzaakt " + str(schade) + " schade aan jou.")

                # Controleer of de speler dood is
                if leven <= 0:
                    print("Je bent overleden.")
                    return False

        # Als de invoer ongeldig is
        else:
            print("Ongeldige keuze, probeer het opnieuw.")


# ==============================
# Hoofdloop van het spel
# ==============================

while True:

    # Als het leven 0 of lager is, stopt het spel
    if leven <= 0:
        print("Je bent overleden.")
        break

    # De speler kiest een actie
    keuze = input(
        "Wat wil je doen? (ga verder, zoek schat, check inventory, vecht tegen een monster, gebruik magische voorwerp) "
    )

    # Speler gaat verder door het bos
    if keuze == "ga verder":
        print("Je gaat verder door het bos.")

    # Speler zoekt een schat
    elif keuze == "zoek schat":
        print("Je begint te zoeken naar een schat.")
        schatten += 1
        print("Je hebt nu " + str(schatten) + " schatten gevonden.")

    # Speler checkt zijn inventory
    elif keuze == "check inventory":
        print(
            "Je hebt "
            + str(geld)
            + " geld, "
            + str(schatten)
            + " schatten, "
            + str(zwaard)
            + " zwaard, "
            + str(toverstok)
            + " toverstok."
        )

    # Speler vecht tegen een monster
    elif keuze == "vecht tegen een monster":
        if vecht_tegen_monster():
            geld += random.randint(10, 50)
            print("Je hebt " + str(geld) + " geld verdiend door het monster te verslaan.")

    # Speler gebruikt een magisch voorwerp
    elif keuze == "gebruik magische voorwerp":
        if toverstok:
            leven += random.randint(10, 30)
            print(
                "Je hebt je levensenergie opgevuld met de toverstok. "
                "Je huidige levensenergie is " + str(leven) + "."
            )
        else:
            print("Je hebt geen toverstok in je inventory.")

    # Alle andere invoer is ongeldig
    else:
        print("Ongeldige keuze, probeer het opnieuw.")

# Einde van het spel
print("Bedankt voor het spelen van het Avonturenspel!")


🧠 Wat zijn de belangrijkste ingevulde punten? (examenuitleg)

Punt Ingevuld Waarom
import … import random Nodig voor willekeur
……… = True toverstok = True Nodig voor magisch voorwerp
"………… " "vecht" Keuze in gevecht
monster_leven … <= 0 Controleren of monster dood is
print(... schade ...) str(schade) Getal naar tekst
………. bij dood break Spel stoppen
elif … == "check inventory" elif keuze == Correcte variabele
Laatste ……: else: Ongeldige invoer