# Kennis-check Blok 1

## <span class="ng-star-inserted" data-start-index="1258">*Kennis-check Blok 1*</span>

[<span class="ng-star-inserted" data-start-index="1258">*datasource*</span>](https://www.roc.ovh/books/software-development-2025/page/kennis-check-blok-1)

<span class="ng-star-inserted" data-start-index="1258">*Om je voor te bereiden op de multiple choice kennis-check kun je voor je zelf proberen de ondersrtaand evragen te beantwoorden.*</span>

<span class="ng-star-inserted" data-start-index="1258">*Als je op de vraag klikt dan verschijnt het antwoord. Op die manier kun je zelf jou antwoord controleren.  
Begrip je de uitleg niet, vraag dan aan de docent om extra uitleg.*</span>

### <span class="ng-star-inserted" data-start-index="1258">*Scratch 1*</span>

<details id="bkmrk-wat-is-een-lus-in-pr-1"><summary>**Wat is een lus in programmeren en waarom is het handig?**</summary>

Een lus (of "loop") is een blokje in Scratch dat zorgt dat een stukje code steeds opnieuw wordt uitgevoerd. Bijvoorbeeld: als je wilt dat een sprite (Giga) blijft bewegen zolang het spel bezig is, kun je een "herhaal" of "herhaal zolang" blok gebruiken. Dit is handig, omdat je dan niet elke stap apart hoeft te programmeren – het gebeurt automatisch steeds opnieuw.

</details><details id="bkmrk-wat-is-een-als-dan-a-1"><summary>**Wat is een als-dan-anders blok (if-then-else)?**</summary>

Een als-dan-anders-blok in Scratch controleert of iets waar is. Als dat zo is, doet het programma het eerste stukje code. Anders doet het iets anders. Bijvoorbeeld: *als* de muis is ingedrukt, *dan* laat een sprite (Giga) iets zeggen, *anders* doet hij niets of zegt hij iets anders. Zo kan je programma reageren op wat er gebeurt.

</details><details id="bkmrk-wat-is-een-variabele-1"><summary>**Wat is een variabele en hoe kun je die gebruiken om de score bij te houden?**</summary>

Een variabele is een blokje waarmee je informatie kunt opslaan, zoals een getal dat kan veranderen. In een spel kun je een variabele maken die "score" heet. Aan het begin zet je die op 0. Elke keer dat Giga bijvoorbeeld een sleutel aanraakt, verhoog je de score met 1. Zo weet het spel hoeveel punten je hebt.

</details><details id="bkmrk-wat-is-het-verschil-"><summary>**Wat is het verschil tussen gewoon “als…dan” en “als…dan…anders”?**</summary>

**“Als…dan”** voert alleen code uit *als* de voorwaarde waar is. Als het niet waar is, gebeurt er helemaal niks. **"Als…dan…anders”** voert óf de ene actie uit als de voorwaarde waar is, óf een andere actie als de voorwaarde niet waar is. Dus:

- Met “als…dan” doe je iets óf niks.
- Met “als…dan…anders” doe je altijd iets: óf de ene actie óf de andere.

</details>### <span class="ng-star-inserted" data-start-index="1258">*Scratch 2*</span>

<details id="bkmrk-wat-betekent-het-als-1"><summary>**Wat betekent het als een sprite op x: 0 en y: 0 staat?**</summary>

Dat betekent dat de sprite precies in het **midden van het speelveld** staat.  
In Scratch is (0, 0) het **middelpunt van het scherm**.

- De x-coördinaat (horizontaal) is dan in het midden van links naar rechts.
- De y-coördinaat (verticaal) is in het midden van boven naar beneden.

</details><details id="bkmrk-in-welke-richting-be-1"><summary>**In welke richting beweegt een sprite als je de x-coördinaat groter maakt?**</summary>

Dan beweegt de sprite **naar rechts**.

- Hoe groter de x-waarde, hoe verder naar rechts de sprite op het scherm staat.
- Als je de x-coördinaat juist kleiner maakt, beweegt de sprite naar links.

</details><details id="bkmrk-wat-gebeurt-er-als-j"><summary>**Wat gebeurt er als je bij x een heel grote waarde gebruikt, zoals 5000?**</summary>

De sprite verdwijnt **buiten beeld**.

- Het Scratch-scherm heeft grenzen: ongeveer van x = -240 (helemaal links) tot x = 240 (helemaal rechts).
- Als je een waarde gebruikt zoals x = 5000, dan staat de sprite ver buiten het zichtbare scherm, dus je ziet hem niet meer.

</details><details id="bkmrk-hoe-kun-je-zorgen-da-1"><summary>**Hoe kun je zorgen dat een sprite niet buiten het scherm beweegt?**</summary>

Gebruik een **“als…dan”**-blok om te controleren of x of y binnen een bepaalde grens.

```
als x-positie < 240 dan
   wijzig x met 10
```

</details>### Van Scratch naar Python

<details id="bkmrk-waarom-is-inspringen-1"><summary>**Waarom is inspringen (indentatie) belangrijk in Python, terwijl Scratch dat niet nodig heeft?**</summary>

Omdat Python aan de hand van inspringen (spaties) bepaalt welke code bij elkaar hoort.  
Als je dat niet goed doet, begrijpt Python niet wat je bedoelt, en krijg je een foutmelding.

📌 *Voorbeeld:*

```
if x > 10:
print("x is groot")  # ❌ fout: geen inspringing
```

```
if x > 10:
    print("x is groot")  # ✅ goed: ingesprongen
```

</details><details id="bkmrk-leg-uit-wat-een-%23-in"><summary>**Leg uit wat een `#` in Python doet**</summary>

Een `#` wordt gebruikt om commentaar toe te voegen in je code. Alles wat na het `#` staat, wordt genegeerd door de computer. Het is alleen bedoeld voor de programmeur zelf, om uit te leggen wat de code doet.

📌 *Voorbeeld:*

```
# Dit is een commentaarregel
x = 5  # We geven x de waarde 5
```

</details><details id="bkmrk-hoe-ziet-een-if-then"><summary>**Hoe ziet een if-then-else er uit in Python?**</summary>

In Python gebruik je `if`, `else` (en soms `elif`). De code die bij elke voorwaarde hoort moet ingesprongen staan.

📌 *Voorbeeld:*

```
if x > 10:
    print("x is groter dan 10")
else:
    print("x is 10 of kleiner")
```

</details><details id="bkmrk-wat-doet-een-for-loo-1"><summary>**Wat doet een for-loop in Python?**</summary>

Een `for`-loop herhaalt een blokje code een vast aantal keren.

📌 *Voorbeeld:*

```
for i in range(5):
    print("Hallo")
```

</details><details id="bkmrk-noem-verschillen-tus-1"><summary>**Noem verschillen tussen Python en Scratch**</summary>

<table><thead><tr><th>Scratch</th><th>Python</th></tr></thead><tbody><tr><td>Werkt met blokken die je sleept</td><td>Werkt met tekst die je zelf typt</td></tr><tr><td>Geen spaties of haakjes nodig</td><td>Spaties en dubbele punten zijn belangrijk</td></tr><tr><td>Visueel en kleurrijk</td><td>Tekstgebaseerd, je moet meer onthouden</td></tr><tr><td>Makkelijk te starten zonder fouten</td><td>Foutgevoelig bij typefouten of inspringen</td></tr></tbody></table>

</details><details id="bkmrk-wat-leert-de-student"><summary>**Wat leert de student bij 'Pak de Kaas'?**</summary>

In dit Python/Pygame Zero-project leren studenten onder andere:

- Sprites op het scherm tonen met `screen.blit()`
- De muis laten bewegen via variabelen en `update()`
- Botsingen detecteren tussen muis en kaas
- Willekeurige verplaatsing van de kaas met `random`
- Score bijhouden bij het verzamelen van kaas
- Tijdslimiet instellen zodat het spel eindigt ("Game Over")

</details><details id="bkmrk-hoe-detecteer-je-dat"><summary>**Hoe detecteer je dat de muis de kaas raakt?**</summary>

Gebruik een `if`-statement met `collide` of vergelijk coördinaten van de muis en kaas, bijvoorbeeld:

```
if mouse_x == cheese_x and mouse_y == cheese_y:
    score += 1
```

</details><details id="bkmrk-waarom-gebruik-je-wi"><summary>**Waarom gebruik je willekeurige getallen bij het verplaatsen van de kaas na botsing?**</summary>

Zodat de kaas steeds op een nieuwe plek verschijnt. Bijvoorbeeld met:

```
import random
cheese_x = random.randint(0, WIDTH)
cheese_y = random.randint(0, HEIGHT)
```

</details><details id="bkmrk-wat-doet-random.rand"><summary>**Wat doet `random.randint()` precies?**</summary>

De functie `random.randint(a, b)` geeft een willekeurig geheel getal terug tussen **a** en **b**, inclusief beide grenzen.

📌 *Voorbeeld:*

```
import random
getal = random.randint(1, 10)
print(getal)
```

Dit print een willekeurig getal tussen 1 e

</details>### Pak de Kaas

<details id="bkmrk-hoe-detecteer-je-dat-1"><summary>**Hoe detecteer je dat de muis de kaas raakt?**</summary>

Gebruik een `if`-statement met `collide` of vergelijk coördinaten van de muis en kaas, bijvoorbeeld:

```
if mouse_x == cheese_x and mouse_y == cheese_y:
    score += 1
```

</details><details id="bkmrk-waarom-gebruik-je-wi-1"><summary>**Waarom gebruik je willekeurige getallen bij het verplaatsen van de kaas na botsing?**</summary>

Zodat de kaas steeds op een nieuwe plek verschijnt. Bijvoorbeeld met:

```
import random
cheese_x = random.randint(0, WIDTH)
cheese_y = random.randint(0, HEIGHT)
```

</details><details id="bkmrk-wat-doet-random.rand-1"><summary>**Wat doet `random.randint()` precies?**</summary>

De functie `random.randint(a, b)` geeft een willekeurig geheel getal terug tussen **a** en **b**, inclusief beide grenzen.

📌 *Voorbeeld:*

```python
import random
getal = random.randint(1, 10)
print(getal)
```

Dit print een willekeurig getal tussen 1 en 10, zoals 3 of 9. Handig voor bijvoorbeeld het willekeurig verplaatsen van een sprite in een spel.

</details><details id="bkmrk-wat-gebeurt-er-als-j-1"><summary>**Wat gebeurt er als je de muis buiten het scherm laat bewegen?**</summary>

Als je de variabelen `mouse_x` of `mouse_y` zo aanpast dat de sprite buiten het scherm komt, dan **verdwijnt de muis uit beeld**.

- Het spel zelf blijft werken, maar de speler ziet de muis niet meer.
- De sprite staat dan op een coördinaat die buiten het zichtbare venster valt (bijvoorbeeld x = -50 of y = 1000).

</details><details id="bkmrk-hoe-zorg-je-ervoor-d"><summary>**Hoe zorg je ervoor dat de muis niet buiten het spel beweegt? Gebruik je een loop of een if-then?**</summary>

Om te voorkomen dat de muis buiten het scherm beweegt, gebruik je een **`if`-statement**, geen `loop`. Daarmee controleer je of de muis nog binnen de grenzen is voordat je de positie verandert.

📌 *Voorbeeld:*

```python
if mouse_x < WIDTH - 50:
    mouse_x += 5
if mouse_x > 0:
    mouse_x -= 5
```

</details>### 🛠️ Opdracht

Maak nu de kennis-check.

### 📤 Inleveren

Aan het einde van de kennis-check ontvang je een certificaat. Maak een schermafdruk en lever deze in.

## <span class="ng-star-inserted" data-start-index="1258">*Kennis-check Blok 1* </span>(poging 2)

### 🛠️ Opdracht

Maak nu de kennis-check.

### 📤 Inleveren

Aan het einde van de kennis-check ontvang je een certificaat. Maak een schermafdruk en lever deze in.

[datasource](https://www.roc.ovh/books/software-development-2025/page/kennis-check-blok-1)

\--