ZELF COMPUTERSPELLEN BOUWEN MET DWENGO. Peter Bertels en Francis Wyffels

Vergelijkbare documenten
LEREN PROGRAMMEREN MET DWENGO BLOCKS. Francis Wyffels, Peter Bertels, Karel Bruneel, Tim Waegeman, Geraldine Heyerick en Barbara Vernaeve

Prowise Presenter (online digibordsoftware)

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

Inhoud. Blz. 3. Blz. 4. Blz. 5. Blz. 7. Blz. 8. Blz. 9. Blz. 10. Opdracht 1 - Brainstormen. Opdracht 2 - Je eigen controller. informatie - makey makey

BOUW EEN INTELLIGENTE ROBOT IN DE KLAS

Welkom! Veel plezier met Scratch!

Scratch Rekenen & programmeren

CoderDojo Arnhem Help de Kerstman

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Simon de schildpad J van Weert 1

Android apps met App Inventor 2 antwoorden

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Boekje met opdrachten

Werkschrift : Hoe werk ik op WikiKids?

Scratch les 1 Rekenen

Simon de schildpad J van Weert 1

Een spoedcursus python

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

OEFENINGEN PYTHON REEKS 6

QUESTI OPSTARTGIDS ALGEMENE INSTELLINGEN EN LVS

BEGINNER JAVA Inhoudsopgave

Stap 2: informatie op je website / weblog plaatsen

Hoofdstuk 1 Wat zijn apps eigenlijk?

Space Invaders op de micro:bit

van PSD naar JavaScript

Handleiding myworkandme. Aanmelden met adres en wachtwoord

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

3 Hoogbegaafdheid op school

Wat gaan we maken? Scratch Invaders!

Variabelen en statements in ActionScript

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Handleiding ZKM Online. Versie 2.1

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Flappy Bat. Om te beginnen ga je naar en remix je het spel.

In dit project leer je hoe je een spel maakt waarbij je gekleurde stippen moet vangen met het goede deel van de controller.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Ontdek hoe je een Wordpress thema vindt dat echt bij jou past!

Gebruiksvriendelijkheid: Gebruiksaanwijzing:

Het installatiepakket haal je af van de website

LAB handleiding april

Screencast-O-Matic HANDLEIDING

Trampoline Draak 1a. Stap 1 de voorbereiding. fantasie, de dragon. Kies ook een nieuwe achtergrond uit de folder buiten, atom playground

Iedereen online, van 9 tot 99 jaar. Les De webbrowser, onze surfplank door het wereldwijde web. Deze iconen tonen aan voor wie het document is

Inleiding Het adres Hoe werkt ? Je adres registreren Aanmelden bij Outlook Schermonderdelen...

code create Welkom! Inspiratie is de basis

Basishandleiding WordPress

Les Digitale fotografie, foto s delen met familie en vrienden. Iedereen online, van 9 tot 99 jaar.

Een weblog maken voor je klas

Handleiding enquetemaken.be

Privacy instellen Facebook. Klik op het haaientandje rechts naast Startpagina en kies voor Privacyinstellingen

Handleiding Op Maat Speler

PRAKTISCHE HANDLEIDING

Functioneel programmeren

EDK Walkthrough: Hardwareontwerp met GPIO en UART Deel 1

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

Aan de slag met Acadin

Opdracht 1: Toss Als een voetbalwedstrijd begint, gooit de scheidsrechter een muntje om te beslissen wie aftrapt. Dat heet de toss.

Scratch. Gemaakt door: Déjan van Noordt en Leroy van den Driesche Leerlingen HAVO 5 SG Spieringshoek Als onderdeel voor het vak Informatica

10 FACEBOOK TIPS VOOR BEDRIJVEN

Webdesign voor ondernemers

Aan de slag met de micro:bit!

WELKOM BIJ BOMBERBOT! LES 1: WAT IS PROGRAMMEREN LES 1: WAT IS PROGRAMMEREN WAAR GAAT DEZE LES OVER? INTRODUCTIE

Fable bedienen met een keyboard

Voordat je begint, lees je eerst deze bladzijden. Daarna weet je precies hoe je dit boek gebruikt.

Handleiding ZKM Online. Versie 2.0

Les 4 Snake. Een hele kleine Sprite. 1) Zie Afbeelding 1. Klik met je rechtermuisknop op sprite1. Kies vervolgens verwijderen.

Bloggen jullie ook? Je tikt in google blogger en je neemt de eerste webpagina

Stappenplan App maken

Cursus Onderwijs en ICT. Programmeren met Visual Basic

Scratch les 3: Spirograaf

* * * Boekje met opdrachten * * *

Programmeren met Scratch

extra oefening algoritmiek - antwoorden

Scratch les : Ontsnap uit het doolhof en krijg de MediaMasters jokercode!

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

CrashPlan PROe installatie handleiding. Versie Mac-Up! - CrashPlan PROe Installatie Handleiding - 1

LORD OF THE RINGS ALLE ONDERDELEN VAN HET SPEL START VAN HET SPEL

INHOUD. Over de auteur... 5 Over de technisch beoordelaar... 5 DANKWOORD 13 INLEIDING 15

1.4.1 Een game maken met Scratch. ICT Onderbouw. CC Naamsvermelding 3.0 Nederland licentie.

Hoofdstuk 20: Wiskundige functies

Introductie. Lesinstructie. Lesinstructie. Leerdoelen. Introductie. Opzet. Bronnen

APP INVENTOR ERVAREN

SLIMSTAMPEN HANDLEIDING

Scratch les 3: Quiz! Je eigen spelshow

Workshop Arduino - deel 2

Ik weet dat het soms best wel allemaal wat ingewikkeld kan lijken.

Een webshop vullen. a. Een product aanmaken. Ga nu naar Producten en kies voor Product toevoegen om een nieuw product aan te maken.

TYP-TOP online HANDLEIDING VOOR DE LEERLING

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

Programmeren met Arduino

Cursus Onderwijs en ICT. Remediëren met ICT

Handleiding AmbraSoft voor beheerders Eerste gebruik op de school Bestellen accounts aanmaken voor leerkrachten en leerlingen

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

Hallo. Ik snap het Ik kan uitleggen via welke stappen ik een programma maak en dit op de micro:bit zet.

Iparadox : de app om uw alarmsysteem te bedienen vanop uw smartphone

g. Je kan nu door op de play knop te drukken je programma versturen naar de EV3 brick waarna het zal uitgevoerd worden.

Stap 1: Willekeurige kleuren

Transcriptie:

ZELF COMPUTERSPELLEN BOUWEN MET DWENGO Peter Bertels en Francis Wyffels

Copyright 2013 Dwengo vzw ISBN 978-90- 819917-1- 1 D/2013/Dwengo/1 NUR 980, 257 We willen graag dat zoveel mogelijk mensen kennis kunnen maken met microcontrollers of leren programmeren met Dwengo Blocks. Daarom brengen we dit boek uit onder Creative Commons: De gebruiker mag: het werk kopiëren, verspreiden en doorgeven remixen afgeleide werken maken Onder de volgende voorwaarden: Naamsvermelding: de gebruiker dient bij het werk steeds Dwengo vzw te vermelden (maar zonder de indruk te wekken dat Dwengo vzw instemt met je werk of jouw gebruik van het werk). Niet- commercieel: de gebruiker mag het werk niet voor commerciële doeleinden gebruiken. Gelijk delen: indien de gebruiker het werk bewerkt, kan het daaruit ontstane werk uitsluitend krachtens dezelfde licentie als de onderhavige licentie of een gelijksoortige licentie worden verspreid. info@dwengo.org http://www.dwengo.org

Voorwoord In dit boekje leren we hoe computerspellen geprogrammeerd worden. Net als het eerste boekje in deze reeks, Leren programmeren met Dwengo Blocks, wordt gewerkt met software die volledig online werkt. Meer dan een computer met internet heb je dus niet nodig. Zelf computerspellen bouwen kan zowel thuis als in de klas. Dit boekje is in de eerste plaats bedoeld voor leerkrachten die in het kader van hun lessen omgaan met informatica, elektronica of techniek. Maar jongeren kunnen dit boekje ook zelfstandig ontdekken. Dat maakt hun leer- ervaring nog intenser. De industrie smeekt al jaren om mensen met een goede kennis van techniek. Dwengo vzw biedt jongeren de kans om techniek op een aangename en vooral praktische manier te ontdekken. Kan dat beter dan aan de hand van het bouwen van een computerspel? Veel succes!

