für die Punkte würde ich eine Enumeration nehmen..
type TPoints = (tp0, tp15, tp30, tp40, tp40A);
afaik müssten die sich mit Inc() und
Dec() wie jeder ordinale Typ behandeln lassen.
Die Punkte würde ich innerhalb eines Spiels für beide Seiten verwalten.. am besten in einer Klasse mit eigener Steuerung.
Die Spiele dann wiederum in einem Satz, wobei dort dann auch das mit dem Tiebreak einfliessen kann.
Die Sätze schliesslich in einem Match.
Macht also ein Spieler einen "Treffer", gibt man die Info an das Match, das gibt es an den akt. Satz weiter und von da in das akt. Spiel wo dann entschieden wird ob, bzw. wer einen Punkt bekommt. Wenn das Spiel sich als "gewonnen erklärt", muss dann der Satz entscheiden, wie es weiter geht, das selbe bei gewonnenem Satz in Richtung Match.
Das ganze in Code fassen ist mir aber ein bisschen zu viel auf die Schnelle