Brukerverktøy

Nettstedverktøy


minesveiper

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
minesveiper [2020/03/31 10:31] royevenminesveiper [2022/11/30 08:09] (nåværende versjon) – ekstern redigering 127.0.0.1
Linje 1: Linje 1:
 ====== Minesveiper ====== ====== Minesveiper ======
-I dette klassiske spillet ligger minene skjult, og spilleren skal forsøke å finne ut hvor de befinner seg. Ettersom skjermen på micro:bit setter en del begrensninger må vi endre litt på spillet. Det skal bare være én mine ett eller annet sted på spillebrettets 25 felt. Spilleren skal åpne ett og ett felt og når feltet med minen blir åpnet er spillet over. Men for hvert felt som blir åpnet uten at det ligger en mine der får spilleren ett poeng. +I dette klassiske spillet ligger minene skjult, og spilleren skal forsøke å finne ut hvor de befinner seg. Ettersom skjermen på micro:bit setter en del begrensninger må vi endre litt på spillet. Det skal bare være én mine ett eller annet sted på spillebrettets 25 felt. Spilleren skal åpne ett og ett felt og når feltet med minen blir åpnet er spillet over. Men for hvert felt som blir åpnet uten at det ligger en mine der får spilleren ett poeng. Poengsummen vil derfor avhenge av hvor mange felt du har åpnet før du finner minen. Hvor mange felt tror du at du greier å avdekke før du er uheldig og treffer på minen?
  
 ===== Lage brikkene ===== ===== Lage brikkene =====
 Alle elementene i et spill må lagres et sted, og en lagringsplass kalles en variabel. I en variabel kan du lagre nesten hva som helst, både tall, tekster og spillbrikker, og det som ligger lagret i variabelen kalles en verdi. Alle elementene i et spill må lagres et sted, og en lagringsplass kalles en variabel. I en variabel kan du lagre nesten hva som helst, både tall, tekster og spillbrikker, og det som ligger lagret i variabelen kalles en verdi.
 ==== Lage minen ==== ==== Lage minen ====
-Trykk på menyen for variabler og velg "Lag en variabel". Kall variabelen //mine//. Nå skal det ha blitt opprettet en kommando kalt "sett mine til" i variabel-menyen. Denne skal utføres ved start, så du må klikke på den og dra den inn til "Ved start"-blokka. Det er ikke tilstrekkelig å lagre et tall i denne variabelen, du trenger å lage en ny spillbrikke og plassere denne spill-brikken et sted på skjermen. Minen skal være usynlig, så du må også angi at minen sin lysstyrke skal være 0. +Trykk på menyen for **Variabler** og velg "Lag en variabel". Kall variabelen //mine//. Nå skal det ha blitt opprettet en kommando kalt "sett mine til" i **Variabel**-menyen. Denne skal utføres ved start, så du må klikke på den og dra den inn til "Ved start"-blokka. Det er ikke tilstrekkelig å lagre et tall i denne variabelen, du trenger å lage en ny spillbrikke og plassere denne spill-brikken et sted på skjermen. Minen skal være usynlig, så du må også angi at minen sin lysstyrke skal være 0. 
-<hidden Tips 1>Du finner kommandoer for variabler menyen for variablerDu oppretter brikker ved å klikke på Avansert og deretter gå inn i spill-menyen.</hidden>+<hidden Tips 1>Du finner aktuelle kommandoer i menyene for **Variabler** og **Spill**Når du skal opprette brikker må du muligens først klikke på *Avansert* for å finne menyen for **Spill**.</hidden>
 <hidden Tips 2>Når du lager nye brikker må brikken plasseres et sted på spillbrettet, og vi bruker koordinater til å betegne én spesifikk rute. Referansen (eller nullpunktet, origo, om du vil) er øverste venstre hjørne. X-koordinaten betegner antall ruter bortover fra origo, og Y-koordinaten betegner hvor mange hakk nedover fra origo. Hvis du plasserer brikken på koordinat (X=0,Y=1) blir den plassert 0 hakk bortover og ett hakk under origo, altså like under origo. Øverste høyre hjørne har koordinat (X=4,Y=0), nedre høyre hjørne har koordinat (X=4,Y=4) og nedre venstre hjørne har koordinat (X=0,Y=4).</hidden> <hidden Tips 2>Når du lager nye brikker må brikken plasseres et sted på spillbrettet, og vi bruker koordinater til å betegne én spesifikk rute. Referansen (eller nullpunktet, origo, om du vil) er øverste venstre hjørne. X-koordinaten betegner antall ruter bortover fra origo, og Y-koordinaten betegner hvor mange hakk nedover fra origo. Hvis du plasserer brikken på koordinat (X=0,Y=1) blir den plassert 0 hakk bortover og ett hakk under origo, altså like under origo. Øverste høyre hjørne har koordinat (X=4,Y=0), nedre høyre hjørne har koordinat (X=4,Y=4) og nedre venstre hjørne har koordinat (X=0,Y=4).</hidden>