arcadespelletjes In de jaren zeventig ontstond een grote gekte rondom het spelletje Pong, ontworpen door het bedrijf Atari. Voortbouwend op dat succes werden in restaurants, pretparken en cafés automaten geplaatst met daarop bekende namen als Tetris, Pac- Man en Space Invaders. Echter, door de opkomst van krachtigere spelconsoles en de computer is de spelautomaat in verval geraakt. Toch is het ook nu nog interessant stil te staan bij de spelautomaat. Meestal waren die automaten opgebouwd uit een beeldscherm, knoppen en een microcontroller om het geheel aan te sturen. Al die elementen vind je ook terug op het Dwengo- experimenteerbord. Het is dus perfect mogelijk om zelf een computerspel te bouwen met Dwengo. In dit boekje leggen we de basis voor het programmeren van spelletjes. We doen dat aan de hand van een logisch denkspel, MasterMind. Met de kennis uit dit boekje, wat handigheid en creativiteit, kan je later zo jouw eigen flipperkast bouwen!

HOE WERKT MASTERMIND? MasterMind is een logisch denk- spel waarbij je moet proberen een code te kraken. Dit spel ga jij programmeren! We gebruiken een variant van het spel waarbij de code bestaat uit drie cijfers met voor ieder cijfer tien mogelijkheiden (0, 1,, 9). In totaal zijn er dus duizend mogelijke combinaties. Aan jou om ze te raden! Raden gaat in verschillende rondes. Elke keer als je een gokje waagt, vertelt het Dwengo- bord hoe goed jouw gok was: het aantal cijfers op een juiste positie het aantal cijfers dat je juist kon raden maar niet op een juiste positie stonden Een voorbeeldje: als de code 259 is, jij gokt 215, dan krijg je als hint: 1 1. De eerste 1 vertelt dat er één cijfer exact juist is (de 2). Uit de tweede 1 leer je dat je ook één cijfer hebt geraden, maar niet op de juiste positie (de 5). Een speciaal geval treedt er op wanneer je raadt 555. Je krijgt dan 1 2 terug omdat er één cijfer juist staat en de andere twee cijfers uit jouw gok, ook voorkomen in de geheime code, maar niet op dezelfde plaats.

MASTERMIND OP HET DWENGOBORD Om het spelletje MasterMind te programmeren op het Dwengo- bord moeten we het eerst omzetten naar een algoritme. Dit is een reeks van stappen die de microcontroller na elkaar moet uitvoeren. Dit zijn de stappen van het algoritme: Tonen van een welkom berichtje Wachten totdat de startknop is ingedrukt Een geheime code kiezen Starten spel met Start! Wachten tot de gebruiker drie cijfers ingeeft Vergelijken van de ingegeven cijfers met de geheime code Weergeven van de score op het LCD- scherm De vorige drie stappen herhalen tot de code gekraakt is Tonen boodschap: Gekraakt! indien de cijfers juist zijn geraden Het spelletje MasterMind maakt dus gretig gebruik van het LCD- scherm en de druktoetsen op het Dwengo- bord.

blokschema maken en simuleren Op de website http://blocks.dwengo.org vind je een grafische programmeeromgeving voor het Dwengo- bord. Je kan er blokschema s tekenen. Via de online simulator kan je onmiddellijk zien of jouw programma correct werkt. Surf met Google Chrome naar http://blocks.dwengo.org Wie klikt op Demo krijgt een voorbeeld van een blokschema. Het begint helemaal bovenaan bij de blauwe bol. Het volgt de blauwe lijn langs alle blokjes tot het eindigt bij de groene bol. Merk op dat er twee verschillende soorten blokken zijn. Rechthoekige blokken vormen een opdracht of instructie voor de microcontroller. Bij ruitvormige blokken nemen beslissingen over hoe het programma verder loopt. Het programma kan bij de ruit verschillende kanten op. Rechts in beeld zie je een tekening van het Dwengo- bord. Via de knoppen bovenaan kan je het programma simuleren en zien hoe het werkt. Tip: met C wordt het middelste knopje bedoeld. Laat de simulatie stap- voor- stap lopen. Probeer alle knoppen van de simulator: play, pause, step en code. Waarvoor dienen ze?

WE STARTEN MET EEN RAAMWERK Eerst zetten we een raamwerk op met alle basiselementen. De ingewikkeldere stukken vullen we dan later in. Op de figuur links zie je symbolisch het raam- werk met basisblokken. Rechts kan je zien hoe je dat in Dwengo Blocks kan opbouwen. Eerst tonen we de welkomtekst, dan wachten we met het paarse blok op een knop. Dan start het programma pas echt. In de drie groene blokken stellen we de geheime code in die de gebruiker moet raden. We slaan ze op in de variabelen j1, j2 en j3. Hier kiezen we een vaste geheime code: 2, 5, 9. Dan hebben we weer een lus waarin de gebruiker telkens opnieuw mag gokken. We tellen het aantal stappen en we controleren ook telkens hoeveel cijfers van de code juist zijn. Zolang er minder dan 3 cijfers juist zijn, gaan we door. Als alles juist is, tonen we de boodschap Gekraakt!.

CIJFERS INTOETSEN MET DE KNOPJES Als je het spel test in de simulator, dan gebeurt er na het indrukken van knop C (de startknop) nog niet veel. Je kan als speler immers nog niet jouw eigen cijfers ingeven. Dat gaan we eerst toevoegen. We willen dat de speler drie cijfers kan ingeven één- na- één: eerst het honderdtal, dan het tiental en tenslotte de eenheid. Met de N- knop kan het cijfer verhoogd worden, met de S- knop wordt het cijfer verlaagd en met de C- knop wordt een cijfer vastgelegd. Vergeet niet om het cijfer naar 0 te laten springen wanneer de 9 overschreden wordt, of naar 9 als het getal onder 0 gaat! De gekozen cijfers slaan we in de hoofdlus op in de variabelen c1, c2 en c3. Die moet je eerst aanmaken. Omdat de speler drie keer een cijfer moet intoetsen, maken we hier best een aparte functie voor. We noemen ze input. De functie geeft het gekozen getal terug. Als argument geven we positie op het LCD- scherm mee waar het getal moet worden getoond.

Met de functies ispressedsw_* kan je zien of een knop is ingedrukt. Vervang het sterretje * door N, E, S, W of C voor de 5 knoppen. Bij het oproepen van een van deze functies, kijkt de microcontroller kortstondig of de knop ingedrukt is. Als mensen een knop indrukken, dan duurt dat typisch enkele honderden milliseconden. Het checken of een knop is ingedrukt duurt maar een paar milliseconden. Als je dus snel na elkaar kijkt of knop N is ingedruk, met de functie ispressed_sw_n, dan zal ze dus niet 1 keer, maar meerdere keren na elkaar antwoorden dat de knop is ingedrukt. Hier is het belangrijk dat we telkens het cijfer met 1 verhogen als de knop wordt ingedrukt. Daarom staat in het programma hiernaast een vertraging ingebouwd van 200 milliseconden met delay_ms(200). Zo kunnen we elke keer als de knop N wordt ingedrukt, apart tellen. In simulatie treedt dit probleem niet op. Maar op de echte hardware, moet je er altijd rekening mee houden. Speel met verschillende wachttijden om gevoel te krijgen met het gedrag in simulatie én op de hardware!

SCORE BEREKENEN De functie input is klaar. Je kan ze gebruiken om in de hoofdlus de drie cijfers van de gok van de speler op te slaan in g1, g2 en g3. Nu de speler deze cijfers kan raden moeten we natuurlijk ook kunnen controleren of die cijfers correct zijn. We geven de speler twee hints: 1. het aantal cijfers op een juiste positie 2. het aantal juist geraden cijfers die niet op een juiste positie staan De eerste hint is eveneens de score: is dit getal gelijk aan drie dan is de code gekraakt. Met de functie correct berekenen we de hints. Deze functie moet beschikken over de cijfers g1, g2 en g3 die de speler ingaf en de geheime code j1, j2 en j3. Voeg deze getallen toe als parameters aan de functie. Daarnaast willen we ook de twee hints bijhouden. Hiervoor maken we twee variabelen half en juist aan. Tot slot zorgen we dat de functie de score juist teruggeeft zodat het hoofdprogramma weet of de code gekraakt is.

Bij het begin van deze functie, staan de variabelen juist en half op nul. Telkens een cijfer juist is geraden gaan we de variabelen op een correcte manier verhogen. We beginnen bij het cijfer g1, het cijfer van de honderdtallen. Is de waarde van deze variabele gelijk aan het eerste cijfers van de geheime code j1 (g1 == j1) dan verhogen we de variabele juist met 1 (juist = juist + 1). Is de waarde van g1 gelijk aan j2 of j3 dan verhogen we de variabele half met 1. Implementeer dit met behulp van het selectie- blok zoals op deze figuur. Herhaal dit voor cijfers g2 en g3. Klaar!? Toon nu de hints juist en half op het scherm. En vergeet ook niet om de functie correct op te roepen in het hoofdprogramma!

EN NU HET ECHTE WERK... MASTERMIND OP HET DWENGOBORD Het blokschema van MasterMind is nu klaar. Met de play- knop kan je in de simulator zien hoe het werkt. Ons voorbeeld kan je zien op http://blocks.dwengo.org/mastermind Maar dat is nog niet alles. Met Dwengo Blocks kan je blokschema s ook onmiddellijk compileren tot een werkend programma in hex- formaat. De hex- codes kan je rechtstreeks programmeren op het Dwengo- bord. Dat gaat snel via deze drie stappen: Klik op de HEX- knop en download het hex- bestand. Sluit het Dwengo- bord en de programmer aan op de computer. Start de programmeersoftware op jouw computer. Een link naar de juiste software staat op http://www.dwengo.org/nl/hex

WILLEKEURIG OF TOCH NIET HELEMAAL? Wie het boekje gevolgd heeft, merkt dat zijn spelletje steeds dezelfde code gebruikt. Gelukkig is er een oplossing! We kunnen de microcontroller zelf een geheime code (de cijfers j1, j2 en j3) laten kiezen. De functie rand geeft een pseudo- willekeurig getal op basis van een wiskundig algoritme. Dat getal ligt tussen 0 en 32767. Omdat wij enkel getallen van 0 t.e.m. 9 willen, delen we het willekeurig getal door 10 en nemen we de rest van die deling. Dat kan met de modulo- operator (%). Als je het spel een paar keer opnieuw opstart, zal je zien dat toch altijd dezelfde reeks van geheime codes terugkeert. Dit komt doordat het wiskunde algoritme niet helemaal willekeurig werkt. Je moet het initialiseren met de functie srand (spiek in ons online voorbeeld). Ziezo, je bent nu een volleerde spelprogrammeur! Op naar het volgende computerspel. Bedenk daarbij dat bijna alles mogelijk is: the sky is the limit. Een paar voorbeelden: maak nu jouw eigen elektronische dobbelsteen in Dwengo Blocks, programmeer galgje in C of bouw een heuse flipperkast met het Dwengo I/O- bord.

Voor wie de microbe te pakken heeft In dit boekje leerde je grafisch programmeren met Dwengo Blocks. Uiteraard stopt het hier niet. Je kan nog veel verder experimenteren met microcontrollers. Dwengo vzw wil je daar graag bij helpen. Met Dwengo Blocks zie je al meteen de link tussen blokschema en de programmeertaal C. Je kan C compileren met MPLAB X. En vanuit C kan je verder ontdekken. Hiervoor kan je onze tutorials gebruiken die stap- voor- stap alle functies van het Dwengo- bord uitleggen. Je kan ze lezen en proberen op http://www.dwengo.org/nl/tutorials Voor C- programmeurs is er een kant- en- klare bibliotheek met handige functies voor het Dwengo- bord en de Dwengo- robot. Je leest er alles over op http://www.dwengo.org/nl/dwengo- library Verder vind je op onze site ook nog: Technische informatie: http://www.dwengo.org/nl/product- info Voorbeeld- projecten: http://www.dwengo.org/nl/blog Je kan ook zelf een super- mega- cool project posten op onze blog! Forum voor al jouw vragen: http://www.dwengo.org/nl/forum

Dwengo Blocks: eenvoudig en vlot. Flexibel en combineerbaar wat zeker een pluspunt is voor het onderwijs. Serge Vrancken, leerkracht WICO Campus Sint- Maria Kunnen programmeren is dé uitdaging voor de toekomst en Dwengo Blocks maken het tastbaar, makkelijk en bovenal LEUK!! Bram Faems, KlasCement Bekijk alle boeken van Dwengo op htttp://dwengo.org/nl/books