AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zählsystem für Tennis entwickeln

Ein Thema von torud · begonnen am 21. Sep 2007 · letzter Beitrag vom 27. Sep 2007
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 14:50
Hallo Ronny,

ich bin wie schon erwähnt noch immer unterwegs, werde mir aber morgen Vormittag den Code ansehen und testen. Wenn ich noch Zeit finde, schaue ich hier nochmals im Notepad in den Code. Was mir gerade noch einfällt und es tut mir leid, dass das hier so kleckerweise kommt, ist der Aufschlag im Tiebreak.

Sicher stöhnst Du jetzt schon das erste mal, aber auch da gibt es eine spezielle Regel, die allerdings immer im Tiebreak zum Tragen kommt. Nehmen wir an, dass der Spieler A Aufschlag hat und das es derzeit 5:6 im ersten Satz steht. Er gewinnt das Spiel zum Spielstand 6:6.

Nun hat normalerweise Spieler B Aufschlag. Er tätigt auch den ersten Aufschlag. Danach hat Spieler A wieder Aufschlag. Der Aufschlag wechselt nach dem 1. Aufschlag von Spieler B immer im 2er Rythmus. Also B 1 mal, dann A 2 mal, dann B 2 mal und dann wieder A 2 mal, solange bis der Tiebreak ausgespielt wurde und der Satz damit entschieden ist. Ich könnte nun den Aufschlag auch manuell vom Code her wechsln lassen, aber mir wäre es lieber, wenn die Tennisklasse das tut.

Ich schau also morgen mal in Deinen Code. Weitere Details zur Verwendung werde ich dann auch noch bekanntgeben. Es wird jedenfalls KEINE Verkaufslösung.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 15:21
Das ist aber Tie-Break und kommt damit erst in der Satz-Klasse zum tragen laut Logik, also kein Grund zum Stöhnen, weil die Satzklasse immer noch ein leerer Dummy ist.

Edit: evtl. kann man auch ähnlich der Spiel-Klasse eine TieBreak-Klasse anlegen, die die Regeln und evtl. Sonderregeln des TieBreak beinhaltet.
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 15:43
Hello Again,

ich habe gerade folgenden Code gefunden:

 TieBreak: array[1..2] of Byte; Sachmal, wenn die Tiebreak-Punkte vom Typ Byte sind, wäre doch bei 7 Schluss, oder!? Also ich glaube, dass ein Byte nur von 0-7 geht. Oder? Aber ein Tiebreakt kann doch auch auch 11:9 enden, oder was zählt Du damit?


Habe gerade weiter im Code gesehen, dass ja, wie von Dir geschrieben nur die Punkte derzeit gezählt werden und die Games noch nicht, was dazu führt, dass die Tiebreak-Regel noch gar keine Anwedung findet. Aber trotzdem. Was soll mit Tiebreak gezählt werden. Die Tiebreak-Stände? Von 0:0 bis z.B. 13:11?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 15:45
Zitat von torud:
Also ich glaube, dass ein Byte nur von 0-7 geht
Du hast da was verwechselt: ein Byte hat 8 Bit. Daraus ergeben sich 2^8 Möglichkeiten, also von 0 bis 255.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#35

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 15:52
Exakt... von 0-255 wenn das nicht reicht könnt man über Word (0-65535) nachdenken.

Ja... in dem Record sollen die Daten eines Satzes erfasst werden. Das heißt Spielpunkte + TieBreak letztlich fließt ein Array dieser Satz-Stände in das Record der Ausgabedaten mit ein.

Ob und wie man das noch abändern sollte/kann werden wir ja sehn, sobald wir es brauchen..
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 26. Sep 2007, 17:27
Man ist das peinlich. Da habe ich wohl wirklich was durcheinander gebracht...Sorry.

Von daher muss der Datentyp für den Tiebreak nicht geändert werden...
Danke
Tom
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 27. Sep 2007, 11:18
So, also ich wollte ja nun eigentlich etwas weitermachen. Erstmal ein Lob, da bisher alles super funzt.

Nun zu meinen Problemen, weil ich ja eigentlich auch was an der Klasse machen wollte. Ich habe also folgendes der Tennis.Unit hinzugefügt:

Delphi-Quellcode:
  // Satz-Klasse
  TE_Satz = class
  private
    FGames : array[1..2] of Byte; //für die spielpunkte in einem satz
    FActSet : Byte; //um zu wissen, in welchem satz ich bin...
  public
    // setzt GamePunkte und gibt zurück, ob dar Satz beendet ist
    function SetGamePoint(const Spieler: TE_Spieler; const Undo: Boolean) : Boolean;
  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)]);

end;
Nun habe ich im Hauptprogramm mal versucht, nicht mehr nur die Punkte zu setzen, sondern auch auf das Boolean von SetPoint zu reagieren, da wir ja in dem Fall einen Punktgewinner haben und wollte eigentlich nur mal ganz stupide den Punktestand hochzählen. Allerdings ist dem Hauptprogramm die Funktion SetGamePoint nicht bekannt, obwohl ich diese als Public deklariert habe. Warum das eigentlich? Fehlt mir hier der Create?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Zählsystem für Tennis entwickeln

  Alt 27. Sep 2007, 15:09
Dein Problem ist ein wenig das Verständnis des Klassenkonzepts, und das mein ich nicht abwertend.
Du musst immer die in der Logik höchste Klasse erzeugen. Die erzeugt dann die nächst niedrigere.

Code:
TE_Match --erzeugt--> TE_Satz --erzeugt--> TE_Spiel
                                           TE_TieBreak
Mal ein Bespiel für die spätere Verwendung:

Du erzeugst eine TE_AusgabeListe und fügst alle nötigen Objekte basierend auf ITE_Ausgabe da ein.

Du erzeugst ein TE_Match mit eben diser Ausgabeliste.

Du setzt die zu verwendenden (Sonder)regeln

Du initiierst ein Match mit n Sätzen.

> TE_Match erzeugt jetzt ein Array mit n TE_Satz Objekten, welche auch gleich erzeugt werden.
> TE_Match setzt den ersten Satz als aktuellen
> TE_Satz(0) erzeugt daraufhin seine TE_Spiel Klasse

Du Sendest nun einen Kommando an die TE_Match Klasse

> TE_Match prüft ob es damit etwas anfangen kann, wenn nicht geht es weiter an TE_Satz(aktuell)
> TE_Satz(aktuell) prüft ob es etwas damit anfangen kann wenn nicht geht es weiter an die TE_Spiel oder TE_TieBreak Klasse

-----------------------

Das ganze könnte man in der Tat auch innerhalb nur einer Klasse lösen. Aber so hat jede Klasse nur einen teil der Funktionalität. In deinem speziellen Fall müsstest du also dafür sorgen, dass TE_Satz sauber erzeugt wird und schon einmal ein Spiel vorbereitet. Auch die Durchleitung der Befehle muss implementiert sein. Dass dein SetGamePoint nicht mit mySpiel funktioniert ist klar. mySpiel ist ein Objekt vom Typ TE_Spiel und nicht TE_Satz.
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 27. Sep 2007, 19:29
Ähm, also ich glaube, ich lass es lieber, denn das einzige, was ich verstanden habe, waren Deine letzten 2 Sätze. Du lagst also gar nicht soo verkehrt mit Deiner Vermutung mit meinem Verständnis...Ist mir wahrscheinlich alles zu abstrakt...Ich werde sicher nicht gleich komplett aufgeben, aber ich denke nicht, dass ich den Weg so gehen werde, nachdem ich feststellen musste, dass ich zwar Deinen bisherigen Code verstanden habe, aber den Weg über Match=>Set=>Game nicht finden werde. Die ist nun keine Bettelei um weiteren Code, denn der würde mir sicher nichts bringen, wenn ich später weitere Anpassungen vornehmen müsste. Der ganze Kram, bitte nicht falsch verstehe, mit der TE_AusgabeListe scheint mir logisch, aber ich verstehe einfach nicht, was wo und wie mit dem Created werden muss und und und...PEIN komme über mich!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#40

Re: Zählsystem für Tennis entwickeln

  Alt 27. Sep 2007, 19:45
Na soooo schnell würd' ich nicht aufgeben... ich glaub, wenn die Satz-Logik steht kriegst du den Rest auch selbst hin

OOP ist halt dahingehend übersichtlicher, dass immer kleine Logikstücke gekapselt sind.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz