Inhoudsopgave:

Geheugenpuzzelspel met een BBC MicroBit - Ajarnpa
Geheugenpuzzelspel met een BBC MicroBit - Ajarnpa

Video: Geheugenpuzzelspel met een BBC MicroBit - Ajarnpa

Video: Geheugenpuzzelspel met een BBC MicroBit - Ajarnpa
Video: Programmeer een kamer alarm met je Microbit 2024, Juli-
Anonim
Image
Image

Als je niet weet wat een BBC MicroBit is, is het eigenlijk een heel klein apparaatje dat je kunt programmeren om in- en uitgangen te hebben. Een beetje zoals een Arduino, maar dan meer uitgewerkt.

Wat ik echt geweldig vond aan de MicroBit, was dat hij twee ingebouwde invoerknoppen en een 5 x 5 led-matrix heeft!

Dus, dacht ik, waarom maak je geen eenvoudig te maken, maar moeilijk te spelen geheugenpuzzelspel!

ps: als je niet wilt coderen, zal ik het.hex-bestand bijvoegen om het rechtstreeks naar de MicroBit te uploaden.

Benodigdheden

Alles wat je nodig hebt is

1) BBC MicroBit

2) Laptop of pc om de Microbit te programmeren

3) Een beetje geduld!

Stap 1: Maak een project met behulp van het online op blokken gebaseerde coderingsplatform, Makecode

Ga naar https://makecode.microbit.org/ en maak een nieuw project aan. Dit is waar we de code voor ons spel gaan maken.

Hier is mijn bijgevoegde code:

Stap 2: Wat is het spel?

Zie dit als een Simon Says-spel met twee knoppen.

Het scherm toont een reeks combinaties van A en B en de speler moet de reeks onthouden en deze vervolgens invoeren met de A- en B-knop op de MicroBit.

Om het spel steeds moeilijker te maken, zullen we het aantal letters elke ronde met 2 verhogen en ook de tijd verkorten dat elke letter op het scherm blijft.

Laten we gaan!

Stap 3: Het is CODEERTIJD!

Nou, niet helemaal. Omdat de makercode-website echt beginnersvriendelijk is en iets heeft dat blokcodering wordt genoemd. Hier nemen we gewoon blokken en combineren we met meer blokken! Geweldig, juist!

Eerst moeten we begrijpen waarvoor we moeten coderen.

In de startblokken zullen we de globale variabelen toevoegen en indien nodig de helderheid wijzigen.

"niveau"=1, "Vertraging" = 500, "set.score" = 0.

We zullen de scorefunctionaliteit gebruiken om de score bij te houden.

In ons spel is de eerste stap het kiezen van een willekeurige letter: A of B.

We kunnen dit doen door eerst willekeurig tussen 1 en 2 te selecteren en vervolgens A toe te wijzen aan 1 en B aan 2 en op te slaan in een variabele "AB".

Voila!

nu, voor elke keer dat we A of B selecteren, zullen we het gedurende een periode van "Vertraging" ms op het scherm weergeven.

dit is in een variabele per niveau, we zullen de "Vertraging" met 50 ms verminderen, tot het 50 ms is, door niveau 1 te starten met 500 ms.

Stap 4: Herhaal dit voor elk niveau met een toename van twee letters

Dit bereiken we door het blok "Lengte" aantal keren te herhalen waarbij:

Lengte = 2 + (niveau - 1) x 2.

Wat dit doet is, als we niveau = 1 hebben aan het begin van de lus, en we verhogen het niveau met 1, onze lengte per niveau wordt 2, 4, 6, 8 enzovoort.

Nu, nadat we een letter hebben gegenereerd, willen we deze ook opslaan. Dus stellen we een blanco string "Vraag" in als "Vraag" + "AB"

Dit geeft ons de hele reeks die we letter voor letter hebben gegenereerd.

we hebben ook een soort indicatie nodig om te zien of deze lus is beëindigd of niet, zodat we het antwoord van de speler kunnen krijgen. we doen dit door een variabele met de naam "cond" in het begin in te stellen als 0 en deze vervolgens te wijzigen in 1 als de lus eindigt. eenvoudig!

we moeten ook een break-voorwaarde aan de lus toevoegen. Als het spel voorbij is, hebben we het nodig om uit de lus te breken en geen letters meer te genereren.

We zullen dit allemaal in een functie met de naam "Genereren" plaatsen, een startafbeelding toevoegen, daar een afbeelding plaatsen, een ? op het einde, en boem!

Stap 5: Het antwoord krijgen

Wanneer de gebruiker op A of B drukt, moeten we die informatie opslaan en een string "Antwoord" maken, zodat we deze kunnen vergelijken met de "Vraag".

We doen dit door de invoer alleen te krijgen als "cond" = 1 om te voorkomen dat de speler het antwoord invoert terwijl de "Vraag" wordt weergegeven.

We combineren de invoer vervolgens tot een string en slaan deze op als een "Antwoord".

meegeven?

Stap 6: het antwoord controleren

Nu vergelijken we de "Vraag" die we hebben gegenereerd met het "Antwoord" dat door de speler is gegeven.

Als ze overeenkomen, gaan we naar het volgende niveau, anders… SPEL OVER!!!

En aan het eind geven we de score weer.

Dit houden we ook in een functie genaamd "Check" die wordt aangeroepen als "cond" = 1 bij het verkrijgen van een invoer, anders…. GAME OVER!

Stap 7: Klaar

Nu hoeven we alleen nog maar de code naar de MicroBit te uploaden en vervolgens iedereen die je kent te testen!

Aanbevolen: