Skip to main content

Snake copy

0 Wat gaan we leren

We gaan nog een projectje maken met Thonny (uit de vorige les) en bij dit project gaan we gebruik maken van de standaard Python library:

pgzero

Weet je nog hoe je een package installeert in Thonny?

Yep, Tools - Manage Packages en dan pgzero zoeken en installeren.

1 Snake – Les 1: Teken de slangkop

In deze les gaan we beginnen met het maken van een eigen versie van Snake in Python met Pygame Zero.

We gaan eerst de kop van de slang tekenen op het scherm. Je ziet dan een vierkantje dat straks kan gaan bewegen.

Wat gaan we doen?

We maken een slangkop als vierkant met een bepaalde positie en grootte, en tekenen die in de draw()-functie.

đŸ“Ļ Benodigdheden

  • Een werkende Python-omgeving met Pygame Zero (zoals Thonny)
  • Geen plaatjes nodig – we tekenen de slang met blokken

🔰 Startercode

# importeer library
import pgzrun

# Spelgrootte
WIDTH = 600
HEIGHT = 400

# Startpositie van de slangkop
snake_x = 100
snake_y = 100
tile_size = 20

def draw():
    screen.clear()
    screen.draw.filled_rect(Rect((snake_x, snake_y), (tile_size, tile_size)), "green")
    
#start programma
pgzrun.go()

â„šī¸ Uitleg

  • WIDTH en HEIGHT: grootte van het spelvenster
  • snake_x en snake_y: positie van de slangkop
  • tile_size: grootte van het blokje
  • screen.draw.filled_rect(...): tekent een gevuld vierkantje op het scherm

đŸ› ī¸ Opdracht

  • Pas de waarde van snake_x en snake_y aan – wat gebeurt er?
  • Maak het vierkant groter of kleiner door tile_size te wijzigen
  • Verander de kleur van het vierkant in bijvoorbeeld "blue" of "orange"

💡 Extra uitdaging

Teken een tweede blokje naast de slangkop alsof er al een stukje staart is. Gebruik nog een screen.draw.filled_rect().

📤 Inleveren

  1. Maak een screenshot van je 'slangkop' op het scherm waarbij je de 'slangkop'op een andere positie hebt gezet.

2 Snake – Les 2: Beweeg de slang

In deze les gaan we de slangkop laten bewegen met de pijltjestoetsen.

We gebruiken daarvoor de update()-functie van Pygame Zero en de toetsenbordinput.

Wat gaan we doen?

We maken een richting-variabele en passen de positie van de slang aan op basis van de pijltjes die je indrukt.

🔰 Code

Dit is een deel van de code, je moet jouw bestaande code aanpassen aan de hand van deze nieuwe code.

# Startpositie van de slangkop
snake_x = 200
snake_y = 200
tile_size = 10
step = 1

def draw():
    screen.clear()
    screen.draw.filled_rect(Rect((snake_x, snake_y), (tile_size, tile_size)), "green")
    
def update():
    global snake_x, snake_y

    if keyboard.left:
        snake_x -= step
    if keyboard.right:
        snake_x += step
    if keyboard.up:
        snake_y -= step
    if keyboard.down:
        snake_y += step  

â„šī¸ Uitleg

  • update() wordt automatisch meerdere keren per seconde uitgevoerd
  • keyboard.left controleert of de linkerpijl is ingedrukt
  • Telkens als je een toets indrukt, verandert de positie van de slang
  • step bepaalt hoe ver de slang per stap beweegt

đŸ› ī¸ Opdracht

  • Beweeg de slang door het scherm met de pijltjes
  • Pas step aan naar een andere waarde – wat merk je?
  • Laat de slang sneller of langzamer bewegen door minder of meer pixels per keer te verplaatsen

💡 Extra uitdaging

Laat de slang automatisch blijven bewegen in de laatst gekozen richting:

  • Gebruik een variabele richting die je bijwerkt met on_key_down()
  • Laat de slang dan elke update in die richting verder bewegen

📤 Inleveren

  1. Leg uit wat de variable step doet.
  2. Welke waarde heb je gekozen, waarom?

(je kunt dit inleveren in het tekst veld of in een .txt. bestandje)