Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#41

Re: Zählsystem für Tennis entwickeln

  Alt 27. Sep 2007, 22:48
Ok, also ich habe mich ein Stück weit vor gewagt, aber nur insofern, als dass ich versuche irgendeinen Weg zu gehen, damit es überhaupt geht.

Die Deklaration der Satzklasse sieht nun so aus:
Delphi-Quellcode:
  // Satz-Klasse
  TE_Satz = class
  private
    FAusgabe: TE_AusgabeListe; //unwissend übernommen, damit es überhaupt geht
    FGames : array[1..2] of Byte; //soll die spiele innerhalb des satzes zählen
    FActSet : Byte; //welcher satz
  public
    // setzt GamePunkte und gibt zurück, ob dar Satz beendet ist
    constructor Create(Ausgabe: TE_AusgabeListe);
    function SetGamePoint(const Spieler: TE_Spieler; const Undo: Boolean) : Boolean;
  end;
Und folgendes gibts noch an Code. Die masse ist nur abgeschrieben und zusammengestammelt.
Delphi-Quellcode:
constructor TE_Satz.Create(Ausgabe: TE_AusgabeListe);
begin
  FAusgabe := Ausgabe; //was auch immer hier geschieht
end;

function TE_Satz.SetGamePoint(const Spieler: TE_Spieler; const Undo: Boolean) : Boolean;
begin
  if Spieler = tskein then Exit;

  // Nullprüfung:
  if (FGames[Ord(Spieler)] = 0) and Undo then
    Exit;

  if Undo then
    Dec(FGames[Ord(Spieler)])
  else
    Inc(FGames[Ord(Spieler)]);
    ShowMessage(inttostr(FGames[Ord(Spieler)])); //FGames wird korrekt befüllt
end;
Das Showmessage stimmt schonmal. Nur komme ich derzeit nicht an die Daten ran, weil ich das Konstrukt um die Daten nicht verstehe.

Entscheidend scheint mir das hier zu sein:
Delphi-Quellcode:
  // Datenhaltung für Sätze
  TE_SatzDaten = record
    Punkte: array[1..2] of Byte;
    TieBreak: array[1..2] of Byte;
  end;

  // array der Satzdaten
  TE_SatzArray = array of TE_SatzDaten;

  TE_AusgabeDaten = record
    // Punkte der Sätze
    Saetze: TE_SatzArray;
    // Wer hat grade Aufschlag
    Aufschlag: TE_Spieler;
    // Aktuelle Punkte im Spiel
    AktSpiel: array[1..2] of TE_Punkte;
    // Wie umkämpft?
    AnzDeuce: Word;
    // Gerade im TieBreak?
    AktTieBreak: Boolean;
  end;
Aber wie sieht denn nun mein Aufruf in der SetzeLabels aus?
Daten.Saetze...!?
Danke
Tom
  Mit Zitat antworten Zitat