Indholdsfortegnelse:

Hvad tænker bit? Lav et simpelt gætspil med BBC Microbit !: 10 trin
Hvad tænker bit? Lav et simpelt gætspil med BBC Microbit !: 10 trin

Video: Hvad tænker bit? Lav et simpelt gætspil med BBC Microbit !: 10 trin

Video: Hvad tænker bit? Lav et simpelt gætspil med BBC Microbit !: 10 trin
Video: DEN LÆKSTE BOGRAC!! SÅDAN LAGER MAN EN RET, DER VIL EROBRE MILLIONER 2024, November
Anonim
Hvad tænker bit? Lav et simpelt gættspil med BBC Microbit!
Hvad tænker bit? Lav et simpelt gættspil med BBC Microbit!

Jeg hentede et par BBC Microbits efter at have læst positive anmeldelser om dem i flere onlineartikler.

I et forsøg på at gøre mig bekendt med BIT, legede jeg rundt med online Microsoft Blocks Editor i et par timer og kom med et simpelt gættspil.

I denne IBLE vil vi tale om spillereglerne og navigere gennem funktionerne samlet i forskellige kodeblokke i Blocks Editor.

Endelig kan et spændt publikum navigere til online simulatoren og give dette enkle spil et skud.

Lad os komme igang.

Trin 1: Inden du går i gang …

Inden du går i gang …
Inden du går i gang …
Inden du går i gang …
Inden du går i gang …

Hardwareen

BBC Microbit -kortet er let at sætte sig ind i. Til denne IBLE er alt hvad du behøver at vide, at det er et lille bræt med 2 trykknapper, en række små lysdioder og et mikro-USB-stik, der fungerer som strømforsyning og et middel til at indlæse et program på kortet..

Sortimentet af små LED'er kan programmeres til at lyse op i forskellige mønstre.

Bemærk:

Du behøver ikke det fysiske bord til denne IBLE! BBC Microbit -webstedet har en online simulator til at teste den kode, du udvikler online.

Softwaren

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

Publikum opfordres til at udforske denne BBC Micorbit -ressource, inden de går videre til de næste trin.

BBC Microbit er designet til at lære programmering ved hjælp af en meget brugervenlig tilgang, og derfor er fortrolighed med et andet programmeringssprog en god ting at have, men ikke påkrævet, især hvis du vil bruge Microsoft Blocks Editor til at lære programmering.

Ikke desto mindre har jeg endnu ikke stødt på et produkt, der er så let at komme i gang med end BBC Microbit, da jeg ejer og spiller med flere andre mikro-controller programmeringsplatforme.

Trin 2: Regler for gættespil

Regler for gættespil
Regler for gættespil

Spillets regler er som følger:

  1. Ved opstart tænker BIT på et nummer og udfordrer den menneskelige spiller til at gætte, hvad dette nummer er ved at udskrive en besked på dets LED -panel og venter på et svar
  2. Spilleren gætter og trykker på den venstre trykknap (A) lige så mange gange som svaret - Eksempel, hvis spilleren gættede 5, trykkes der på knappen 5 gange
  3. For at indsende svaret til BIT, trykker spilleren på den højre trykknap (B) én gang!
  4. Hvis spillerne gætter er rigtige, så scorer spilleren et point, hvis ikke BIT får et point
  5. Hvis en spiller gættede et tal uden for intervallet, scorer den anden spiller et point - BIT viser et stort X på sin 'LED -skærm og fortsætter med at gætte et nyt nummer og gentager udfordringen; Eksempel: Hvis BIT udfordrede dig til at gætte et tal mellem 1 og 5, og du gættede 6, eller hvis du gættede NUL (ved blot at trykke på knap B, før du trykker på knap A), er den runde ugyldig
  6. Udfordringsresponset fortsætter, indtil en af spillerne scorer de maksimalt tilladte point

Start af et nyt spil:

For at starte et nyt spil når som helst, skal du bare give BIT et ry! Eller simpelthen afbryde og tilslutte strømmen igen.

Trin 3: Blocks -programmet: Variabler

Blocks -programmet: Variabler
Blocks -programmet: Variabler

Programmet bruger et par variabler navngivet til at matche deres funktioner, der er anført nedenfor. Disse variabler kan oprettes ved at klikke på fanen Programmering af variabler i Blocks Editor

BIT_SCORE - Holder styr på point scoret af BIT

bitGuessed - Denne variabel indeholder den tilfældige værdi, som BIT gætter på

CHECK - når den er indstillet til True, kontrollerer BIT, om spillerne gætter er lig med BITs gætte

GAME_RANGE - Dette tal begrænser, hvor højt BIT eller en spiller kan gætte

Eksempel: Hvis den er sat til 6, kan begge spillere gætte fra 1 til 6

MSG - En streng, der ændres til at vise forskellige meddelelser baseret på spillets kontekst

PLAYER_SCORE - holder styr på de point, spilleren har scoret

playerGuess - Antallet, som spilleren gætter på, registreres i denne variabel

BEMÆRK

Den allerførste variabel med navnet element er en generel og standardvariabel og kan ignoreres

Trin 4: Funktionerne

Funktionerne
Funktionerne

Som en del af læringsprocessen og for bedre organisering blev koden organiseret i en række funktioner, der kunne kaldes eller påberåbes i hovedprogrammet. Ligesom variabler kan funktionerne oprettes og tilgås ved at klikke på fanen Avanceret> Funktionsprogrammering.

Her er en kort beskrivelse af funktionerne:

announceWinner - Denne funktion udskriver den vindende meddelelse adresseret til den vindende spiller

doChallenge - Funktionen, som BIT kalder for at gætte et tal og udgøre en udfordring for spilleren

showBadGuess - Viser en besked med et stort X på LED -panelet, hvis en af spillerne gættede uden for det tilladte område

showLose - kaldes hvis BIT vinder en udfordringsrunde over spilleren

showMessage - præsenterer en besked for at udfordre spilleren til at gætte et tal inden for et bestemt område

showWin - kaldes til, når spilleren vinder gætterunden over BIT

Trin 5: Programstart og Shake Events & Event Handlers

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

"Start" og "on shake" er hændelsesbehandlere, der kaldes henholdsvis, når begivenheden "start" og "shake" sker. Som det ses fra Blocks -koden, er det, der sker, når disse to event -håndterere kaldes, næsten det samme som i:

  • ShowMessage () -funktionen kaldes for at vise meddelelsen, når spillet starter
  • Der er en kort pause på 650 milli-sekunder efter, at meddelelsen vises
  • Funktionen doChallenge () kaldes, hvor BIT gætter et tal og venter på, at den menneskelige spiller sender et gæt

Vi vil dække de to funktioner i det næste trin.

Når det er sagt, er der grundlæggende forskelle mellem begivenhedsbehandlerne "on start" og "on shake":

  1. Hændelseshandleren "on start" kører hver gang BIT startes - som ved afbrydelse og tilslutning af strøm til BIT
  2. Visse ting, der kun skal ske én gang, når programmet starter, er defineret i "on start" og ingen andre steder i hele programmet
  3. En sådan ting er at initialisere GAME_RANGE -variablen - i dette tilfælde initialiseres den til 6, hvilket betyder, at spillerne kan gætte et tal mellem 1 og 6
  4. Da "ved start" er en grundlæggende BIT -funktion, er det ikke underligt, at den er tilgængelig fra fanen Grundlæggende programmering i Blocks Editor
  5. "On shake" på den anden side er en hændelseshandler, der kaldes, når brugeren giver et input til BIT i form af en hurtig shake
  6. Derfor kan hændelsesbehandleren "on shake" findes inden for fanen Input programmering i Blocks Editor

Trin 6: Startmeddelelsen og udfordringsfunktioner

