Memory

Memory

Memory is een spelletje dat je misschien zelf al wel gespeeld hebt.

Je hebt een aantal kaarten, die omgekeerd op tafel liggen. Van elke afbeelding zijn er precies 2 kaarten, het is de bedoeling om de kaarten met dezelfde afbeelding te vinden.

Vandaag zullen we dit spel in Scratch programmeren.

Je leert

  • Hoe je informatie over anders sprites (zoals de positie) kan opvragen.

STAP 1: aanmaken sprites

Zoals steeds beginnen we met het aanmaken van de sprites.

Wij beginnen met het aanmaken van 6 kaartjes. Als je meer kaartjes wil, mag je dit ook doen.

Deze sprites moeten 2 uiterlijken hebben, de voor- en achterkant. Hieronder kan je een voorbeeld zien, maar doe zeker je eigen ding!

1

2

Je zal 3 verschillende tekeningen moeten kiezen, die elk 2 keer voorkomen.

voorbeeld kaartjes

STAP 2: kaartjes verspreiden

Nu willen we bij de start van het spel, de kaartjes willekeurig verdelen. Over deze stap zullen we even moeten nadenken. We geven elke plaats een getal, zie de figuur hieronder.

nummers plaatsen

Verder geven we ook onze sprites een getal.

3

Aan elke sprite moet een plaats worden toegekend. Dit doen we bij het begin van het spel.

Om de plaatsen op te slaan, kunnen we het gemakkelijkst een lijst gebruiken.

4

Op nummer 1 van de lijst komt de plaats van sprite 1, op nummer 2 van de lijst staat de plaats van sprite 2, ...

Om de plaatsen willekeurig te verdelen, gebruiken we het volgende blokje:5

We zullen nu één voor één de getallen van 1 tot 6 toevoegen aan de lijst. Probeer je dit uit?

Probeer je het eens uit? Als je het meerdere keren uitprobeert, zal je zien dat er nog iets misloopt. Hoe kan je dit oplossen?

Nu moeten we nog weten waar plaats 1, 2, 3, 4, 5 en 6 zich juist bevinden. We zullen de x-coördinaten en y-coördinaten van de plaatsen in twee nieuwe lijsten zetten. Uiteraard kunnen deze coördinaten bij jou iets anders zijn.

7

Nu moeten we na het kiezen van de plaatsen, de kaartjes op de juiste plaats zetten.

Nu kan je deze code kopiëren naar je andere sprites. Vergeet wel niet het getal aan te passen!

Probeer je eens uit of het werkt?

STAP 3: Het omdraaien van de kaartjes

We zullen nu blokjes aanpassen bij de kaarten. Deze blokjes zullen hetzelfde zijn voor alle kaarten. Op het einde kan je dus deze code kopiëren naar alle kaartjes. Om de code te testen, kan je bijvoorbeeld de code kopiëren naar een aantal kaartjes.

Nu we weten dat het verdelen van de kaartjes werkt, willen we alle kaartjes omdraaien als het spel wordt gestart. Zorg jij hiervoor?

Verder willen we dat de kaart wordt omgedraaid, van zodra je er op klikt.

Nu willen we dat er maar twee kaarten tegelijk omgedraaid kunnen zijn. Je zal dus moeten bijhouden hoeveel kaarten zijn omgedraaid.

STAP 4: Controleren.

Nu moeten we controleren of de twee kaarten die omgedraaid zijn, dezelfde zijn. We moeten dus informatie te weten komen over een andere sprite.

Hiervoor kan je het volgende blokje gebruiken: 

14

Als je op het pijltje klikt, zie je dat je ook kan kiezen voor "uiterlijk".

Hiermee kan je zien welk uiterlijk er bij een andere sprite is weergegeven. Je kan de nummers van het uiterlijk links van de afbeelding vinden:

nummers uiterlijken

We willen het volgende:

  • Als er twee gelijke kaarten zijn omgedraaid, mogen deze kaarten verdwijnen.
  • Als dit niet het geval is, laat je terug de achterkant van de kaarten zien.

Nu kan de speler terug andere kaarten gaan omdraaien. Zorg dat de kaarten wel even zichtbaar blijven, anders kan die de positie niet onthouden!

Proficiat, nu kan je memory spelen! Zorg dat je de code naar de andere sprites kopieert, maar vergeet niet de nummers van de sprite aan te passen.

STAP 5: Extra's

Je spel werkt, maar we kunnen het nog mooier maken. Kies zelf wat je nog doet!

  • Zorg voor een startknop waar je op kan duwen. Als je hierop duwt, start het spel.
  • Zorg voor extra sprites. Zo wordt het spel moeilijker!
  • Zorg voor een boodschap als je het spel hebt gewonnen.
  • Geef een melding na afloop van het spel met het aantal pogingen die nodig waren om alle sets te vinden.

goed gedaan!     Goed gedaan!