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

Neste revisjon
Forrige revisjon
minesveiper [2020/03/31 09:58] – opprettet 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/1/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}}
  
  
 ==== Lage sveiper ==== ==== Lage sveiper ====
-Gjenta prosessen over for en ny brikke som du kaller //sveiper//. Denne skal ikke være usynlig +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. 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/2/embedded/css,html,result/ 100%,400 noscroll noborder left}}+<hidden Tips 1>I **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}}
  
-===== Bevege sveiper =====+===== Bevege sveiper framover ===== 
 +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> 
 +{{url>https://jsfiddle.net/royeven/jgdx8upy/19/embedded/css,html,result/ 100%,400 noscroll noborder left}}
  
-{{url>https://jsfiddle.net/royeven/jgdx8upy/3/embedded/css,html,result100%,400 noscroll noborder left}} + 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/4/embedded/css,html,result/ 100%,400 noscroll noborder left}} +===== Bevege sveiper fram og tilbake ===== 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/5/embedded/css,html,result100%,400 noscroll noborder left}} +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. 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/6/embedded/css,html,result/ 100%,400 noscroll noborder left}} +<hidden Tips 1>Du ønsker nå å sjekke hva //sveiper// sin X-koordinat er før du flytter på denHvis //sveiper// sin x-koordinat er 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> 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/7/embedded/css,html,result/ 100%,400 noscroll noborder left}}+<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>I **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
 {{url>https://jsfiddle.net/royeven/jgdx8upy/8/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/8/embedded/css,html,result/ 100%,400 noscroll noborder left}}
 +
 +Her finner du et komplett løsningsforslag. Det finnes mange måter du kan flytte //sveiper// på, og dersom du har funnet en lur måte så kan du godt bruke din egen måte.
 {{url>https://jsfiddle.net/royeven/jgdx8upy/9/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/9/embedded/css,html,result/ 100%,400 noscroll noborder left}}
 +
 +===== Bevege sveiper opp og ned =====
 +Nå skal du bruke B-knappen til å bevege //sveiper// opp og ned. Du kan høyre-klikke på blokka for "når knapp A trykkes" og velge "Lag kopi". Der det tidligere sto "når knapp A trykkes" må du nå endre slik at det i den ene blokken står "når knapp B trykkes" og gjøre justeringer slik at knapp A flytter //sveiper// fram og tilbake med knapp B flytter //sveiper// opp og ned.
 {{url>https://jsfiddle.net/royeven/jgdx8upy/10/embedded/css,html,result/ 100%,400 noscroll noborder left}} {{url>https://jsfiddle.net/royeven/jgdx8upy/10/embedded/css,html,result/ 100%,400 noscroll noborder left}}
-{{url>https://jsfiddle.net/royeven/jgdx8upy/11/embedded/css,html,result100%,400 noscroll noborder left}}+ 
 + 
 +===== 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 hverandreHvis //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}} {{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/13/embedded/css,html,result/ 100%,400 noscroll noborder left}}
 +
 +
 +===== Markere åpnede felt =====
 +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}} 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/16/embedded/css,html,result/ 100%,400 noscroll noborder left}} 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/17/embedded/css,html,result/ 100%,400 noscroll noborder left}} 
-{{url>https://jsfiddle.net/royeven/jgdx8upy/18/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}} 
  
 +====== 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.1585648704.txt.gz · Sist endret: 2022/11/30 08:15 (ekstern redigering)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki