In een moderne speelkamer, voor groot en klein, staat naast een kast vol bordspellen meestal ook een spelconsole voor het spelen van een videospel. Misschien ook nog een doos of twee Lego maar daar gaat deze oefening niet over.

In deze oefening programmeren we de klasse Speelkamer, een klasse die objecten van het type Bordspel of
Videospel verzamelt in een ArrayList. Je maakt in BlueJ het project Speelkamer met volgende interface of klassen:
Spel: de code van interface Spel kan je hier downloaden.Bordspel: de code van Bordspel kan je hier downloaden.Videospel: de code van Videospel kan je hier downloaden.Speelkamer: kopieer alvast de boilerplate-code uit de indiensectie op deze pagina naar jouw project.
Bestuderen we eerst interface Spel:
public interface Spel
{
void gespeeld();
int aantalKeerGespeeld();
void print();
}
Elke klasse die de interface Spel implementeert, moet 3 methoden implementeren:
void gespeeld()
Deze methode gebruik je om aan te geven dat je het spel gespeeld hebt.
int aantalKeerGespeeld()
Deze methode geeft aan hoeveel keer het spel gespeeld werd.
void print()
Toont informatie over het spel in het Terminalvenster van BlueJ.
Beide klassen implementeren de interface Spel maar hebben een gedrag dat licht verschillend is. Onderzoek
zelf de verschillen in beide implementaties. Testen is uiteraard de te volgen weg!
Programmeer de klasse Speelkamer:
Het enige veld is een ArrayList die objecten van het type Videospel en Bordspel verzamelt.
Initialiseer het enige veld in de constructor.
void toevoegen(...)
Voegt een bord- of videospel toe aan de speelkamer of ArrayList.
... opvragen(int index)
Geeft het bord- of videospel op de gegeven index terug. Op voorhand testen of de index geldig is!
void gespeeld(int index)
Het bord- of videospel op de gegeven index werd gespeeld. Alvorens het
object op de gegeven index op de hoogte te brengen van het spelen, test je
of de index geldig is.
... meestGespeeld()
Geeft het bord- of videospel terug dat het meest gespeeld werd. Bij gelijke stand, geef je het object met
de laagste index in de ArrayList terug.
void print()
Toont een overzicht van de verzamelde spellen in het Terminalvenster van BlueJ.