-<hidden Tips 3>Minen må plasseres på tilfeldige X- og Y-koordinater. På menyen for matematikk finner du en kommando som heter "tilfeldig tall", og du kan bruke denne til å sette X- og Y-koordinaten til et tilfeldig tall fra 0 til 4.</hidden> +<hidden Tips 3>Minen må plasseres på tilfeldige X- og Y-koordinater. På menyen for **Matematikk** finner du en kommando som heter "tilfeldig tall", og du kan bruke denne til å sette X- og Y-koordinaten til et tilfeldig tall mellom 0 til 4.</hidden> 
-<hidden Tips 4>Ved å trykke på avansert og deretter på Spill-menyen finner du en kommando for å angi egenskaper ved en brikke. Bruk denne til å angi //mine// sin lysstyrke til 0.</hidden>+<hidden Tips 4>Ved å trykke på **Avansert** og deretter på **Spill** finner du en kommando for å angi egenskaper ved en brikke. Bruk denne til å angi //mine// sin lysstyrke til 0.</hidden>
 {{url>https://jsfiddle.net/royeven/jgdx8upy/2/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/2/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
Linje 15: Linje 15:
 ==== Lage sveiper ==== ==== Lage sveiper ====
 Gjenta prosessen over for en ny brikke som du kaller //sveiper//. Denne skal ikke være usynlig. Du skal også sette poengsummen din til 0 ved start. Gjenta prosessen over for en ny brikke som du kaller //sveiper//. Denne skal ikke være usynlig. Du skal også sette poengsummen din til 0 ved start.
-<hidden Tips 1>spill-menyen finner du kommandoer som styrer poengene i spillet.</hidden>+<hidden Tips 1>**Spill**-menyen finner du kommandoer som styrer poengene i spillet.</hidden>
 {{url>https://jsfiddle.net/royeven/jgdx8upy/4/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/4/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
 ===== Bevege sveiper framover ===== ===== Bevege sveiper framover =====
-Vi ønsker å bruke knappene A og B til å flytte //sveiper// rundt på skjermen. Til dette trenger du funksjoner fra Inndata-menyen, og det er særlig funksjonen "når knapp A trykkes" og "når knapp B trykkes" som er interessant. Ved å kombinere disse funksjonene med kommandoene "endre" og "angi" fra spill-menyen kan vi flytte //sveiper// fram og tilbake. Når du trykker på knapp A skal //sveiper// flytte seg ett hakk bortover (til høyre).  +Vi ønsker å bruke knappene A og B til å flytte //sveiper// rundt på skjermen. Til dette trenger du funksjoner fra **Inndata**, og det er særlig funksjonen "når knapp A trykkes" og "når knapp B trykkes" som er interessant. Ved å kombinere disse funksjonene med kommandoene "endre" og "angi" fra **Spill** kan vi flytte //sveiper// fram og tilbake. Når du trykker på knapp A skal //sveiper// flytte seg ett hakk bortover (til høyre).  
-<hidden Tips 1>Dersom du ønsker å flytte //sveiper// ett hakk til høyre kan du endre sveiper sin X-posison med 1. Dette er det samme som å flytte sveiper ett hakk lenger vekk fra nullpunktet.</hidden>+<hidden Tips 1>Dersom du ønsker å flytte //sveiper// ett hakk til høyre kan du endre //sveiper// sin X-posison med 1. Dette er det samme som å flytte //sveiper// ett hakk lenger vekk fra nullpunktet.</hidden>
 {{url>https://jsfiddle.net/royeven/jgdx8upy/19/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/19/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
  
 ===== Bevege sveiper fram og tilbake ===== ===== Bevege sveiper fram og tilbake =====
-Du vil fort oppdage at når //sveiper// når kanten så kan den ikke flyttes lenger til høyre. Vi må altså finne en måte å flytte //sveiper// tilbake på også. Hvis du trykker på logikk-menyen finner du en "hvis-ellers"-blokk som du kan bruke. +Du vil fort oppdage at når //sveiper// når kanten av skjermen så kan den ikke flyttes lenger til høyre. Vi må altså finne en måte å flytte //sveiper// tilbake på også. Hvis du trykker på menyen for **Logikk** finner du en "hvis-ellers"-blokk som du kan bruke. 
-<hidden Tips 1>Du ønsker nå å sjekke hva //sveiper// sin X-koordinat er før du flytter på den. Hvis sveiper sin x-koordinat er 4 skal sveiper flyttes tilbake til start (d.v.s. angi sveiper sin X-koordinat til 0). Hvis ikke ønsker du å endre sveiper sin X-koordinat med 1.</hidden>+<hidden Tips 1>Du ønsker nå å sjekke hva //sveiper// sin X-koordinat er før du flytter på den. Hvis //sveiper// sin x-koordinat er 4 skal //sveiper// flyttes tilbake til start (d.v.s. angi //sveiper// sin X-koordinat til 0). Hvis ikke ønsker du å endre //sveiper// sin X-koordinat med 1.</hidden>
 <hidden Tips 2>Du kan finne en seks-kantet blokk for sammenligning i logikk-menyen. Denne skal passe inn i hvis-blokken.</hidden> <hidden Tips 2>Du kan finne en seks-kantet blokk for sammenligning i logikk-menyen. Denne skal passe inn i hvis-blokken.</hidden>
-<hidden Tips 3>spill-menyen kan du finne "sprite X"-blokken for å finne X-koordinaten til en brikke.</hidden>+<hidden Tips 3>**Spill**-menyen kan du finne "sprite X"-blokken for å finne X-koordinaten til en brikke.</hidden>
  
 Her finner du et delvis ferdig løsningsforslag du kan bruke som utgangspunkt Her finner du et delvis ferdig løsningsforslag du kan bruke som utgangspunkt
Linje 42: Linje 42:
  
 ===== Avdekke et felt ===== ===== Avdekke et felt =====
 +Når du trykker på knapp A og B samtidig skal du sjekke om minen ligger der. Hvis den gjør det skal spillet avsluttes, men hvis ikke skal du ha ett ekstra poeng for å ha overlevd litt lenger i minefeltet.
 +<hidden Tips 1>Du må finne blokkene "når knapp A+B trykkes" fra menyen for **Inndata** og "hvis-ellers"-blokka fra **Logikk**-menyen.</hidden>
 +<hidden Tips 2>I **Spill**-menyen finner du en seks-kantet blokk som sjekker om to brikker berører hverandre. Hvis //sveiper// berører //mine// har du nå tapt!</hidden>
  
 +Her har du et uferdig løsningsforslag med hint du kan ta utgangspunkt i:
  
 +{{url>https://jsfiddle.net/royeven/jgdx8upy/12/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
 +Her finner du et komplett løsningsforslag på dette trinnet:
  
 +{{url>https://jsfiddle.net/royeven/jgdx8upy/13/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
  
-{{url>https://jsfiddle.net/royeven/jgdx8upy/12/embedded/css,html,result/ 100%,400 noscroll noborder left}} +===== Markere åpnede felt ===== 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/13/embedded/css,html,result/ 100%,400 noscroll noborder left}}+Det blir enklere å spille dersom du markerer de feltene du alt har åpnet og hvor du vet at minen ikke finnes. Når du åpner et felt hvor minen ikke er kan du lage en ny brikke som du plasserer i dette feltet og setter en svak lysstyrke på denne brikken. 
 +<hidden Tips 1>I **Spill**-menyen finner du kommandoer for å lage en ny brikke, og du finner kommandoer for å finne X- og Y-koordinatene til en brikke.</hidden> 
 +<hidden Tips 2>I spill-menyen finner du kommandoer for å angi koordinater, men denne kan også brukes til å angi lysstyrken til en brikke.</hidden>
 {{url>https://jsfiddle.net/royeven/jgdx8upy/14/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/14/embedded/css,html,result/ 100%,400 noscroll noborder left}}
-{{url>https://jsfiddle.net/royeven/jgdx8upy/15/embedded/css,html,result/ 100%,400 noscroll noborder left}} 
- 
  
 +====== Videre arbeid ======
 +  * Du har kanskje merket at du kan åpne ett felt flere ganger? Hvis du åpner samme felt 100 ganger etter hverandre får du 100 poeng. Når du etter hvert finner minen og dør kan du derfor ha fått mer enn 25 poeng. Hvordan kan du modifisere spillet slik at et felt kun kan åpnes én gang?
minesveiper.1585650690.txt.gz · Sist endret: 2022/11/30 08:15 (ekstern redigering)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki