User Tools

Site Tools


playground:playground

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
playground:playground [2020/04/15 00:05]
royeven
playground:playground [2020/04/15 09:51] (current)
royeven
Line 33: Line 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}}
  
Line 76: Line 76:
  
 ====== Videre arbeid ====== ====== Videre arbeid ======
-  - Du skal gi deg selv ett poeng for hver gang du har husket hele sekvensen. Hvor skal du legge inn denne funksjonen?+  - 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?   - 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 ======
Line 99: Line 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.1586901920.txt.gz · Last modified: 2020/04/15 00:05 by royeven