🌅 Oppstart og oppsummering (10 min)
- Hva husker dere fra i går?
- Kjapp runde: fortell om noe gøy som skjedde siden sist
📝 Konsept 1: Hva er syntax? (15 min)
Hva er syntax?
- Reglene for hvordan kode må skrives
- Som grammatikk i norsk - alt må være helt riktig
- Én liten feil kan ødelegge hele programmet
Vanlige syntax-feil:
- Glemme kolon
:etter for-løkke - Feil innrykk (ikke hakket inn koden)
- Feil på store/små bokstaver i variabelnavn
- Glemme anførselstegn rundt tekst
Demonstrasjon av feil:
❌ FEIL - mangler kolon
for count in range(5)
player.say("Hei")
✅ RIKTIG
for count in range(5):
player.say("Hei")
🎯 Oppgave 1: Finn feilen (10 min)
Oppgave: Disse kodene har feil. Finn og fiks dem:
Feil 1:
for i in range(3)
player.say("Test")
Feil 2:
mitt_navn = "Ola" player.say(mitt_Navn)
Feil 3:
for count in range(5):
player.say("Hallo")
👁️ Vis fasit
✅ Rett 1 - manglet kolon og innrykk
for i in range(3):
player.say("Test")
✅ Rett 2 - feil på stor/liten bokstav
mitt_navn = "Ola" player.say(mitt_navn)
✅ Rett 3 - mangler innrykk
for count in range(5):
player.say("Hallo")
🤖 Konsept 2: Møt agenten (20 min)
Hva er agenten?
- En robot i Minecraft som kan følge instruksjoner
- Må få helt nøyaktige kommandoer
- Kan bevege seg, bygge, knuse blokker
Grunnleggende agent-kommandoer:
Agent kommandoer
agent.teleport_to_player() # Hent agenten til deg agent.move(FORWARD, 1) # Gå 1 steg fremover agent.turn(TurnDirection.LEFT) # Snu til venstre agent.place(DOWN) # Plasser blokk under seg agent.destroy(FORWARD) # Knus blokk foran seg
⚠️ Retninger:
FORWARD(fremover),BACK(bakover)LEFT(venstre),RIGHT(høyre)UP(opp),DOWN(ned)
🎯 Oppgave 2: Hent agenten (5 min)
Oppgave: Få agenten til å teleportere til deg og si "Hei!"
👁️ Vis fasit
Fasit - Hent agenten
agent.teleport_to_player()
player.say("Agenten er her!")
💃 Hovedoppgave 1: Enkel dans (25 min)
📋 Oppgave i deler:
Del 1: Få agenten til å gå frem og tilbake
Del 2: Legg til sving i dansen
Del 3: Gjenta dansen flere ganger med for-løkke
👁️ Vis fasit Del 1
Fasit Del 1 - Frem og tilbake
def enkel_dans():
agent.teleport_to_player()
agent.move(FORWARD, 2)
agent.move(BACK, 2)
enkel_dans()
👁️ Vis fasit Del 2
Fasit Del 2 - Med sving
def dans_med_sving():
agent.teleport_to_player()
agent.move(FORWARD, 2)
agent.turn(TurnDirection.LEFT)
agent.move(FORWARD, 2)
agent.turn(TurnDirection.RIGHT)
agent.move(BACK, 2)
dans_med_sving()
👁️ Vis fasit Del 3
Fasit Del 3 - Gjentagende dans
def gjentagende_dans():
agent.teleport_to_player()
for count in range(3):
agent.move(FORWARD, 2)
agent.turn(TurnDirection.LEFT)
agent.move(FORWARD, 1)
agent.turn(TurnDirection.RIGHT)
agent.move(BACK, 3)
agent.turn(TurnDirection.LEFT)
gjentagende_dans()
☕ Pause (10 min)
Aktiviteter som fremmer samarbeid og bli-kjent
🤔 Konsept 3: Vilkår (if-setninger) (20 min)
Hva er et vilkår?
- En måte for programmet å ta beslutninger
- Spør: "Er dette sant?" - hvis ja, gjør noe, hvis nei, hopp over
- Som å si: "Hvis det regner, ta med paraply"
Struktur av if-setning:
If-setning struktur
if vilkår:
# Dette skjer hvis vilkåret er sant
⚠️ Sammenligning med == (to likhetstegn):
=lager variabel:navn = "Ola"==sammenligner:if navn == "Ola"
Eksempel:
If-setning eksempel
alder = 12
if alder >= 10:
player.say("Du er stor nok!")
💡 Vanlige sammenligninger:
==(er lik)>(større enn)<(mindre enn)>=(større enn eller lik)<=(mindre enn eller lik)
🎯 Oppgave 4: Enkel if-setning (10 min)
Oppgave: Lag en variabel med ditt favorittdyr. Hvis det er "hund", skal spilleren si "Voff voff!"
👁️ Vis fasit
Fasit - If-setning
favorittdyr = "hund"
if favorittdyr == "hund":
player.say("Voff voff!")
🏗️ Konsept 4: Agent kan bygge komplekse strukturer (15 min)
Agent kan plassere blokker strategisk:
Agent building
agent.set_item(STONE, 64, 1) # Gi agenten 64 stein i slot 1 agent.place(DOWN) # Plasser blokk under seg agent.place(FORWARD) # Plasser blokk foran seg
Agenten kan bygge mens den beveger seg:
- Kombinere movement og place-kommandoer
- Bruke for-løkker for å bygge lange strukturer
- Variere høyde og retning for komplekse former
Eksempel - bygge en enkel bro:
Enkel bro
def bygg_bro():
agent.set_item(STONE, 64, 1)
for i in range(10):
agent.place(DOWN)
agent.move(FORWARD, 1)
🎯 Oppgave 5: Agent bygger trapp (10 min)
Oppgave: Få agenten til å bygge en trapp oppover
👁️ Vis fasit
Fasit - Trapp
def bygg_trapp():
agent.teleport_to_player()
agent.set_item(STONE, 64, 1)
for steg in range(8):
agent.place(DOWN)
agent.move(FORWARD, 1)
agent.move(UP, 1)
bygg_trapp()
🎢 Hovedoppgave 2: Berg-og-dal-bane (30 min)
📋 Oppgave:
Programmere agenten til å bygge en berg-og-dal-bane med:
- Skinner som går oppover og nedover
- Stein som fundament under skinnene
- Agenten følger en bane-rute
👁️ Vis fasit - Enkel berg-og-dal-bane
Fasit - Berg-og-dal-bane
def berg_og_dal_bane():
agent.teleport_to_player()
# Gi agenten materialer
agent.set_item(STONE, 64, 1)
agent.set_item(RAIL, 64, 2)
# Bygg første del - oppover
for steg in range(8):
agent.set_slot(1) # Velg stein
agent.place(DOWN)
agent.set_slot(2) # Velg skinner
agent.place(DOWN)
agent.move(FORWARD, 1)
agent.move(UP, 1) # Gå oppover
# Bygg andre del - flatt
for steg in range(6):
agent.set_slot(1)
agent.place(DOWN)
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
# Bygg tredje del - nedover
for steg in range(8):
agent.set_slot(1)
agent.place(DOWN)
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
agent.move(DOWN, 1) # Gå nedover
berg_og_dal_bane()
🌟 Ekstra utfordring: Avansert berg-og-dal-bane med kurver
👁️ Vis fasit - Avansert versjon
Fasit - Avansert berg-og-dal-bane
def avansert_berg_og_dal():
agent.teleport_to_player()
# Gi agenten materialer
agent.set_item(STONE, 64, 1)
agent.set_item(RAIL, 64, 2)
agent.set_item(POWERED_RAIL, 16, 3) # Ekstra fart!
# Del 1: Oppover med powered rails
for steg in range(10):
agent.set_slot(1)
agent.place(DOWN)
# Hver 3. skinne er powered rail
if steg % 3 == 0:
agent.set_slot(3)
else:
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
agent.move(UP, 1)
# Del 2: Kurve til høyre
agent.turn(TurnDirection.RIGHT)
for steg in range(5):
agent.set_slot(1)
agent.place(DOWN)
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
# Del 3: Bratt nedover
agent.turn(TurnDirection.RIGHT)
for steg in range(12):
agent.set_slot(1)
agent.place(DOWN)
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
agent.move(DOWN, 1)
# Del 4: Loop tilbake
agent.turn(TurnDirection.RIGHT)
for steg in range(8):
agent.set_slot(1)
agent.place(DOWN)
agent.set_slot(2)
agent.place(DOWN)
agent.move(FORWARD, 1)
avansert_berg_og_dal()
📝 Oppsummering og utsikter (10 min)
🎉 Hva har vi lært i dag?
- Syntax må være helt riktig
- Agenten kan bevege seg og utføre oppgaver
- If-setninger lar programmet ta beslutninger
- Agenten kan bygge komplekse strukturer som berg-og-dal-baner
🚀 I morgen:
- Bygge noe stort og kreativt
- Bruke alt vi har lært
- Lage vår egen feriedestinasjon!