Innholdsfortegnelse:

Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit !: 10 trinn
Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit !: 10 trinn

Video: Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit !: 10 trinn

Video: Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit !: 10 trinn
Video: NKUL 2019 Sesjon 3H: Nye læreplaner – for en fremtid i endring 2024, Juli
Anonim
Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit!
Hva tenker Bit? Lag et enkelt gjetningsspill med BBC Microbit!

Jeg hentet et par BBC Microbits etter å ha lest positive anmeldelser om dem i flere nettartikler.

I et forsøk på å gjøre meg kjent med BIT, lekte jeg med den elektroniske Microsoft Blocks Editor i et par timer og kom med et enkelt gjetningsspill.

I denne IBLE vil vi snakke om spillereglene og navigere gjennom funksjonene samlet i forskjellige kodeblokker i Blocks Editor.

Til slutt kan et spent publikum navigere til online simulatoren og gi dette enkle spillet et forsøk.

La oss komme i gang.

Trinn 1: Før du begynner …

Før du begynner …
Før du begynner …
Før du begynner …
Før du begynner …

Maskinvaren

BBC Microbit -kortet er lett å gjøre seg kjent med. For denne IBLE trenger du bare vite at det er et lite brett med 2 trykknapper, en rekke små lysdioder og en mikro-USB-kontakt som fungerer som strømforsyning og et middel til å laste et program på kortet..

Utvalget av små LED -er kan programmeres til å lyse opp i forskjellige mønstre.

Merk:

Du trenger ikke det fysiske brettet for denne IBLE! BBC Microbit -området har en online simulator for å teste koden du utvikler online.

Programvaren

Denne IBLE går ikke i detaljer om å komme i gang med BBC Microbit og/eller Online Blocks Editor.

Publikum oppfordres til å utforske denne BBC Micorbit -ressursen før de går videre til de neste trinnene.

BBC Microbit er designet for å lære programmering ved hjelp av en veldig brukervennlig tilnærming, og derfor er det godt å ha kjennskap til et annet programmeringsspråk, men ikke nødvendig, spesielt hvis du skal bruke Microsoft Blocks Editor for å lære programmering.

Likevel har jeg ennå ikke støtt på et produkt som er så lett å komme i gang med enn BBC Microbit, gitt at jeg eier og spiller med flere andre mikrokontroller programmeringsplattformer.

Trinn 2: Reglene for gjetningsspillet

Reglene for gjettespillet
Reglene for gjettespillet

Spillreglene er som følger:

  1. Ved oppstart tenker BIT på et tall og utfordrer den menneskelige spilleren til å gjette hva det tallet er ved å skrive ut en melding på LED -panelet, og venter på svar
  2. Spilleren gjetter og trykker på venstre trykknapp (A) like mange ganger som svaret - Eksempel, hvis spilleren gjettet 5, trykkes knappen 5 ganger
  3. For å sende svaret til BIT, trykker spilleren på høyre trykknapp (B) én gang!
  4. Hvis spillerne gjetter er riktig, så scorer spilleren et poeng, hvis ikke BIT får et poeng
  5. Hvis en spiller gjettet et tall utenfor området, scorer den andre spilleren et poeng - BIT viser et stort X på sin LED -display og fortsetter å gjette et nytt tall og gjenta utfordringen; Eksempel: Hvis BIT utfordret deg til å gjette et tall mellom 1 og 5, og du gjettet 6, eller hvis du gjettet NULL (ved ganske enkelt å trykke på knapp B før du trykket på knapp A), blir den runden ugyldiggjort
  6. Utfordringsresponsen fortsetter til en av spillerne får de maksimalt tillatte poengene

Start et nytt spill:

For å starte et nytt spill når som helst, bare gi BIT en ris! Eller bare koble fra og koble til strømmen igjen.

Trinn 3: Blokker -programmet: Variabler

Blokker -programmet: Variabler
Blokker -programmet: Variabler

