Wie veel bordspellen bezit, moet op zoek naar een kast om ze in te verzamelen. Liefst met een systeempje. Alfabetisch zoeken of zoeken op aantal spelers lijken goede kanshebbers maar ook sorteren op populariteit (= aantal keer gespeeld) behoort tot de mogelijkheden.
Nu denk je borspellen, wie houdt zich daar mee bezig? Wel daar is een heuse markt voor met eigen kwaliteitslabels. Wie een spel bedenkt dat beloond wordt met een label van Spiel des Jahres1, kan op heel wat belangstelling rekenen.
In deze oefening programmeren we de klasse Spellenkast
, een klasse die instanties van de klasse Bordspel
verzamelt in een ArrayList
. Je maakt in BlueJ het project Spellen met volgende klassen:
Bordspel
: de code van Bordspel
kan je hier2 downloaden.Spellenkast
: kopieer alvast de boilerplate-code uit de indiensectie op deze pagina naar jouw project.Van de klasse Bordspel
willen we twee methoden toelichten. De methode gespeeld()
kan je oproepen wanneer je het
spel gespeeld hebt. Er wordt dan telkens een teller verhoogt met 1.
public void gespeeld()
{
aantalKeerGespeeld++;
}
De methode print()
test je best eens op voorhand. Zo zie je de uitwerking van deze methode in het Terminalvenster van
BlueJ.
public void print()
{
System.out.println(naam + " (" + aantalSpelers + " spelers) --> " + aantalKeerGespeeld + " keer gespeeld");
}
Programmeer in de klasse Spellenkast
volgende methoden:
int aantalSpellen()
Geeft het aantal spellen in de spellenkast terug.
void spelToevoegen(Bordspel)
Met deze methode voeg je een instantie van de klasse Bordspel
toe aan de ArrayList kast
.
void spelGespeeld(int)
Het spel op de gegeven index werd gespeeld. Test eerst of de gegeven index geldig is.
void print()
Toont informatie over de spellenkast in het Terminalvenster van BlueJ.
int spellenVoorAantalSpelers(int)
kast.spellenVoorAantalSpelers(6)
returned int 2
Bordspel geefSuggestie(int)
We zijn met zes spelers. Welk spel zouden we spelen? Deze methode suggereert het eerste spel in de
spellenkast voor het gevraagde aantal spelers in de paramater.
boolean genoegSpellenVoorFeestje(int)
Een liefhebber van bordspellen in actie.