Brukerverktøy

Nettstedverktøy


minesveiper

Dette er en gammel utgave av dokumentet!


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. 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

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

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 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 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 finner du en kommando for å angi egenskaper ved en brikke. Bruk denne til å angi mine sin lysstyrke til 0.</hidden> https://jsfiddle.net/royeven/jgdx8upy/2/embedded/css,html,result/ 100%,400 noscroll noborder left

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. <hidden Tips 1>I Spill-menyen finner du kommandoer som styrer poengene i spillet.</hidden> https://jsfiddle.net/royeven/jgdx8upy/4/embedded/css,html,result/ 100%,400 noscroll noborder left

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> https://jsfiddle.net/royeven/jgdx8upy/19/embedded/css,html,result/ 100%,400 noscroll noborder left

Bevege sveiper fram og tilbake

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 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 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. 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. https://jsfiddle.net/royeven/jgdx8upy/10/embedded/css,html,result/ 100%,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 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:

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:

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> https://jsfiddle.net/royeven/jgdx8upy/14/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.1585823681.txt.gz · Sist endret: 2022/11/30 08:15 (ekstern redigering)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki