logo CoderDojo

Scratch - Snake

We gaan met Scratch het klassieke spel Snake bouwen.

Benodigdheden

Deze opdrachten maak je met Scratch. Als je nog geen account had, maak dit dan eerst aan.

Zet in Scratch eerst de taal op Nederlands via de wereldbol linksboven.

Inleiding

In deze opdracht ga je het klassieke spelletje Snake, dus Slang, programmeren. Je bestuurt in dit spelletje een slang en je doel is door zo veel mogelijk te eten zo lang mogelijk te worden. Maar pas op, als je in je eigen staart bijt dan ben je af!

Dit zijn de stappen die je gaat programmeren:

  1. Maak de slang
  2. Zorg dat de slang kan bewegen
  3. Laat het eten van de slang verschijnen
  4. Maak de slang langer door het eten
  5. Laat het spel eindigen als de slang in de eigen staart bijt

Als je dan nog zin (en tijd) hebt dan zijn er nog allerlei uitbreidingen mogelijk.

Als startpunt voor de opdracht kun je dit project gebruiken (je kunt dan stap 1 van de opdraht overslaan). Je kunt het project zelf gaan bewerken door op de Remix knop boven in Scratch te klikken:

Remix

De opdracht is afgeleid van deze instructies (Github bron).

Maak de slang

Als je gekozen hebt het project helemaal vanaf het begin te doen, ontwerp dan je eigen slang of download deze plaatjes om de twee uiterlijken van de slang mee te maken:

Slang lijf Slang hoofd Volg deze stappen om een sprite van de slang te maken:

  1. Klik op het icoon voor een nieuwe sprite (rechtsonder, plaatje van de kat) en kies voor Upload sprite.
  2. Upload het hoofd van de slang.
  3. Ga naar het tabblad Uiterlijken (linksboven, rechts naast het Code tabblad).
  4. Klik op het icoon voor een nieuw uiterlijk (linksonder, plaatje van de kat) en kies voor Upload uiterlijk.
  5. Upload het lijf van de slang.
  6. Klik nu op het hoofd van de slang.

Zorg dat de slang kan bewegen

Het is de bedoeling om de slang met de pijltjestoetsen te laten bewegen. Er zijn verschillende manieren om dit te doen, bijvoorbeeld zo:

wanneer [pijltje omhoog v] is ingedrukt richt naar (0) graden neem (5) stappen

Met richt naar 0 graden draai je het hoofd van de slang naar boven, met neem 5 stappen beweegt de slang 5 stappen in die richting. Maar… als je de toets loslaat, dan houdt de slang op met bewegen.

Opdracht Zorg dat de slang doorgaat met bewegen totdat je een andere kant op gaat. Tip 1: hiervoor heb je het herhaal blok uit het menu Besturen nodig. Tip 2: begin het programma met het wanneer op de vlag wordt geklikt blok uit het menu Gebeurtenissen.

Klik om de voorbeeldcode te laten zien om de slang omhoog te laten bewegen
wanneer groene vlag wordt aangeklikt herhaal als <toets [pijltje omhoog v] ingedrukt?> dan richt naar (0) graden end neem (10) stappen wacht (0.1) sec.

In de voorbeeldcode wordt het blok wacht 0.1 sec. gebruikt. Dit is niet nodig om de slang te laten bewegen, maar wordt verderop in het spel belangrijk. Door de wachttijd en/of het aantal stappen dat de slang zet te veranderen kun je de snelheid van de slang bepalen.

Laat de appels verschijnen

Nu is het tijd om de slang eten te geven. Dit voorbeeld gaat uit van appels, je kunt natuurlijk ook iets heel anders verzinnen. Om het lekker onvoorspelbaar te maken waar de appel verschijnt, is het blok ga naar willekeurige positie uit het menu Beweging heel geschikt.

Opdracht Maak een nieuwe sprite voor de appel, en zorg dat er bij het begin van het spel een appel verschijnt. Tip: zorg dat je de appel-sprite hebt gekozen, zodat de code die je maakt ook echt bepaalt wat de appel moet doen.

Klik om de voorbeeldcode te laten zien
wanneer groene vlag wordt aangeklikt ga naar (willekeurige positie)

De volgende stap is om een “nieuwe” appel op een andere plek te laten verschijnen wanneer de slang er een heeft opgegeten. Hiervoor maak je niet echt een nieuwe appel, maar je laat de appel-sprite gewoon op een andere plek verschijnen.

Opdracht Laat de appel op een andere plek verschijnen als de slang er een heeft opgegeten. Tip: hiervoor kun je het blok raak ik … uit het menu Waarnemen gebruiken.

Klik om de voorbeeldcode te laten zien
wanneer groene vlag wordt aangeklikt ga naar (willekeurige positie) herhaal als <raak ik (slang hoofd v)?> dan ga naar (willekeurige positie) end

Maak de slang langer

Van al die appels groeit de slang natuurlijk wel! Het is nu tijd om de slang langer te maken als je een appel eet. Hiervoor is het eerst nodig dat je bijhoudt hoeveel appels de slang al heeft gegeten, dat kun je ook meteen als je score in het spel gebruiken!

Opdracht Hou het aantal gegeten appels bij. Tip 1: hiervoor heb je een variabele nodig, deze maak je in het menu Variabelen. Tip 2: zet aan het begin van het spel de waarde van de variabele op 0.

Klik om de voorbeeldcode te laten zien
wanneer ik als kloon start als <raak ik kleur [#9afeb6]?> dan stop [alle v]

Uitbreidingen

Je kunt het spel natuurlijk nog veel mooier, spannender en moeilijker maken. Hier heb je alvast een lijstje met idee├źn als je nog verder wil programmeren aan Snake:

Licentie

Deze instructies worden, net als alle andere instructies van CoderDojo Nijmegen, aangeboden onder een Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Licentie.

Creative Commons License