Programmet bruker noen få variabler som er navngitt for å matche funksjonene som er oppført nedenfor. Disse variablene kan opprettes ved å klikke på kategorien Variabelprogrammering i Blokkeredigering

BIT_SCORE - Holder oversikt over poengene som BIT har scoret

bitGuessed - Denne variabelen holder den tilfeldige verdien gjettet av BIT

CHECK - når den er satt til True, sjekker BIT om spillerne gjetter er lik BITs -gjetningen

GAME_RANGE - Dette tallet begrenser hvor høyt BIT eller en spiller kan gjette

Eksempel: Hvis den er satt til 6, kan begge spillerne gjette fra 1 til 6

MSG - En streng som endres for å vise forskjellige meldinger basert på spillets kontekst

PLAYER_SCORE - holder styr på poengene som spilleren har scoret

playerGuess - Antallet gjettet av spilleren er registrert i denne variabelen

MERK

Den aller første variabelen med navnet element er en generell og standard variabel og kan ignoreres

Trinn 4: Funksjonene

Funksjonene
Funksjonene

Som en del av læringsprosessen og for bedre organisering, ble koden organisert i en rekke funksjoner som kan kalles eller påkalles i hovedprogrammet. Akkurat som variabler kan funksjonene opprettes og åpnes ved å klikke på kategorien Avansert> Funksjoner.

Her er en kort beskrivelse av funksjonene:

announceWinner - Denne funksjonen skriver ut den vinnende meldingen som er adressert til den vinnende spilleren

doChallenge - Funksjonen som BIT kaller for å gjette et tall og utgjøre en utfordring for spilleren

showBadGuess - Viser en melding med et stort X på LED -panelet hvis noen av spillerne gjettet utenfor området tillatt

showLose - kalles hvis BIT vinner en utfordringsrunde over spilleren

showMessage - presenterer en melding for å utfordre spilleren til å gjette et tall innenfor et angitt område

showWin - kalles til når spilleren vinner gjetningsrunden over BIT

Trinn 5: Programstart og Shake Events & Event Handlers

Programstart og Shake Events & Event Handlers
Programstart og Shake Events & Event Handlers

"Start" og "on shake" er hendelsesbehandlere som kalles henholdsvis når "start" hendelsen og "shake" hendelsene skjer. Sett fra Blocks -koden, er det som skjer når disse to hendelsesbehandlerne blir kalt nesten det samme som i:

  • ShowMessage () -funksjonen kalles for å vise meldingen når spillet begynner
  • Det er en kort pause på 650 milli-sekunder etter at meldingen er vist
  • DoChallenge () -funksjonen kalles der BIT gjetter et tall og venter på at den menneskelige spilleren sender inn en gjetning

Vi vil dekke de to funksjonene i neste trinn.

Når det er sagt, er det grunnleggende forskjeller mellom hendelsesbehandlerne "on start" og "on shake":

  1. Hendelsesbehandleren "på start" kjører hver gang BIT startes - som ved frakobling og tilkobling av strøm til BIT
  2. Visse ting som bare må skje en gang når programmet starter er definert i "på start" og ingen andre steder i hele programmet
  3. En slik ting er å initialisere GAME_RANGE -variabelen - i dette tilfellet initialiseres den til 6, noe som betyr at spillerne kan gjette et tall mellom 1 og 6
  4. Siden "ved start" er en grunnleggende BIT -funksjon, er det ikke rart at den er tilgjengelig fra kategorien Basic programmering i Blocks Editor
  5. "On shake" på den annen side er en hendelsesbehandler som kalles når brukeren gir innspill til BIT i form av en rask shake
  6. Derfor kan hendelsesbehandleren "on shake" finnes i kategorien Inngangsprogrammering i Blokkeredigering

Trinn 6: Oppstartsmeldingen og utfordringsfunksjoner

Startmeldingen og utfordringsfunksjonene
Startmeldingen og utfordringsfunksjonene
Startmeldingen og utfordringsfunksjonene
Startmeldingen og utfordringsfunksjonene
Startmeldingen og utfordringsfunksjonene
Startmeldingen og utfordringsfunksjonene

ShowMessage () Oppstartsmeldingsfunksjonen er en enkel funksjon som sletter BITs LED -paletten med en klar skjermkommando og viser en rullende melding som utfordrer spilleren til å gjette et tall.

Som det fremgår av funksjonsblokken showMessage, blir et par faste biter av strenger lagt til GAME_RANGE -variabelen for å vise en enkel melding som sier:

Gjett 0 - 6!

DoChallenge () -funksjonen kalles i begynnelsen av hver utfordringsrunde, og gjør derfor følgende sett fra doChallenge -funksjonsblokken:

  1. Initialiserer playerGuess -variabelen til null før den godtar et nytt input fra den menneskelige spilleren
  2. Initialiserer CHECK -variabelen til falsk - noe som betyr at runden skal begynne, og det er ikke på tide å sammenligne tallene gjettet av begge spillerne
  3. Neste, og mest betydningsfulle, velger BIT et tilfeldig tall innenfor området definert av GAME_RANGE og registrerer det i bitGuessed -variabelen
  4. Til slutt lyser LED -paletten med et spørsmålstegn som ber den menneskelige spilleren om innspill som svar på BITs -utfordringen!

Merk

Hvis verdien GAME_RANGE variabel endres som beskrevet i forrige trinn, kan spillet ditt se ut og virke litt annerledes.

Sammenføyningsfunksjonen er en strengfunksjon og kan være tilgjengelig fra kategorien Tekstprogrammering i Blokkeredigering

Trinn 7: Button a Click -hendelsen - Svar på BITs -utfordringen

The Button a Click -hendelse - Svar på BITs -utfordringen!
The Button a Click -hendelse - Svar på BITs -utfordringen!

Når det store spørsmålstegnet vises på BITs LED -skjerm, er det enkelt å gjøre følgende for å svare på utfordringen for den menneskelige spilleren:

  1. Gjett hvilket tall BIT kan tenke mellom 0 og 6
  2. Trykk på knappen A så mange ganger svaret ditt er - Eksempel hvis svaret er 3, trykk deretter på knapp A 3 ganger

Å trykke på knappen er åpenbart en brukerinngang, og derfor er hendelsesbehandleren "on button" tilgjengelig via kategorien Inngangsprogrammering i Blokker -editoren. Hver gang brukeren trykker på knapp A, gjør denne hendelsesbehandleren følgende:

  • Øk verdien til playerGuess -variabelen med 1 så lenge den er innenfor GAME_RANGE -grensen (6 i dette tilfellet)
  • Hvis spilleren sender inn 7 eller høyere, blir gjetningen ugyldig og playerGuess blir tilbakestilt til null, noe som i hovedsak ugyldiggjør gjetningen fra spillerne.

Den neste handlingen er å sende inn svaret på utfordringen, som vi vil gå gjennom i neste trinn.

Trinn 8: Knapp B -hendelsen - Send svar på BITs -utfordringen

The Button B Click Event - Send svar på BITs Challenge!
The Button B Click Event - Send svar på BITs Challenge!
The Button B Click Event - Send svar på BITs Challenge!
The Button B Click Event - Send svar på BITs Challenge!

Den menneskelige spilleren sender inn svaret til BIT ved å trykke på knapp B én gang. Et antall trinn skjer i knapp B "på klikk" hendelsesbehandler så snart BIT mottar spillernes svar som angitt av kodemarkørene i bildet:

  1. CHECK -flagget er satt til True - et signal for BIT om å sammenligne gjetningen med spillernes
  2. Poengsummen fortsetter bare hvis begge spillerne har gjettet tall større enn null og innenfor GAME_RANGE -grensen (på 6), og hvis ikke, kalles funksjonen showBadGuess () - den gode gjetningsspilleren vinner et poeng, og den dårlige gjetningspilleren mister et!
  3. Hvis spillerne gjetter samsvarer med BITs, kalles showWin () -funksjonen - spilleren vinner denne runden!
  4. Hvis ikke, kalles showLose () -funksjonen - BIT vinner denne runden!
  5. En kontroll utføres på slutten av hver runde av funksjonen announceWinner () for å se om en av de to spillerne har vunnet ved å score 3 poeng - i så fall er kampen avsluttet og den endelige vinneren blir annonsert og alle poeng og meldinger er nullstille
  6. BIT starter spillet på nytt ved å utstede en utfordring ved å ringe til doChallenge () -funksjonen og venter på at spilleren skal svare og prosessen gjentas

