# Zelf programma’s schrijven # Inleiding tot Scratch ### 1. Oefeningen openen & kopiëren #### 1.1. Een oefening openen Om een oefening te openen klik je gewoon op de **Bekijk van binnen knop** die in de cursus bij de oefening staat.  De oefening wordt dan geopend in Scratch. Deze oefening kan je niet bewerken! #### 1.2. Kopie maken van een oefening Om een oefening te kunnen bewerken moet je op de **Remix** knop bovenaan klikken.  Na op deze knop te drukken wordt er een privé kopie van de oefening gemaakt. Deze kan je dan wel bewerken. #### 1.3. Delen van je oplossing Nadat je de oefening opgelost hebt moet je deze delen. Dan wordt de oplossing zichtbaar voor iedereen en dan kan ik deze verbeteren. De oefening delen doe je door bovenaan op de **Delen** knop te klikken.  #### Video die de stappen bovenaan uitlegt ### 2. Scratch gebruiken Na het openen van een oefening krijg je de map van de oefening te zien. Op deze map zijn er witte vakjes aangeduid. In deze witte vakjes staan er een paar symbolen.  Deze map heeft 4 vakjes met in het bovenste en onderste vakje een paar symbolen. #### Symbolen op de map
 | Dit is een schatkist. Dit is het doel in elke oefening. Hier moet je karakter op komen te staan. |
 | Het karakter dat je zult bewegen over de map. Dit karakter kan enkel bewegen over de witte vakken. Als je een van de zwarte vakken raakt dan zal het programma een foutmelding tonen. |
 | Door dit blokje te gebruiken zal het karakter 1 vak vooruit bewegen. In de richting naar waar de punt van het karakter wijst. |
 | Door dit blokje te gebruiken zal het karakter zijn punt 90 graden naar **links** draaien. |
 | Door dit blokje te gebruiken zal het karakter zijn punt 90 graden naar **rechts** draaien. |
**Wat moet je kennen en kunnen na dit deel?** - Een eenvoudig programma kunnen opstellen in Scratch om tot een bepaald doel te raken. - Begrijpen dat de volgorde van de uit te voeren stappen belangrijk is. - Begrijpen dat je een probleem op verschillende manieren kan oplossen en daar de beste manier kunnen kiezen
Wanneer we een programma schrijven moeten we tegen de computer zeggen wat hij juist moet doen. Dit moeten we doen aan de hand van een algoritme (een stappenplan). Bekijk nog eens [de eigenschappen van een algoritme](https://books.jeroenpelgrims.com/books/algoritmisch-denken/page/wat-is-een-algoritme). Wanneer we een algoritme opstellen is het dus belangrijk dat de stappen in de juiste volgorde staan. Dit is belangrijk om om te letten in de volgende oefeningen. De volgorde van de stappen moet juist zijn want anders zal je niet tot de juiste oplossing komen in deze oefeningen.**Belangrijk!** Druk na het openen van een oefening altijd eerst op de  knop om de oefening te kopiëren. En als je klaar bent klik je op de  knop bovenaan.
### Sequentie 1  [](https://scratch.mit.edu/projects/501425823/) In deze oefening moet je maar 1 blokje gebruiken. Het blokje om vooruit te stappen:  ### Sequentie 2  [](https://scratch.mit.edu/projects/515630490/) ### Sequentie 3  [](https://scratch.mit.edu/projects/501433323/) In deze oefening heb je ook een van de volgende blokjes nodig:   ### Sequentie 4  [](https://scratch.mit.edu/projects/501434328/) ### Sequentie 5  [](https://scratch.mit.edu/projects/501477664/) In deze oefening zijn er 2 nieuwe symbolen op de map en is er ook 1 nieuw blokje. ##### Nieuwe mapsymbolen[](https://books.jeroenpelgrims.com/uploads/images/gallery/2021-04/poort.png) | Dit symbool duid een poort aan op de map. Hier kan je niet door. Als je het blokje **1 vak vooruit** zou gebruiken hier dan zal je programma een foutmelding tonen. |
[](https://books.jeroenpelgrims.com/uploads/images/gallery/2021-04/knop.png) | Dit symbool duid een een knop aan. Als je op deze knop drukt dan zal de poort verdwijnen. |
[](https://books.jeroenpelgrims.com/uploads/images/gallery/2021-04/druk-op-knop.png) | Als het rode karakter op de knop staat en je gebruikt dit blokje, dan zal de knop worden ingeduwd. Als de knop is ingeduwd dan zal de poort verdwijnen. Dan kan je dus doorlopen. |
**Wat moet je kennen en kunnen na dit deel?** - Patronen kunnen vinden in een probleem - Een herhaling kunnen gebruiken in een programma - Je programma zo kort (en simpel) mogelijk maken door het gebruik van een herhaling of een geneste herhaling.
In deze oefeningen zullen we bepaalde stappen meerdere keren moeten uitvoeren. Als we bijvoorbeeld 10 keer een stap vooruit moeten zetten zou het veel werk zijn om 10 keer een blokje **1 vak vooruit** te zetten. Het zou makkelijker zijn als we gewoon zouden kunnen zeggen "**Herhaal 10 keer** het blokje **1 vak vooruit**". Dat kunnen we doen met het **Herhaal** blokje: Nu wordt het blokje **1 vak vooruit** 10 keer uitgevoerd. Het is dus alsof er 10 keer na elkaar het blokje **1 vak vooruit** staat.  Dit blokje kan je links vinden in de sectie "Besturen".  Binnenin het **Herhaal** blokje kan je méérdere blokjes zetten.  Nu wordt er 10 keer na elkaar de blokjes **1 vak vooruit** en **draai links** uitgevoerd. #### Geneste blokken Je kan het **Herhaal** blokje ook binnenin een ander **Herhaal** blok zetten. Dit noemen ze blokken "nesten". Dit ga je nodig hebben vanaf oefening 6.  ### Iteratie 1  [](https://scratch.mit.edu/projects/501963670/) ### Iteratie 2  [](https://scratch.mit.edu/projects/501981985/) ### Iteratie 3  [](https://scratch.mit.edu/projects/501969157/) ### Iteratie 4  [](https://scratch.mit.edu/projects/515815323/) ### Iteratie 5  [](https://scratch.mit.edu/projects/502014886/) ### Iteratie 6  [](https://scratch.mit.edu/projects/515822019/) ### Iteratie 7  [](https://scratch.mit.edu/projects/515840709/) ### Iteratie 8  [](https://scratch.mit.edu/projects/515817336/) # De selectie**Wat moet je kennen en kunnen na dit deel?** - Keuzes kunnen maken in je programma met behulp van een selectie.
In dit deel zullen we gebruik maken van een paar nieuwe blokjes in Scratch. Het **Als-Dan** blokje en het **Als-Dan-Anders** blokje:   Deze blokjes vind je in het "Besturen" menu links:  #### Condities Bovenaan in elk blokje zie je een donkere zeshoekige ruimte. Hierin moeren we een **Conditie** (of voorwaarde) zetten.Een **Conditie** is een **ja-nee vraag**. Dit type vraag heeft altijd maar 2 mogelijke antwoorden. **Ja** of **Nee**. (Soms worden ook **Waar** of **Onwaar** gebruikt in plaats van **Ja** en **Nee**)
In Scratch kunnen we alle mogelijke **Condities** vinden in het "Waarnemen" menu links:  De conditie die we het meest zullen gebruiken in de oefeningen is de **"Raak ik" conditie**:  Deze conditie controleert of het huidige karakter een ander iets aanraakt. Standaard wordt er gecontroleerd of het karakter de muisaanwijzer aanraakt. Maar dit kunnen we veranderen door op het pijltje te klikken:  We kunnen dus ook kiezen om te controleren of we iets anders aanraken. Zoals de schatkist of een knop. In de oefeningen hieronder komt er een nieuw symbool bij, een boom. Dit symbool wordt later verder uitgelegd.  #### Als-Dan(-Anders) Deze condities kunnen we dan gebruiken in de **Als-Dan** of de **Als-Dan-Anders** blok. De conditie wordt gecontroleerd, en als het resultaat **Waar** is, dan worden de blokjes binnenin het **Als-Dan** blok uitgevoerd. Als de conditie **Niet waar** is dan worden de blokjes binnenin het **Als-Dan** blok overgeslagen.  In het voorbeeld hierboven wordt er gecontroleerd of ons karakter een boom raakt. Zo ja, dan wordt de boom omgekapt. (het blokje **Kap boom** wordt wel uitgevoerd). Anders wordt het blokje **Kap boom** niet uitgevoerd.  In het voorbeeld hierboven wordt **Kap boom** uitgevoerd als de conditie **raak ik boom** waar is. Als deze niet waar is dan wordt het blokje **1 vak vooruit** uitgevoerd. Bij het **Als-Dan-Anders** blokje wordt er dus altijd 1 van de 2 blokjes uitgevoerd. #### De boom In de oefeningen hieronder komt er dus een nieuw symbool bij, de boom.  Bomen kunnen enkel maar groeien op de **groene vakken** op de kaart. Om voorbij een boom te raken moet je op het vakje van de boom gaan staan en het **Kap boom** blokje gebruiken.**Opgelet! Bomen staan er niet altijd!** Elke keer dat je op de start knop drukt worden de bomen opnieuw geplaatst. Er is 50% kans dat er een boom zal verschijnen op een groen vak, en 50% kans dat er geen boom zal staan.
Je kan enkel het blokje **Kap boom** gebruiken als er een boom staat. Je zal dus om deze oefeningen op te lossen het **Als-Dan** blokje of het **Als-Dan-Anders** blokje moeten gebruiken. ### Selectie 1  [](https://scratch.mit.edu/projects/519272024) ### Selectie 2  [](https://scratch.mit.edu/projects/519512268/) ### Selectie 3  [](https://scratch.mit.edu/projects/531251546/) ### Selectie 4  [](https://scratch.mit.edu/projects/533104871/) In deze oefening zie je een paars vak staan. Als je op de **groene vlag** klikt zal dit paarse vak veranderen naar rood of blauw. Als het vak **rood **is dan moet je de linkse afslag nemen. Als het vak **blauw** is dan moet je de rechtse afslag nemen. Probeer eens meerdere keren op de groene vlag te klikken. Het pad is niet altijd het zelfde! Maar het programma dat je schrijft moet wel altijd tot het einde raken. Om te controleren of je op een rood of een blauw vak staat kan je deze **Conditie** gebruiken:  Als je op het bolletje klikt met de kleur in dan kan je een andere kleur kiezen:  Als je dan op de onderste knop klikt (hierboven aangeduid met een rode cirkel) dan kan je een andere kleur aanduiden. Je kan dan de rode of blauwe kleur linksboven op de map selecteren. ### Selectie 5  [](https://scratch.mit.edu/projects/533113906/) ### Selectie 6  [](https://scratch.mit.edu/projects/533125690/) ### Selectie 7 Deze oefening kan je op meerdere manieren oplossen. Een van deze blokjes kan daarin helpen:   Het linkse blokje herhaalt oneindig en het rechtse herhaalt totdat een bepaalde conditie waar is. In het herhaal tot blokje kan je een **Conditie** zetten. Het zal de blokjes binnenin zich blijven herhalen tot de conditie waar is. Dan stopt de herhaling. Probeer je oplossing zo kort mogelijk te maken! Je kan deze oefening oplossen door maar 6 blokken en 2 condities te gebruiken.  [](https://scratch.mit.edu/projects/534041241/) # CodeCombat  