Startmeddelelsen og udfordringsfunktioner
Startmeddelelsen og udfordringsfunktioner
Startmeddelelsen og udfordringsfunktioner
Startmeddelelsen og udfordringsfunktioner
Startmeddelelsen og udfordringsfunktioner
Startmeddelelsen og udfordringsfunktioner

ShowMessage () Startmeddelelsesfunktionen er en enkel funktion, der sletter BITs LED -paletten med en klar skærmkommando og viser en rullende meddelelse, der udfordrer spilleren til at gætte et tal.

Som det ses fra funktionsblokken showMessage, føjes et par faste stykker streng til GAME_RANGE -variablen for at vise en simpel besked, der siger:

Gæt 0 - 6!

Funktionen doChallenge () kaldes i begyndelsen af hver udfordringsrunde og gør derfor følgende set fra doChallenge -funktionsblokken:

  1. Initialiserer playerGuess -variablen til nul, før den accepterer et nyt input fra den menneskelige afspiller
  2. Initialiserer CHECK -variablen til falsk - hvilket betyder, at runden er ved at begynde, og det er endnu ikke tid til at sammenligne de tal, som begge spillere gættede
  3. Dernæst og mest væsentlige vælger BIT et tilfældigt tal inden for det område, der er defineret af GAME_RANGE og registrerer det i bitGuessed -variablen
  4. Endelig lyser LED -paletten med et spørgsmålstegn, der beder den menneskelige spiller om et input som svar på BITs -udfordringen!

Bemærk

Hvis værdien GAME_RANGE variabel ændres som diskuteret i det foregående trin, kan dit spil se og virke lidt anderledes.

Deltagefunktionen er en strengfunktion og kan være tilgængelig fra fanen Tekstprogrammering i Blocks Editor

Trin 7: Button a Click -begivenheden - Svar på BITs -udfordringen

The Button a Click -begivenhed - Svar på BITs -udfordringen!
The Button a Click -begivenhed - Svar på BITs -udfordringen!

Når det store spørgsmålstegn vises på BITs LED -skærmen, svarer udfordringen for den menneskelige spiller ganske enkelt på følgende:

  1. Gæt hvilket nummer BIT måske tænker mellem 0 og 6
  2. Tryk på knappen A så mange gange som dit svar er - Eksempel hvis dit svar er 3, tryk derefter på knappen A 3x gange

Det er klart, at tryk på knappen er et brugerinput, og derfor er "on button" -hændelseshandleren tilgængelig via fanen Inputprogrammering i Blocks -editoren. Hver gang brugeren trykker på knap A, gør denne hændelseshandler følgende:

  • Forøg værdien af playerGuess -variablen med 1, så længe den er inden for grænsen GAME_RANGE (6 i dette tilfælde)
  • Hvis spilleren indsender 7 eller højere, er gætten ugyldig, og playerGuess nulstilles tilbage til nul, hvilket i det væsentlige ugyldiggør spillerens gæt

Den næste handling er at indsende svaret på udfordringen, som vi vil gå igennem i det næste trin.

Trin 8: Knap B -klikbegivenhed - Send svar på BITs -udfordringen

Button B Click -begivenheden - Send svar på BITs -udfordringen!
Button B Click -begivenheden - Send svar på BITs -udfordringen!
Button B Click -begivenheden - Send svar på BITs -udfordringen!
Button B Click -begivenheden - Send svar på BITs -udfordringen!

