Innehållsförteckning:

Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit !: 10 steg
Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit !: 10 steg

Video: Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit !: 10 steg

Video: Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit !: 10 steg
Video: EGG HUNT och SECRET PET i ROBLOX Bubble Gum Simulator! 2024, November
Anonim
Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit!
Vad tänker bitarna på? Gör ett enkelt gissningsspel med BBC Microbit!

Jag tog upp ett par BBC Microbits efter att ha läst positiva recensioner om dem i flera artiklar online.

I ett försök att bekanta mig med BIT lekte jag med Microsoft Blocks Editor online i ett par timmar och kom på ett enkelt gissningsspel.

I denna IBLE kommer vi att prata om spelreglerna och navigera genom de funktioner som samlats i olika kodblock i Block Editor.

Slutligen kan upphetsad publik navigera till onlinesimulatorn och ge detta enkla spel ett skott.

Låt oss börja.

Steg 1: Innan du börjar …

Innan du börjar …
Innan du börjar …
Innan du börjar …
Innan du börjar …

Hårdvaran

BBC Microbit -kortet är lätt att bekanta sig med. För denna IBLE behöver du bara veta att det är ett litet kort med 2 tryckknappar, en rad små lysdioder och ett mikro-USB-uttag som fungerar som strömförsörjning och ett sätt att ladda ett program på kortet..

Mängden små lysdioder kan programmeras för att lysa upp i olika mönster.

Notera:

Du behöver inte den fysiska brädan för denna IBLE! BBC Microbit -webbplatsen har en online -simulator för att testa koden du utvecklar online.

Mjukvaran

Denna IBLE går inte in på detaljer om att komma igång med BBC Microbit och/eller Online Blocks Editor.

Publiken uppmuntras att utforska denna BBC Micorbit -resurs innan de fortsätter till nästa steg.

BBC Microbit har utformats för att lära ut programmering med ett mycket användarvänligt tillvägagångssätt och därför är bekantskap med ett annat programmeringsspråk trevligt att ha, men krävs inte särskilt om du ska använda Microsoft Blocks Editor för att lära dig programmering.

Ändå har jag ännu inte stött på en produkt som är så lätt att komma igång med än BBC Microbit, med tanke på att jag äger och spelar med flera andra programmeringsplattformar för mikrokontroller.

Steg 2: Regler för gissningsspelet

Regler för gissningsspelet
Regler för gissningsspelet

Spelreglerna är följande:

  1. Vid uppstart tänker BIT på ett nummer och utmanar den mänskliga spelaren att gissa vad det är genom att skriva ut ett meddelande på dess LED -panel och väntar på svar
  2. Spelaren gör en gissning och trycker på vänster tryckknapp (A) lika många gånger som svaret - Exempel, om spelaren gissat 5, trycks knappen 5 gånger
  3. För att skicka svaret till BIT trycker spelaren på den högra tryckknappen (B) en gång!
  4. Om spelarna gissar är rätt, gör spelaren en poäng, om inte BIT får en poäng
  5. Om en spelare gissade ett nummer utanför intervallet, gör den andra spelaren en poäng - BIT visar ett stort X på sin LED -display och fortsätter att gissa ett nytt nummer och upprepa utmaningen; Exempel: Om BIT utmanade dig att gissa ett tal mellan 1 och 5, och du gissade 6, eller om du gissade NOLL (genom att helt enkelt trycka på knapp B innan du tryckte på knapp A), är den omgången ogiltig
  6. Utmaningssvaret fortsätter tills en av spelarna får de högsta tillåtna poängen

Starta ett nytt spel:

För att starta ett nytt spel när som helst, helt enkelt ge BIT en skaka! Eller helt enkelt koppla bort och anslut strömmen igen.

Steg 3: Blockprogrammet: variabler

Blockprogrammet: Variabler
Blockprogrammet: Variabler

Programmet använder några variabler som namnges för att matcha deras funktioner som anges nedan. Dessa variabler kan skapas genom att klicka på fliken Programmering av variabler i blockredigeraren

BIT_SCORE - Håller koll på poängen som BIT har gjort

bitGuessed - Denna variabel innehåller det slumpmässiga värdet som BIT gissar

CHECK - när den är inställd på True kontrollerar BIT om spelarnas gissning är lika med BIT -gissningen

GAME_RANGE - Detta nummer begränsar hur högt BIT eller en spelare kan gissa

Exempel: Om den är inställd på 6 kan båda spelarna gissa från 1 till 6

MSG - En sträng som ändras för att visa olika meddelanden baserat på spelets sammanhang

PLAYER_SCORE - håller reda på poängen som spelaren har gjort

playerGuess - Antalet gissat av spelaren spelas in i denna variabel

NOTERA

Den allra första variabeln som heter objekt är en allmän och standardvariabel och kan ignoreras

Steg 4: Funktionerna

Funktionerna
Funktionerna

Som en del av inlärningsprocessen och för bättre organisation organiserades koden i ett antal funktioner som kan kallas eller åberopas i huvudprogrammet. Precis som variabler kan funktionerna skapas och nås genom att klicka på fliken Avancerat> Funktionsprogrammering.

