9. Spel: Karel de Led.

Onderaan deze pagina treft u in het blauw de programmeercode van het ‘Spel: Karel de Led’. Voor het programmeren van dit spel is gebruik gemaakt van de programmeer-taal JavaScript.
Hieronder staat stap-voor-stap beschreven hoe u de code kunt invoeren (knippen/ plakken) in de JAVA-omgeving van de Java Script Blocks Editor en hoe u die op de Micro:bit kunt plaatsen.
Ook staat beschreven hoe u de programmacode desgewenst rechtstreeks op de Micro:bit kunt plaatsen.
Onder de blauwe programmeercode staan de spelregels en staat vermeld hoe u het spel kunt spelen op de Micro:bit.


Programmacode invoeren in JAVA-omgeving van Java Script Blocks Editor en uploaden naar de Micro:bit
1. Selecteer de blauwe programmeercode onder deze tekst door er met ingedrukte linker muisknop over heen slepen.
2. Geef een rechter muisklik in de blauw geselecteerde tekst en klik op ‘Kopiëren’.
3. Surf naar http://microbit.org/
4. Selecteer rechts bovenin bij ‘Language’ de taal ‘Nederlands’.
5. Klik bovenaan de pagina op de knop ‘Aan de slag’.
6. Klik bij ‘Java Script Blockeditor’ op de knop ‘Aan de slag’.
7. Klik links boven op de knop ‘Projecten’ en daarna op de knop ‘Nieuw Project’.
8. Klik onderaan de pagina, links van het icoontje van de diskette, op de tekst ‘Zonder
titel’ en voer daar als titel in ‘Karel de Led’.
9. Klik nu bovenaan de pagina op de knop JavaScript’.
10. Verwijder alle programmacode die op de geopende pagina staat.
11. Druk nu op uw toetsenbord tegelijkertijd op de toetsen CTRL en V (= plakken) en de programmacode van het spel verschijnt op de pagina.
12. U bent nu klaar met programmeren en kunt als volgt het bestand op de Micro:bit plaatsen.
13. Sluit eerst de Micro:bit met de USB-kabel aan op de pc.
14. Klik nu in de Java Script Blocks Editor links onderin op de knop ‘Download’.
15. Wat er nu gebeurt is afhankelijk van de browser die u gebruikt.
a. Gebruikt u bijvoorbeeld Chrome dan verschijnt links onderin het bestand dat u net hebt gedownload. Open de verkenner en versleep dit bestand naar de map Micro:bit.
(Hoogstwaarschijnlijk bevindt die zich op de E: schijf).
Het bestand wordt nu weggeschreven naar de Micro:bit. Is dat gebeurd dan kunt u het programma gebruiken.
b. Gebruik u bijvoorbeeld Edge of de Explorer dan verschijnt er een tussenscherm.
Klik in dit tussenscherm op het pijltje naast ‘Opslaan’ en selecteer ‘Opslaan als’.
Zoek in de mappenstructuur naar de map Micro:bit (Hoogstwaarschijnlijk bevindt die zich op de E: schijf). Klik daarop en klik daarna op ‘Opslaan’.  Het bestand wordt nu weggeschreven naar de Micro:bit. Is dat gebeurd dan kunt u het programma gebruiken.


Programmacode downloaden 
Wilt u de programmacode liever downloaden naar de programmeeromgeving Java Script Blocks Editor i.p.v. die zelf te schrijven, klik dan op de knop ‘Download’ hieronder.
Klik in de pagina die wordt geopend bovenin op de knop ‘Bewerken’.
Het programma wordt nu gedownload en de code komt in beeld.
Handel nu verder zoals hierboven beschreven om het programma op de Micro:bit  te plaatsen.
download-155424_960_720


/**
* Karel the LED
*
* Copy this code into the JavaScript editor and program the board.
* Use the instructions above to complete the challenges.
*/
basic.forever(() => {
if (board.isKarelActive) {
led.toggle(board.karelX, board.karelY)
basic.pause(500)
}
})
input.onButtonPressed(Button.A, () => {
board.pressedA();
updateLeds();
})
input.onButtonPressed(Button.B, () => {
board.pressedB();
updateLeds();
})
input.onGesture(Gesture.Shake, () => {
board.shake();
updateLeds();
})
input.onButtonPressed(Button.AB, () => {
board.pressedAB();
updateLeds();
})
function updateLeds() {
for (let j = 0; j < 5; j++) {
for (let k = 0; k < 5; k++) {
if (board.ledState[j][k]) {
led.plot(k, j);
} else {
led.unplot(k, j);
}
}
}
}
const board = new Board();
enum Direction {
UP = 0,
LEFT,
DOWN,
RIGHT
}
class Board {
public isKarelActive: boolean;
public karelX: number;
public karelY: number;

public ledState: Array < Array < boolean >>;
private karelDirection: Direction;

constructor() {
this.isKarelActive = true;
this.karelX = 2;
this.karelY = 2;
this.karelDirection = Direction.UP;
this.ledState =[];
for (let i = 0; i < 5; i++) {
this.ledState.push([false, false, false, false, false]);
}
}

pressedA() {
if (!this.isKarelActive) {
return;
}
this.karelDirection = (this.karelDirection + 1) % 4;
}

pressedB() {
if (!this.isKarelActive) {
return;
}
this.ledState[this.karelY][this.karelX] = true;
this.moveKarel()
}

shake() {
if (!this.isKarelActive) {
return;
}
this.moveKarel()
}

private moveKarel() {
if (!this.isKarelActive) {
return;
}
switch (this.karelDirection) {
case Direction.UP:
if (this.karelY > 0) {
this.karelY -= 1;
}
break;
case Direction.LEFT:
if (this.karelX > 0) {
this.karelX -= 1;
}
break;
case Direction.DOWN:
if (this.karelY < 4) {
this.karelY += 1;
}
break;
case Direction.RIGHT:
if (this.karelX < 4) {
this.karelX += 1;
}
break;
}
}

pressedAB() {
this.isKarelActive = !this.isKarelActive;
}

}


Spelregels.
Op de voorzijde van de Micro:bit bevinden zich 25 ledlampjes.
Teken op een velletje papier een raster van 5 bij 5 vakjes, waarbij ieder vakje staat voor een ledlampje.
Teken in dit raster met kruisjes een willekeurig patroon.
Bij het ‘Spel Karel de Led’ is het de bedoeling dat de ledlampjes op de Micro:bit volgens dit patroon aan het branden worden gebracht.

Als het spel begint brandt het middelste ledje.
*  A-knop – linksom draaien
Door op de A-knop te drukken verandert u van richting. Er gebeurt niets zichtbaars maar u verandert er de richting waarmee u zo meteen uw weg gaat vervolgen.
*  B-knop – een stap voorwaarts 
U gaat nu een stap voorwaarts (er begint een ledje te branden) in de richting die u hebt gekozen met de A-knop.
*  Schudden met de Micro:bit
Door met de Micro:bit te schudden wordt er een vakje overgeslagen (dit vakje gaat niet branden).
*  A+B knop tegelijkertijd indrukken – resultaat tonen.
Als u de A en B knop tegelijkertijd indrukt verschijnt het patroon (m.u.v. het knipperende ledje) dat u op dat moment hebt getekend.
Drukt u weer op de A en B knop dan keert mu weer terug in de omgeving waar u het spel verder kunt spelen.
*  Resetknop
Drukt u op de resetknop aan de achterzijde van de Micro:bit dan begint het spel van voor af aan.

Bouw m.b.v. de knoppen A, B, A+B en het schudden van de Micro:bit een patroon van brandende led-lichtjes dat overeenkomt met het patroon op het velletje papier.
Tip!!!   Laat anderen een patroon tekenen en bouw dat zelf na.