Tekst-Eventyr

Skip to content

Vanskelighetsgrad: Medium

I denne oppgaven skal du lage en interaktiv historie der du kan ta valg i visse situasjoner.

Start-kode eksempel (copy-paste)
location = "start" #variabel som holder styr på hvor du er

is_playing = True
is_game_won = False
# putt andre variabler for å holde styr på ting her

while is_playing:
    if location == "start":
        # her putter du logikken for "start"-location
        # her kan du for eksempel endre hvilken "location" du er på.
    elif location == "second_location":
        # her putter du logikk for noe annet
    # plasser flere locations nedover

# skriv ut noe når spillet er ferdig

Lag et enkelt spill som lar deg ta valg i denne historie. Spillet skal fungere som følger:

  • ✅ Ta i bruk en while-loop for å la spillet kjøre “uendelig”.
    • Spillet skal stoppe når is_playing blir satt til False.
  • if-setningene skal bestemme hva som skjer basert på hvor du er. Her er det bare å legge til så mange du trenger!
  • ✅ For å endre hvor du er endrer du bare på verdien i location variabelen.
  • ✅ For å holde styr på ting som skjer underveis, for eksempel om du har plukket opp et våpen eller noe slikt kan du ta i bruk boolean-variabler over while-loopen.

🎨 Etter dette er det bare å være kreativ på hvordan historien skal gå!

  • Hva er settingen i historien din?
  • Er det noen onde skapninger?
  • Skal du løse en “puzzle” 🧩?
  • Mange muligheter!

✅ Til slutt når spillet er slutt skal du gi ut en liten melding til spilleren!

Inspirasjon!

AI! 🫵🤓 -> 😬🤌

Ja, disse inspirasjons-bildene er dessverre AI-genererte (med vår lokale bilde-generator), vi er ikke kunstnere… 😬

Dette er hovedsaklig bare random bilder som kan gi dere noe inspirasjon. It’s the only way…

Cityscape
Et eventyr satt i en high-tech og mystisk by.
Planet
Et eventyr satt på en fremmed planet i en galakse langt langt av sted.
Forest
Et eventyr satt i en skummel, mørk og mystisk skog.
Detective
Et detektiv-eventyr satt i en gammel noir-style by.

Ekstra!

❔ Del 1 - Funksjoner

  • ✅ Del opp spillet slik at hver location har sin egen funksjon med logikk.
    • Med andre ord, det eneste while-loopen skal bestemme er hvilken funksjon som kjøres (behold if/elif oppsettet ennå).
  • ☝️ Hver funksjon skal returnere hvilken location som du nå vil ende opp på.

Les om return her: return w3schools

Eksempel-kode for å bestemme funksjon som kjøres
if location == "start":
    location = handle_start()

❔ Del 2 - enum

En enum er et spesielt objekt som brukes for å lage et sett med navngitte konstanter. Les om dette her: enum geeksforgeeks.

  • ✅ Legg til en enum for å navngi “locations” i eventyret ditt.
  • ✅ Bruk deretter kode som Location.START for å sjekke hvor du er.

Hvorfor alt dette?

  • ✅ Koden blir lettere å følge med funksjoner
  • ✅ Ingen input() direkte i while-loopen.
  • 🤔 Ved å bruke enum blir det vanskeligere å gjøre skrivefeil siden vi ikke lengre jobber med strings.

I stedet for å bruke en haug med boolean-verdier til å holde styr på det du har kan du lage et type “inventar”-system.

  • 👜 Lag en liste for å holde styr på “inventar”-objekter kalt inventory.
    • Bruk gjerne en enum kalt Items for å holde styr på ting du kan legge til.
  • 🔥✏️ Legg til noe i historien din som krever noe fra “inventar”-et.
  • 🧠 Om du vil kan du gjøre dette inventar-systemet mer sofistikert ved å ha en liste med dictionaries.
    • Her kan du for eksempel gjøre at visse objekter kan modifiseres. Ex: “Empty Bottle” -> “Bottle of Water 💧”
  • Legg til et system der du trenger visse koder for å åpne opp noen hemmeligheter.
  • Her kan du gjøre det slik at det er litt tilfeldighet slik at du kan åpne opp for flere slutter.
  • 🗣️💬 Noe annet du kan gjøre er å ha samtaler eller handlinger med NPCs (Non-Playing Characters) som gir deg positive eller negative poeng.
    • Her kan du gi forskjellige slutter på om du har negativ eller positiv status.