Den menneskelige spiller sender svaret til BIT ved at trykke på knap B én gang. Et antal trin sker i Button B "on click" event -handler, så snart BIT modtager spillernes svar som angivet af kodemarkørerne på billedet:

  1. CHECK -flaget er sat til True - et signal for BIT om at sammenligne dets gæt med spillernes
  2. Scoringen fortsætter kun, hvis begge spillere har gættet tal større end nul og inden for GAME_RANGE -grænsen (på 6), og hvis ikke, kaldes showBadGuess () -funktionen - den gode gætspiller vinder et point, og den dårlige gætspiller mister et!
  3. Hvis spillerne gætter matcher BIT'ernes, kaldes showWin () -funktionen - spilleren vinder denne runde!
  4. Hvis ikke, kaldes showLose () -funktionen - BIT vinder denne runde!
  5. En check udføres i slutningen af hver runde af funktionen announceWinner () for at se, om en af de to spillere har vundet ved at score 3 point - i så fald er spillet afsluttet, og den endelige vinder annonceres, og alle scoringer og meddelelser er Nulstil
  6. BIT genstarter spillet ved at udsende en udfordring ved at ringe til doChallenge () -funktionen og venter på, at spilleren skal svare, og processen gentages

Vi vil diskutere de nye funktioner i de næste trin.

Vente! Hvordan gætter du NULL?

  • Hvis du ser på random () Math -funktionen, kan du se, at dens oprindelige værdi er indstillet til Zero og ikke kan ændres.
  • BIT er derfor frit for at gætte en nul og udfordre spilleren som følge af denne begrænsning
  • På samme måde kan den menneskelige spiller indsende et nul -gæt ved blot at klikke på knap B uden at klikke på knap A først!
  • Hvis dette er tilladt, behøver den menneskelige spiller ikke at gøre nogen indsats for at spille, og det giver ingen mening!
  • Derfor er denne begrænsning blevet kompenseret af Bullet #2. diskuteret ovenfor

Trin 9: Vind/tab og resten af funktionerne

Vind/tab og resten af funktionerne
Vind/tab og resten af funktionerne
Vind/tab og resten af funktionerne
Vind/tab og resten af funktionerne
Vind/tab og resten af funktionerne
Vind/tab og resten af funktionerne

Alle disse funktioner kaldes med knappen B "on click" -hændelseshandler som set i det foregående trin.

Disse funktioner er ret ligetil, og på dette tidspunkt skulle du blive fortrolig med den intuitive og fortællende karakter af koden, der er skabt af en kombination af passende navngivne variabler og de visuelle attributter i Blocks Editor.

  1. ShowWin () -funktionen viser en meddelelse, der angiver, at spilleren har vundet denne udfordringsrunde og øger variablen PLAYER_SCORE med 1
  2. Tilsvarende viser showLose () -funktionen, at spilleren lavede et dårligt gæt og tildeler BIT et point ved at øge BIT_SCORE -variablen med 1
  3. ShowBadGuess () -funktionen viser et stort X på skærmen, der angiver, at en af spillerne lavede et dårligt gæt (på enten 0 eller større end 6) - den dårlige spiller taber i dette tilfælde et point, og den anden scorer et point!

Og endelig udfører funktionen announceWinner () opgaven med at annoncere, hvem den store vinder er efter 3 runder med udfordring/respons efterfulgt af:

  • Nulstilling af variablerne PLAYER_SCORE og BIT_SCORE
  • Pause kort og starte et nyt spil ved at kalde showMessage () startfunktionen diskuteret i det foregående trin (6) i denne IBLE

Endelig videre til simulatoren og koden!

Trin 10: Simulatoren og koden

Simulatoren og koden
Simulatoren og koden

Koden kører i onlinesimulatoren her

  • Simulatoren er placeret nederst til venstre på siden
  • Alternativt kan knappen Download bruges til at downloade koden, hvis du har en BBC Microbit praktisk
  • Som nævnt i begyndelsen af IBLE, behøver du ikke en BBC Microbit for at bygge koden i Blocks Editor eller for at simulere og teste din kode, selvom det ikke virker for nysgerrige personer som mig selv!

En bemærkning om knappen Rediger

  • Hvis du har observeret, er koden i det offentlige domæne, og der er en måde at redigere den ved at bruge knappen Rediger øverst til højre
  • Jeg vil imidlertid oprigtigt anmode dig om at tage en kopi af denne kode og ændre den, så den passer til dine behov, så den originale version bevares i interesse for denne IBLE

Tak! Og glad kodning !!!:-)

Anbefalede: