Een laddertornooi is een club kampioenschap voor tennis of padelclubs waarbij men
zich als team (2 spelers) kan inschrijven. Het doel is dat
je op het einde bovenaan de ladder staat door teams die boven jou op de ladder
staan uit te dagen. Een team dat reeds is uitgedaagd of ander team heeft uitgedaagd, kan niet meer
uitgedaagd worden of uitdagen. Indien de uitdager wint, neemt men de plaats van
de uitgedaagde in op de ladder en zakt de uitgedaagde naar de plaats van de uitdager.
Gegeven:: de klasse Speler
Gevraagd: maak een klasse Laddertornooi
Instantievariabelen (0.5 punt)
De klasse Laddertornooi heeft de volgende instantievariabelen:
- De instantievariabele teams bevat een array van Team objecten. Deze collectie bevat
alle teams die meedoen aan de ladder en de index bepaalt ook de ranking van een team.
- De instantievariabele aantalTeams van het type int houdt bij hoeveel teams er werden
toegevoegd aan de ladder.
enum (0.5 punten)
Voeg aan de klasse een enum Resultaat toe met drie mogelijke waarden: gewonnen, verloren en gelijk.
(0,5 punten)
Methodes (5 punten)
- De constructor heeft als parameters het maxAantalTeams dat kan meedoen aan de ladder. Deze parameter
wordt gebruikt voor het initialiseren van de teams instantievariabele.
(0.5 punten)
- De private methode swapTeams met als parameter twee rankings. Deze methode wisselt
de ranking van de twee teams.
(1 punt)
- De public methode bepaalRanking met als parameter een String teamID. Deze methode retourneert
de ranking van het Team met overeenkomstig teamID. Indien het Team niet wordt gevonden wordt -1 geretourneerd.
Opgelet: Het team dat bovenaan de ranking staat heeft de ranking 1 (en niet 0).
(1 punt)
- De public methode toevoegenTeam heeft als parameters twee speler objecten. De methode maakt een team
en voegt dit team toe aan de teams instantievariabele. Het Team object wordt geretourneerd. Indien de ladder
reeds volzet is, wordt null geretourneerd.
(1 punt)
- De methode toevoegenWedstrijd met als parameters twee Team objecten. Deze methode
controleert of beide teams nog niet betrokken zijn bij een wedstrijd. Indien dit niet
zo is, wordt dit aangepast in de twee team objecten door het wijzigen van de
instantievariabele inWedstrijd.
(0.5 punten)
- De methode toevoegenResultaatWedstrijd heeft drie parameters: id van team1, id van
team2 en het resultaat van de wedstrijd weergegeven via de enum Resultaat. Indien team1 heeft gewonnen
en dit team een lagere ranking had dan team 2, zal de methode de twee teams van plaats wisselen. Onafhankelijk
van winst, verlies of gelijk zijn beide teams na uitvoeren van de methode opnieuw beschikbaar voor wedstrijden.
Opgelet: Je mag veronderstellen dat beide teams een wedstrijd tegen elkaar moesten spelen.
(1 punt)
Testen methodes (1 punt)
Voeg een main methode toe die:
- vijf teams toevoegt aan een nieuw laddertornooi. Hiervoor heb je 10 spelers nodig.
Code voor het aanmaken van Spelers vind je in de main van de Speler klasse.
- twee wedstrijden toevoegt tussen 4 verschillende teams.
- een resultaat voor 1 van de wedstrijden toevoegt waarbij 1 van de teams in ranking stijgt.
(1 punt)