Nedan följer en kort beskrivning av funktionerna:

announceWinner - Denna funktion skriver ut det vinnande meddelandet till den vinnande spelaren

doChallenge - Funktionen som BIT kallar för att gissa ett tal och utmana spelaren

showBadGuess - Visar ett meddelande med ett stort X på LED -panelen om någon av spelarna gissar utanför det tillåtna intervallet

showLose - kallas om BIT vinner en utmaningsrunda över spelaren

showMessage - presenterar ett meddelande för att utmana spelaren att gissa ett tal inom ett angivet intervall

showWin - kallas till när spelaren vinner gissningsrundan över BIT

Steg 5: Programstart och Shake Events & Event Handlers

Programstart och Shake Events & Event Handlers
Programstart och Shake Events & Event Handlers

"På start" och "på skaka" är händelsehanterare som kallas respektive när "start" händelse och "skaka" händelser inträffar. Såsom framgår av Blocks -koden är det som händer när dessa två händelsehanterare anropas nästan detsamma som i:

  • ShowMessage () -funktionen kallas för att visa meddelandet när spelet börjar
  • Det är en kort paus på 650 milli-sekunder efter att meddelandet visas
  • DoChallenge () -funktionen kallas där BIT gissar ett tal och väntar på att den mänskliga spelaren skickar in en gissning

Vi kommer att täcka de två funktionerna i nästa steg.

Som sagt, det finns grundläggande skillnader mellan händelserna "vid start" och "på skaka":

  1. Händelsehanteraren "vid start" körs varje gång BIT startas - som vid bortkoppling och återanslutning av ström till BIT
  2. Vissa saker som bara måste hända en gång när programmet startas definieras i "på start" och ingen annanstans i hela programmet
  3. En sådan sak är att initialisera variabeln GAME_RANGE - i det här fallet initialiseras den till 6 vilket innebär att spelarna kan gissa ett tal mellan 1 och 6
  4. Eftersom "vid start" är en grundläggande BIT -funktion är det inte konstigt att den är tillgänglig från fliken Basic programmering i Block Editor
  5. "On shake" är å andra sidan en händelsehanterare som anropas när användaren ger en input till BIT i form av en snabb shake
  6. Därför kan händelsehanteraren "on shake" hittas på fliken Inmatningsprogrammering i Block Editor

Steg 6: Startmeddelande och utmaningsfunktioner

Startmeddelandet och utmaningsfunktionerna
Startmeddelandet och utmaningsfunktionerna
Startmeddelandet och utmaningsfunktionerna
Startmeddelandet och utmaningsfunktionerna
Startmeddelandet och utmaningsfunktionerna
Startmeddelandet och utmaningsfunktionerna

ShowMessage () Startmeddelandefunktionen är en enkel funktion som rensar BITs LED -paletten med ett tydligt skärmkommando och visar ett rullande meddelande som utmanar spelaren att gissa ett tal.

Som framgår av funktionsblocket showMessage, läggs ett par fasta strängar ihop till variabeln GAME_RANGE för att visa ett enkelt meddelande som säger:

Gissa 0 - 6!

DoChallenge () -funktionen anropas i början av varje utmaningsrunda och gör därför följande sett från funktionsblocket doChallenge:

  1. Initierar playerGuess -variabeln till noll innan den accepterar en ny input från den mänskliga spelaren
  2. Initierar CHECK -variabeln till falsk - vilket betyder att omgången är på väg att börja och det är inte dags att jämföra de siffror som gissats av båda spelarna
  3. Därefter, och viktigast, väljer BIT ett slumpmässigt tal inom intervallet som definieras av GAME_RANGE och registrerar det i bitGuessed -variabeln
  4. Slutligen lyser LED -paletten upp med ett frågetecken som uppmanar den mänskliga spelaren att komma in som svar på BITs -utmaningen!

Notera

Om variabelvärdet GAME_RANGE ändras som diskuterades i föregående steg kan ditt spel se ut och agera lite annorlunda.

Kopplingsfunktionen är en strängfunktion och kan nås från fliken Textprogrammering i blockredigeraren

Steg 7: Button a Click -händelsen - svara på BITs -utmaningen

The Button a Click -händelse - svara på BITs -utmaningen!
The Button a Click -händelse - svara på BITs -utmaningen!

När det stora frågetecknet dyker upp på BITs LED -skärm är det bara att göra följande för att svara på utmaningen för den mänskliga spelaren:

  1. Gissa vilket nummer BIT kan tänka mellan 0 och 6
  2. Tryck på knappen A så många gånger ditt svar är - Exempel om ditt svar är 3, tryck sedan på knapp A 3x gånger

Det är uppenbart att ett tryck på knappen är en användarinmatning och därför är händelsehanteraren "on button" tillgänglig via fliken Inmatningsprogrammering i blockredigeraren. Varje gång användaren trycker på knapp A gör denna händelsehanterare följande:

  • Öka värdet på playerGuess -variabeln med 1 så länge det är inom GAME_RANGE -gränsen (6 i det här fallet)
  • Om spelaren skickar in 7 eller högre, är gissningen ogiltig och playerGuess återställs till noll, vilket i huvudsak ogiltigförklarar spelarens gissning

Nästa åtgärd är att skicka svaret på utmaningen, som vi kommer att gå igenom i nästa steg.

Steg 8: Button B Click Event - Skicka svar på BITs Challenge

Button B Click Event - Skicka svar på BITs Challenge!
Button B Click Event - Skicka svar på BITs Challenge!
Button B Click Event - Skicka svar på BITs Challenge!
Button B Click Event - Skicka svar på BITs Challenge!

Den mänskliga spelaren skickar svaret till BIT genom att trycka på knapp B en gång. Ett antal steg sker i händelsehanteraren Button B "on click" så snart BIT tar emot spelarnas svar enligt kodmarkörerna i bilden:

  1. CHECK -flaggan är satt till True - en signal för BIT att jämföra dess gissning med spelarnas
  2. Poängen fortsätter endast om båda spelarna har gissat siffror som är större än noll och inom GAME_RANGE -gränsen (på 6) och om inte, kallas funktionen showBadGuess () - den gissande spelaren vinner en poäng, och den dåliga gissningen förlorar en!
  3. Om spelarna gissar matchar BIT: s, kallas showWin () - spelaren vinner denna omgång!
  4. Om inte, kallas showLose () -funktionen - BIT vinner denna omgång!
  5. En kontroll utförs i slutet av varje omgång av funktionen announceWinner () för att se om en av de två spelarna har vunnit genom att göra 3 poäng - i så fall är spelet avslutat och den slutliga vinnaren meddelas och alla poäng och meddelanden är återställa
  6. BIT startar om spelet genom att utfärda en utmaning genom att ringa till funktionen doChallenge () och väntar på att spelaren ska svara och processen upprepas

Vi kommer att diskutera de nya funktionerna i nästa steg.

Vänta! Hur gissar du NOLL?

  • Om du tittar på funktionen random () Math kan du se att dess ursprungliga värde är inställt på noll och inte kan ändras.
  • BIT är därför fritt att gissa en nolla och utmana spelaren till följd av denna begränsning
  • På samma sätt kan den mänskliga spelaren skicka in en nollgissning genom att helt enkelt klicka på knapp B utan att först klicka på knapp A!
  • Om detta är tillåtet behöver den mänskliga spelaren inte anstränga sig för att spela och det är ingen mening!
  • Därför har denna begränsning kompenserats av Bullet #2. diskuterats ovan

Steg 9: Vinn/förlora och resten av funktionerna

Vinn/förlora och resten av funktionerna
Vinn/förlora och resten av funktionerna
Vinn/förlora och resten av funktionerna
Vinn/förlora och resten av funktionerna
Vinn/förlora och resten av funktionerna
Vinn/förlora och resten av funktionerna

Alla dessa funktioner kallas med knappen B "on click" -händelsehanteraren som sett i föregående steg.

Dessa funktioner är ganska raka framåt och vid den här tiden bör du bekanta dig med kodens intuitiva och berättande karaktär som skapas av en kombination av lämpligt namngivna variabler och blockredigerarens visuella attribut.

  1. ShowWin () -funktionen visar ett meddelande som indikerar att spelaren har vunnit denna utmaningsrunda och ökar variabeln PLAYER_SCORE med 1
  2. På samma sätt visar showLose () -funktionen att spelaren gjorde en dålig gissning och tilldelar BIT en poäng genom att öka BIT_SCORE -variabeln med 1
  3. ShowBadGuess () -funktionen visar ett stort X på skärmen som indikerar att en av spelarna gjorde en dålig gissning (antingen 0 eller större än 6) - den dåliga spelaren förlorar i detta fall en poäng, och den andra gör en poäng!

Och slutligen, funktionen announceWinner () utför uppgiften att tillkännage vem den stora vinnaren är efter 3 omgångar med utmaning/svar följt av:

  • Återställer variablerna PLAYER_SCORE och BIT_SCORE
  • Pausa kort och starta ett nytt spel genom att ringa startfunktionen showMessage () som diskuterades i föregående steg (6) i denna IBLE

Slutligen vidare till simulatorn och koden!

Steg 10: Simulatorn och kod

Simulatorn och koden
Simulatorn och koden

Koden körs i onlinesimulatorn som finns här

  • Simulatorn finns längst ner till vänster på sidan
  • Alternativt kan nedladdningsknappen användas för att ladda ner koden om du har en BBC Microbit till hands
  • Som nämnts i början av IBLE behöver du inte en BBC Microbit för att bygga koden i Block Editor eller för att simulera och testa din kod, även om det inte fungerar för nyfikna individer som jag själv!

En kommentar om redigeringsknappen

  • Om du har observerat är koden i det offentliga området och det finns ett sätt att redigera den med knappen Redigera längst upp till höger
  • Jag vill dock uppriktigt begära att du gör en kopia av den här koden och ändrar den så att den passar dina behov så att originalversionen bevaras i intresset för denna IBLE

Tack! Och glad kodning !!!:-)

Rekommenderad: