Les 5: Lijsten
Deze week gaan we verder met een laatste concept dat erg handig is voor basis programmeren: Lijsten
Sheets van de les
Videos, tutorials en references
- https://processing.org/tutorials/arrays. Uitleg van Processing zelf over arrays (niet ArrayLists!)
- https://processing.org/reference/ArrayList.html. Processing reference over ArrayLists
- https://happycoding.io/tutorials/processing/arraylists. Tutorial van Happy Coding
Opdrachten
Opdracht 1: Huisjes tekenen
Helemaal in week 1 heb je een eenvoudig huisje getekend. In deze opdracht ga je een class maken waarin een huisje getekend wordt. Vervolgens ga je meerdere instanties (objecten) van deze class maken en ze toevoegen aan een lijst. Bij het tekenen gebruik je deze lijst om elk huisje te tekenen.
- Maak een class Huis aan. Een huis heeft een x en y positie en een bepaalde hoogte en breedte.
- Maak in de class een methode draw() die het betreffende huis tekent. Zorg dat het huis op de juiste plek en met het juiste formaat getekend wordt.
- Maak om te te testen in je hoofdclass 1 huis aan en roep de draw() functie van het huis aan in de draw() functie van je hoofdclass.
- Maak tot slot, als het voor 1 huis werkt, een lijst met 20 huisjes aan die allemaal een willekeurige positie en hoogte/breedte hebben. Zorg dat ze allemaal getekend worden. Als het goed is is je draw() methode in de hoofdclass lekker kort.
Opdracht 2: Penguin
We gaan ons Penguin spel uitbreiden door de 3 losse visjes die we hadden toegevoegd te vervangen door een lijst. Je eindigt dan met een spelletje met een dynamisch lijst van visjes:
- Begin met het maken van een ArrayList van visjes (zie sheets)
- Voeg 5 vissen toe aan de lijst. Geef de vissen een willekeurige positie en een willekeurig type.
- Update de draw() methode zodanig dat daarin de lijst van vissen doorlopen wordt en elke vis getekend wordt.
- Zorg dat, als de speler botst met een vis, deze 'opgegeten' wordt, ofwel verwijderd uit de lijst.
- Zorg dat, na het opeten van een vis, een nieuwe willekeurige vis verschijnt op een willekeurige plek. Voeg deze weer toe aan de lijst.
