Brukerverktøy

Nettstedverktøy


playground:playground

Forskjeller

Her vises forskjeller mellom den valgte versjonen og den nåværende versjonen av dokumentet.

Lenk til denne sammenligningen

Begge sider forrige revisjonForrige revisjon
Neste revisjon
Forrige revisjon
Siste revisjonBegge sider neste revisjon
playground:playground [2020/04/14 22:02] – [Oppdrag 3] royevenplayground:playground [2020/04/15 07:51] royeven
Linje 33: Linje 33:
 {{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Asekvens%20%3D%20%22ABCD%22%0D%0Abasic.showString(sekvens.charAt(0))%0D%0Abasic.showString(sekvens.charAt(1))%0D%0Abasic.showString(sekvens.charAt(2))%0D%0Abasic.showString(sekvens.charAt(3))%0D%0Abasic.showString(sekvens.charAt(4))%0D%0A%60%60%60 100%,800 noscroll noborder left}} {{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Asekvens%20%3D%20%22ABCD%22%0D%0Abasic.showString(sekvens.charAt(0))%0D%0Abasic.showString(sekvens.charAt(1))%0D%0Abasic.showString(sekvens.charAt(2))%0D%0Abasic.showString(sekvens.charAt(3))%0D%0Abasic.showString(sekvens.charAt(4))%0D%0A%60%60%60 100%,800 noscroll noborder left}}
  
-For å unngå slike situasjoner pleier man ofte å bruke en løkke med en variabel kalt //indeks// til å hente ut elementer fra en slik tekst. Dersom //sekvens// er 'ABCD' vil man bruke en løkke slik at indeks får verdiene mellom 0 og 3. Merk at i eksemplet bruker man et triks hvor maks-verdien til //indeks// blir satt til én mindre enn lengden på //sekvens//. Ettersom //sekvens// har en lengde på 4 tegn, setter man en maks-grense på én mindre, altså 3. Denne gang skal D'en bli stående på skjermen, for denne programmet vil kun hente ut gyldige indekser mellom 0 og 3:+For å unngå slike situasjoner pleier man ofte å bruke en løkke med en variabel kalt //indeks// til å hente ut elementer fra en slik tekst. Dersom //sekvens// er 'ABCD' vil man bruke en løkke slik at indeks får verdiene mellom 0 og 3. Merk at i eksemplet bruker man et triks hvor maks-verdien til //indeks// blir satt til én mindre enn lengden på //sekvens//. Ettersom //sekvens// har en lengde på 4 tegn, setter man en maks-grense på én mindre, altså 3. Denne gang skal D'en bli stående på skjermen, for dette programmet vil kun hente ut gyldige indekser mellom 0 og 3:
 {{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Asekvens%20%3D%20%22ABCD%22%0D%0Afor%20(let%20indeks%20%3D%200%3B%20indeks%20%3C%3D%20sekvens.length%20-%201%3B%20indeks%2B%2B)%20%7B%0D%0A%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%7D%0D%0A%60%60%60 100%,800 noscroll noborder left}} {{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Asekvens%20%3D%20%22ABCD%22%0D%0Afor%20(let%20indeks%20%3D%200%3B%20indeks%20%3C%3D%20sekvens.length%20-%201%3B%20indeks%2B%2B)%20%7B%0D%0A%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%7D%0D%0A%60%60%60 100%,800 noscroll noborder left}}
  
Linje 75: Linje 75:
 [[#losningsforslag_3|Se her for løsningsforslag.]] [[#losningsforslag_3|Se her for løsningsforslag.]]
  
 +====== Videre arbeid ======
 +  - I løsningsforslagene er det ikke tatt med funksjonalitet for å endre poengsummer. Dette blir din jobb. Du skal gi deg selv ett poeng for hver gang du har husket hele sekvensen riktig. Hvor skal du legge inn denne funksjonen? Du skal også miste ett poeng for hver gang du husker sekvensen feil.
 +  - Kanskje du kan endre på spillet slik at du til å begynne med har f.eks. ti liv. Hver gang du husker sekvensen feil mister du ett liv?
 +  - **Spill**-menyen inneholder en nedtellingsfunksjon. Kan du modifisere spillet slik at hver omgang varer i f.eks. 2 minutter. Hva blir den lengste sekvensen du greier å huske i løpet av disse to minuttene?
 +  - I dette spillet brukes variabelen //indeks// til mye forskjellig - bl.a. lagrer den informasjon om hvilket tegn i //sekvens// spilleren er forventet å trykke på. Når man trykker riktig blir //indeks// øket med 1 for å sjekke neste tegn. Ser du sammenhengen mellom å øke verdien til //indeks// for hvert knappetrykk og det eksemplet hvor en for-løkke går gjennom alle gyldige verdier av //indeks//? I begge tilfeller begynner vi med at //indeks// er 0. Så blir //indeks// endret, først til 1, deretter til 2, 3 og så videre. Når //indeks// øker og blir like stor som lengden av //sekvens// er ikke //indeks// lenger en gyldig posisjon i //sekvens//. Det betyr at du har kommet til slutten av //sekvens// uten feil, og derfor er klar for å legge til et nytt tegn i //sekvens//. Les grundig over programmet ditt og sørg for at du forstår hvordan variablene //indeks// og //sekvens// fungerer sammen, her kan du lære mye om indekser og null-indeksert informasjon som f.eks. en tekst eller en tabell.
  
 ====== Løsningsforslag ====== ====== Løsningsforslag ======
Linje 96: Linje 101:
 [[#oppdrag_3|Se her for oppdraget.]] [[#oppdrag_3|Se her for oppdraget.]]
  
-{{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Alet%20indeks%20%3D%200%0D%0Asekvens%20%3D%20%22%22%0D%0Aindeks%20%3D%200%0D%0Agame.setScore(0)%0D%0Abasic.forever(function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.length%20%3D%3D%20indeks)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(Math.randomRange(1%2C%202)%20%3D%3D%201)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22A%22%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22B%22%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%20sekvens.length%20-%201%0D%0A%20%20%20%20%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.A%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22A%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20game.addScore(-1)%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0A%60%60%60 100%,2000 noscroll noborder left}}+{{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Alet%20indeks%20%3D%200%0D%0Asekvens%20%3D%20%22%22%0D%0Aindeks%20%3D%200%0D%0Agame.setScore(0)%0D%0Abasic.forever(function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.length%20%3D%3D%20indeks)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(Math.randomRange(1%2C%202)%20%3D%3D%201)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22A%22%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22B%22%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%20sekvens.length%20-%201%0D%0A%20%20%20%20%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.A%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22A%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0A%60%60%60 100%,2000 noscroll noborder left}}
  
 ====== Komplett løsning ====== ====== Komplett løsning ======
- +Under følger en komplett og fungerende versjon av spillet. Dersom du trykker på play-ikonet under kommandoene vil du kunne teste ut spillet i simuleringen. 
-{{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Alet%20indeks%20%3D%200%0D%0Asekvens%20%3D%20%22%22%0D%0Aindeks%20%3D%200%0D%0Agame.setScore(0)%0D%0Abasic.forever(function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.length%20%3D%3D%20indeks)%20%7B%0D%0A%20%20%20%20%20%20%20%20game.addScore(1)%0D%0A%20%20%20%20%20%20%20%20if%20(Math.randomRange(1%2C%202)%20%3D%3D%201)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22A%22%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22B%22%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%20sekvens.length%20-%201%0D%0A%20%20%20%20%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.A%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22A%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20game.addScore(-1)%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.B%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22B%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20game.addScore(-1)%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0A%60%60%60 100%,3000 noscroll noborder left}}+{{url>https://makecode.microbit.org/---docs?md=%60%60%60blocks%0D%0Alet%20sekvens%20%3D%20%22%22%0D%0Alet%20indeks%20%3D%200%0D%0Asekvens%20%3D%20%22%22%0D%0Aindeks%20%3D%200%0D%0Agame.setScore(0)%0D%0Abasic.forever(function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.length%20%3D%3D%20indeks)%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20(Math.randomRange(1%2C%202)%20%3D%3D%201)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22A%22%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sekvens%20%3D%20sekvens%20%2B%20%22B%22%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%20sekvens.length%20-%201%0D%0A%20%20%20%20%20%20%20%20basic.showString(sekvens.charAt(indeks))%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.A%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22A%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0Ainput.onButtonPressed(Button.B%2C%20function%20()%20%7B%0D%0A%20%20%20%20if%20(sekvens.charAt(indeks)%20%3D%3D%20%22B%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%2B%3D%201%0D%0A%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20indeks%20%3D%200%0D%0A%20%20%20%20%20%20%20%20basic.showIcon(IconNames.Skull)%0D%0A%20%20%20%20%20%20%20%20basic.pause(1000)%0D%0A%20%20%20%20%20%20%20%20basic.clearScreen()%0D%0A%20%20%20%20%7D%0D%0A%7D)%0D%0A%60%60%60 100%,3000 noscroll noborder left}}
  
playground/playground.txt · Sist endret: 2022/09/03 21:45 av 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki