Programmeermethoden

Programmeermethoden
Werkcollege 8: Op papier II en Derde opgave II

Het achtste werkcollege van het vak Programmeermethoden vindt plaats in de week van 27 tot met 31 oktober 2025.

Voorbereiding

Als voorkennis wordt bekend verondersteld:

Het eigenlijke werkcollege

Doe deze opgaven op papier. Maak allereerst de opgaven 1a en 2a.

Werk verder aan de derde programmeeropgave. Zie ook de tips bij het zevende werkcollege.

Vergeet niet een constructor te maken, die bijvoorbeeld de LightsOut-puzzel "schoon" maakt.

  1. Zorg er allereerst voor dat het menu werkt, zie zoals gezegd het zevende werkcollege. Maak in het menu eenmalig een object MijnPuzzel van klasse (class) puzzel. Let goed op waar je dit doet. (Als je dit object moet doorgeven, bijvoorbeeld aan een submenu, vergeet dan niet dat dit call-by -reference moet.)
  2. Maak de memberfunctie(s) maakschoon ( ): de hele puzzel .
  3. En zorg er voor dat de memberfuncties afdrukken ( ) en vulrandom ( ) in orde zijn, zie sheet 3–10 van het achtste college. Hoe gaat de "cursor" werken (zie ook later)? Hoe gebruik je de randomgenerator van sheets 9 en 10 op een redelijke manier?
  4. Gebruik leesOptie en leesGetal, deze laatste om bijvoorbeeld de nieuwe hoogte in te lezen. Dit gebeurt in het Parameter-menu.
  5. En laat de symbolen voor lampen aan en uit aanpassen. Dwing af dat ze verschillend zijn. Membervariabelen! Memberfuncties!
  6. Werkt het wijzigen van het random-percentage? Membervariabele! Memberfunctie!
  7. Maak nu het toggelen onder de "cursorpositie"; dit is een eenregelige functie (tip: b= ! b;). De cursorpositie bestaat uit twee membervariabelen; let erop of deze altijd corresponderen met een punt binnen de puzzel, en laat de functie afdrukken ( ) de positie netjes in beeld brengen.
  8. Maak ook het "verplaatsen" van de cursor.
  9. Zijn de drie "pen-opties" af?
  10. Genereer een oplosbare puzzel door een aantal random zetten te doen.
  11. Schrijf de volg-optie: loop de rijen af en klap op de rij eronder de lamp-status om.
  12. Los een 5 bij 5 puzzel op — als het kan. Zie de opmerkingen op de Wikipedia-pagina.
  13. Maak tot slot de andere opties af.

Huiswerk

Maak opgaven met arrays uit de opgavenbundel (Opgaven 31 tot en met 36).

De antwoorden op de opgaven worden tevens via WWW verspreid, evenals de uitwerkingen van oude tentamens. Als er vragen over de opgaven zijn, laat het weten.