Skip to main content

Van Scratch naar Python

Installatie Python

We hebben geprogrammeerd in Scratch en we gaan nu programmeren in een echte programmeertaal: Python.

We gaan echte code maken, maar daarvoor moeten we eerst wat zaken installeren.

We gaan gebruikmaken van Thonny

Download

Pak het bestand uit en zet het op een plek die voor jou logisch is, bijvoorbeeld op je bureaublad.

Installatie pygame Library

Programmeertalen hebben libraries (ook wel 'packages' genoemd). Deze libraries bevatten code die jij kunt gebruiken.

Wij gaan de pygame library installeren omdat we die straks nodig hebben.

Als je Thonny opstart, ga dan naar Tools - Manage packages...

image.png

Zoek dan naar pygame

image.png

Klik op pygame en daarna op de knop Install

Download code

Download de code startcode-python-scratch.zip

Pak de code uit, start Thonny en open het bestand student.py

image.png

Druk op het groene 'run'-symbool en kijk wat er gebeurt.

Het programma wordt regel voor regel van boven naar beneden uitgevoerd.

Uitleg code

Hieronder zie je de uitleg. Het kan zijn dat je niet alles in ÊÊn keer begrijpt, maar probeer in ieder geval de rode uitleg te begrijpen.

Regel 1

Hier worden libraries ingeladen. Dit zijn stukjes code die al klaar zijn en die in het bestand scratch_lib.py staan.

Regel 3

Hier wordt de sprite gemaakt en op een positie gezet. Let op dat positie (0, 0) linksboven is (en niet in het midden zoals bij Scratch).

Regel 5

Hier maken we een functie waarmee de sprite wordt bewogen. Dit is nodig om de library te kunnen gebruiken.

Regel 6

Hiermee bewegen we de sprite 10 pixels naar rechts en 0 pixels naar beneden.

Regel 7

We pauzeren een aantal frames.

Regel 9

Hiermee starten we het spel.

đŸ› ī¸ Opdracht

Probeer de getallen op regel 6 eens aan te passen en kijk wat er gebeurt.

Verander de getallen zodanig dat de groene stip van linksboven diagonaal richting rechtsonder beweegt.

Inleveren

Maak een screenshot van de code die jij hebt aangepast zodat de groene stip diagonaal van linksboven naar rechtsonder beweegt.

************************************

De stuiterbal

In deze opdracht leer je hoe je een sprite (een groene stip) van links naar rechts kunt laten bewegen en hoe je met een if-statement de richting verandert zodra de sprite de rechterkant van het scherm bereikt.

Begincode

Je gebruikt de volgende code als uitgangspunt:

from scratch_lib import create_sprite, move, run_animation, get_x

# Maak de sprite en zet hem links op het scherm
sprite = create_sprite("green_dot.png", 0, 300)

# Variabele om te onthouden of we naar rechts bewegen
moving_right = True

def animate():
    global moving_right  # We gaan deze variabele aanpassen
    
    # Haal de huidige x-positie op
    x = get_x(sprite)
    
    # TODO: Als x groter of gelijk is aan 550, verander moving_right naar False
    # if ( ??? ):
    #    moving_right = False
    
    # Beweeg de sprite op basis van de richting
    if moving_right:
        move(sprite, 5 , 0 )
    else:
        move(sprite, 0 , 0 )

# Start de animatie
run_animation([sprite], animate, steps=1000)

Als je deze code uitvoert, zie je dat de groene stip van links naar rechts beweegt, maar hij stopt niet of verandert niet van richting. Hij verdwijnt uit beeld.

Wat gaan we doen?

We willen dat de bal van richting verandert als hij de rechterkant bereikt (bijvoorbeeld bij x = 550).

Daarvoor heb je een paar dingen nodig:

De variabele moving_right die onthoudt of de sprite naar rechts beweegt (True) of niet (False).

Een if-statement (regel 15, 16 en 17) die controleert of de x-waarde van de sprite groter is dan 550.

Als dat zo is, moet de sprite naar links bewegen in plaats van naar rechts (regel 19, 2020, ,21, 22 en 23).

De code is nog niet helmaalhelemaal af.

Commentaar

In de code zienzie weje af en toe een hekje # aan het begin van de regel staan.

Dit betekent dat dit commentaar is,is. deDe regel wordt niet uitgevoerd. HertHet dient om onsjou als programmeur te helepnhelpen begrijpen wat de code doet.

đŸ› ī¸ Opdracht

Haal het hekje weg op regel 16 en 1717, maar zorg er wel voorervoor dat de de uitlijning goed blijft: voor de if vier spaties en op de regel moving_right = False acht spaties.

Op de plaats van de ??? plaatsjeplaats je nu de juiste conditie. Je vergelijkt of de x x-positie van de sprite groter of gelijk is alsaan 550.

In Python ziet dat er als volgt uit:

if ( var_a >= 550 ):

var_a is een variabele. Plaats deze conditie in de code en pasvervang var_a aan zodat er wordt gekeken naardoor de xjuiste positievariabele vandie de sprite.x-positie bevat.

→ Test je code. Geen foutmeldingen? OK!

Wat gebeurt er nu als de x-positie van x 550 is? Precies â€” de bal staat stil!

Kijk evennog eens goed naar het if -statement op regel 20 t/m 23 en probeer de code aan te paassnepassen zodat de bal niet meer stil staat als die dehij positie 550 heeft bereikt, maar dat hij gaatterug terugbewegen.beweegt.

Gebruik daarna een tweede if-statement om te bepalen hoe de sprite moet bewegen:

  • Als moving_right True is → beweeg naar rechts.
  • AndersAnders, dus als moving_right False is → beweeg naar links.

Denk daarbij dateraan: een positief getal beweegt de sprite vooruitvooruit, een negatief getal beweegt en een negatied getailhem achteruit.

Inleveren

Maak een screenshot van de aangepaste code.