Inleiding
deelvragen:
Hoe werkt het Meerkamp indeling systeem?
Hoe werkt het Zwitsers indeling systeem?
Hoe werkt het Heller tabellen indeling systeem?
Hoe werkt het Berger tabellen indeling systeem? (optioneel)
Hoe implementeren wij dit op een goede manier in ons Java systeem?
Meerkamp
Het indelingssysteem Meerkamp wordt binnen UVS gespeeld over meerdere avonden. De rondes van een meerkamp worden gespeeld in groepen waar iedere speler een keer speelt tegen ieder speler. Het is ook mogelijk om de competitie enkelrondig (iedereen speelt een keer tegen elkaar) of dubbelrondig (iedereen speelt twee keer tegen elkaar) te spelen. Bij een meerkamp ingedeelde competitie is de indeling van alle rondes bij de start van de meerkamp al bekend.
Zie hier een voorbeeld van hoe een ronde binnen de meerkamp competitie werkt:
Naam | 1 | 2 | 3 | 4 | TOT |
---|---|---|---|---|---|
1 | |||||
2 | |||||
3 | |||||
4 |
Ronde 1: 1-4 2-3
Ronde 2: 4-3 1-2
Ronde 3: 2-4 3-1
Voorbeeld document van een scoreformulier van een dubbelrondige meerkamp:
Scoreformulier-vierkampen.pdf
Een meerkamp competitie wordt over meerdere avonden gespeeld. De groepen binnen de meerkampen zijn meestal gevuld met 4 spelers maar dit kunnen er ook meer zijn. Als er binnen de meerkamp competitie 5 spelers of een andere oneven getal zitten dan moet elke speler één keer een ronde uitzitten. Voor het uitzitten van een ronde ontvangt de speler een punt net als bij een overwinning alleen wordt de rating van de speler niet bijgewerkt. Bij een dubbelronde meerkamp zou dat natuurlijk twee keer per speler zijn.
Hoe krijgen wij dit werkend in onze Java applicatie?
Het meerkamp indelingssysteem lijkt mij redelijk simpel. Als de indeling gelijk wordt gedaan kan dit gebeuren met een simpele formule. Met van te voren een check of er even aantallen zijn binnen de groep is het mogelijk om het systeem gewoon door de lijst van spelers te gaan en ze een voor een op een willekeurige wijzen in te delen.
(Het is nog niet bekend welke spelers hoe de spelers zouden worden ingedeeld, is het willekeurig of is het bijvoorbeeld hoogste rating is nummer 1 en dan laagste is nummer 4. Wie bepaalt wie als eerste wit is of moet dit willekeurig gedaan worden per ronde?)
Zwitsers
Zwitsers is het meest complexe indelingsysteem dat voor klukkluk afgehandeld moet kunnen worden. Bij zwitsers is er maar een groep, en het doel van zwitsers is om mensen in deze groep nooit 2 keer tegen elkaar te laten spelen. Een toernooi dat ingedeelt wordt met een zwitserse indeling vind plaats over meerdere sessies, tussen deze sessies moeten de resultaten van de vorige sessie ingevoerd zijn, want deze zijn relevant voor het genereren van een indeling van de volgende ronde.
Voor alle rondes worden de spelers gesorteerd van best naar minst goed. Hierbij wordt eerst gekeken naar score binnen de wedstrijd, daarna naar rating, daarna naar weerstandspunten en daarna naar iets arbitrairs als een alfabetische ordening. Dit kan in ons systeem gedaan worden met een random nummer omdat we een computerprogramma maken.
Heller
Het indelingssysteem Heller wordt binnen UVS gebruikt voor de periodecompetities. Het heller indelingssysteem heeft ongeacht het aantal spelers altijd 5 rondes. De ontvangen voorbeelden bevatten schema's voor 8 ,10 en 12 spelers. Binnen het Heller systeem zit er variatie in de verschillende rondes, het kleursaldo (Wie begint met welke kleur) en de som tegenstanders.
De ronde indeling wordt gelijk al bepaald voor alle rondes i.p.v. dat de winnaar van het ene potje speelt tegen de winnaar van een andere.
Schema 1; Het huidige in Rokade
P1 | P2 | P3 | P4 | P5 | Kleursaldo | Som tegenstanders | |||||
R1 | 1-10 | 2-9 | 3-6 | 4-7 | 5-8 | 1: +1; | 6: +1; | 1: 27; | 6: 27; | ||
R2 | 7-1 | 8-2 | 9-3 | 10-4 | 6-5 | 2: -1; | 7: -1; | 2: 28; | 7: 28; | ||
R3 | 5-1 | 2-4 | 3-8 | 10-6 | 7-9 | 3: -1; | 8: +1; | 3 :28; | 8: 27; | ||
R4 | 1-3 | 6-2 | 4-5 | 8-7 | 9-10 | 4: +1; | 9: +1; | 4: 27; | 9: 27; | ||
R5 | 1-2 | 4-3 | 9-5 | 6-7 | 8-10 | 5: -1; | 10: -1 | 5: 28; | 10: 28; |
Een periodecompetitie bestaat uit een aantal groepen van spelers. Deze groepen zijn niet noodzakelijk allemaal even groot.
Iedere groep speelt vijf ronden (een ronde per avond). De indeling van alle ronden is bij de start van de periodecompetitie bekend.
Het indelingssysteem Heller heeft vanuit het meegegeven document van UVS
Implementatie
Strategy pattern