Vi vil diskutere de nye funksjonene i de neste trinnene.

Vente! Hvordan gjetter du NULL?

  • Hvis du ser på random () Math -funksjonen, kan du se at den opprinnelige verdien er satt til Null og ikke kan endres.
  • BIT er derfor fritt til å gjette en null og utfordre spilleren som et resultat av denne begrensningen
  • På samme måte kan den menneskelige spilleren sende inn en null gjetning ved å klikke på knapp B uten å klikke på knapp A først!
  • Hvis dette er tillatt, trenger ikke den menneskelige spilleren å gjøre noen innsats for å spille, og det gir ingen mening!
  • Derfor har denne begrensningen blitt kompensert av Bullet #2. diskutert ovenfor

Trinn 9: Vinn/tap og resten av funksjonene

Vinn/tap og resten av funksjonene
Vinn/tap og resten av funksjonene
Vinn/tap og resten av funksjonene
Vinn/tap og resten av funksjonene
Vinn/tap og resten av funksjonene
Vinn/tap og resten av funksjonene

Alle disse funksjonene kalles med knapp B "on click" hendelsesbehandler som vist i forrige trinn.

Disse funksjonene er ganske rett frem, og på dette tidspunktet bør du bli kjent med den intuitive og narrative naturen til koden som er opprettet av en kombinasjon av passende navngitte variabler og de visuelle attributtene til Blocks Editor.

  1. ShowWin () -funksjonen viser en melding som indikerer at spilleren har vunnet denne utfordringsrunden og øker PLAYER_SCORE -variabelen med 1
  2. På samme måte viser showLose () -funksjonen at spilleren gjorde en dårlig gjetning og tildeler et poeng til BIT ved å øke BIT_SCORE -variabelen med 1
  3. ShowBadGuess () -funksjonen viser et stort X på skjermen som indikerer at en av spillerne gjorde en dårlig gjetning (enten 0 eller større enn 6) - den dårlige spilleren i dette tilfellet mister et poeng, og den andre scorer et poeng!

Og til slutt utfører funksjonen announceWinner () oppgaven med å kunngjøre hvem den store vinneren er etter 3 runder med utfordring/respons etterfulgt av:

  • Tilbakestiller poengsumvariablene PLAYER_SCORE og BIT_SCORE
  • Pause kort og starte et nytt spill ved å ringe til oppstartfunksjonen showMessage () som ble diskutert i forrige trinn (6) i denne IBLE

Til slutt, videre til simulatoren og koden!

Trinn 10: Simulatoren og koden

Simulatoren og koden
Simulatoren og koden

Koden kjører i online simulatoren som ligger her

  • Simulatoren er plassert nederst til venstre på siden
  • Alternativt kan Last ned -knappen brukes til å laste ned koden hvis du har en BBC Microbit hendig
  • Som nevnt i begynnelsen av IBLE, trenger du ikke en BBC Microbit for å bygge koden i Blocks Editor eller for å simulere og teste koden din, selv om det ikke fungerer for nysgjerrige personer som meg selv!

En merknad om redigeringsknappen

  • Hvis du har observert, er koden i det offentlige området, og det er en måte å redigere den ved å bruke Rediger-knappen øverst til høyre
  • Imidlertid vil jeg oppriktig be deg om å lage en kopi av denne koden og endre den slik at den passer dine behov, slik at den originale versjonen bevares av hensyn til denne IBLE

Takk! Og fornøyd koding !!!:-)

Anbefalt: