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 3 von 5     123 45      
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 23. Sep 2007, 20:35
und wie creiere ich den Drawer? Von was leite ich ab? Habe sowas noch nicht gemacht. *Schäm*

Ich frage halt, weil ich ja hier

  mySpiel := TE_Spiel.Create(nil); den Drawer nicht angeben konnte. Liegt das daran, dass ich ihn selbst noch nicht creiert habe?
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
 
#22

Re: Zählsystem für Tennis entwickeln

  Alt 23. Sep 2007, 20:37
Genau. zudem fehlt dem Drawer auch noch jegliche Funktionalität...

Nur ein Hinweis am Rande... das Erzeugen des TE_Spiel sollte später auch aus TE_Satz heraus erfolgen und nicht direkt im Code.

Zum Schluss brauchst du nur noch eine Match-Klasse zu initiieren und die verschiedenen Ausgabeklassen.

u.U. kann man den Drawer auch noch anders machen... mh... ich lass mir mal was einfallen.
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 23. Sep 2007, 20:41
Ok das ist schon klar, aber wie muss ich nun vorgehen? Ich muss ja den Drawer irgendwo erzeugen und er muss ja auch wissen wohin er schreiben soll. Ich würde dem Drawer einfach ne Funktion geben, wie ShowStandings, die dann immer alles rausschickt...
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
 
#24

Re: Zählsystem für Tennis entwickeln

  Alt 23. Sep 2007, 20:46
siehe edit oben... kannst du mal anhängen, was du hast, ich würd mir das noch mal ansehn, aber nich jetzt
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 23. Sep 2007, 20:52
So hier im Anhang ist nun die aktuelle Version.

Ich habe mal eine Routine reingebastelt, die zumindest die Punkte mal in die Labels schreibt. Der aktuelle Aufschläger wird sich leider noch nicht gemerkt.

Folgendes habe ich noch gefunden, was nicht ganz passt.

Wenn ich direkt zu Beginn einen Minus-Button drücke erscheint eine 15 für A und eine 30 für B. Gebe ich dann wieder einen Plauspunkt springt die Anzeige wieder auf 0 zurück.

Wenn ich Deuce (40:40) simuliere und dann A einen Punkt gebe, erscheint für A ein A. Das ist korrekt. Gebe ich dann B wieder einen Punkt, wäre wieder Deuce (40:40). Stattdessen erscheint aber A:A. Gebe ich dann wieder A einen Punkt, beendet er das Spiel, obwohl das eigentlich nicht korrekt ist. Richtig wäre A:40
Angehängte Dateien
Dateityp: zip tennis_296.zip (4,6 KB, 4x aufgerufen)
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
 
#26

Re: Zählsystem für Tennis entwickeln

  Alt 24. Sep 2007, 15:46
Null-Prüfung, Advantage Regelung, Deuce-Zähler und Aufschlagwechsel waren auch noch nich implementiert
ich hab mir was zu der Ausgabe überlegt. Ist wohl besser, wenn Spiel und Satz-Klassen nur ihre Match-Klasse kennen. Diese dann aber eine Liste von Ausgabeklassen kennt, die sie nach und nach ansprechen kann. Auf die Weise kannst du die Ausgabe auf so viele Art und weisen umlenken wie du brauchst/willst. Werd das versuchen im Code schon mal vorzubereiten, inkl. einer Basisklasse/Interface für Ausgaben von der du ableiten kannst
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 24. Sep 2007, 18:07
You are my hero!

Falls Du regeltechnisch noch was wissen musst, lass es mich wissen...
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
 
#28

Re: Zählsystem für Tennis entwickeln

  Alt 25. Sep 2007, 08:23
Sooooo... hab ein wenig gefrickelt:

1.) Dem Spiel (später dem Satz/Match) wird jetzt eine Liste von Ausgabe-Objekten übergeben

2.) Die einzelnen Ausgabe-Objekte müssen von einem Interface abgeleitet werden (wg. der Typsicherheit)

3.) Ich hab eine Wrapperklasse auf Basis des Interfaces für Objektmethoden gebaut. Damit ist Cross-Referencing überflüssig

4.) Die Regeln für ein Spiel müssten jetzt soweit funktionieren incl. Advantage, Deucezähler, Aufschlagwechsel und Nullprüfung

5.) ich hab dein Demo-Projekt an die neuen Klassen angepasst

6.) Gibt es jetzt folgende Hilfsfunktionen:
PunkteToStr(TE_Punkte):string
SpielerToStr(TE_Spieler):string
Gegenspieler(TE_Spieler):TE_Spieler

Ich hoffe mal das ist dir sauber genug.

Edit: Bekomm ich nen Credit im fertigen Prog?

Edit 2: Ich hab mal einen groben Strukturplan angehängt, der evtl. eher aufzeigt, wie ichs mir gedacht hab
Miniaturansicht angehängter Grafiken
flow_768.gif  
Angehängte Dateien
Dateityp: zip tennis_779.zip (4,4 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
torud

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

Re: Zählsystem für Tennis entwickeln

  Alt 25. Sep 2007, 15:43
Hallo Ronny,

erst einmal vielen Dank und grosses Lob für Deine Mitarbeit. Ich denke, dass dies nicht nur für mich wichtig ist, sondern, dass damit sicher auch einige Spieleprogrammierer was anfangen können.

Ich habe leider erst übermorgen Zeit den Code zu testen, da ich gerade beruflich unterwegs bin. Ich habe mir den Code aber schon mal in Notepad angesehen. Dabei habe ich mich gefragt, ob ich richtig gesehen habe, dass Du den Aufschlag bei einem Punkt von Spieler_B wechselst, wenn Spieler_A den Aufschlag hatte!? Aber das kann auch nur ein Missverständnis sein, dem ich beim Überfliegen unterlegen war, denn der Aufschlag und das weisst Du sicher, wird nur nach jedem Spiel gewechselt.

So, um die ganze Sache noch abzurunden und ich denke, dass alle Mitleser und Nutznießer dies sicher schon fragend in sich bemerkt haben, noch 2 Punkte.

Im Tennis gibt es noch 2 wichtige Regeln.

1. Es gibt Doppel-Spiele, bei denen die sogaenannte No-Ad-Regel zum tragen kommt. Wie sieht diese Regel aus? Ganz einfach. Um das Spiel attraktiver für die Zuschauer zu machen, gibt es Turniere, wo es KEINEN Vorteil bei Doppelspielen gibt. Die trägt dazu bei, dass die Spiele schneller entschieden werden. Ich habe leider vergessen diese Checkbox in mein Beispielprogramm einzubinden und diese Erläuterung im Eingangsposting mit einzubinden. Sicher, weil es einfach zu viel auf einmal gewesen wäre. Das bedeutet, dass das Team, welches bei 40:40 den nächsten Punkt macht den Spielpunkt erhält.

2. Bei bestimmten Turnieren und Veranstaltungen ist es so, dass die Advantage-Final-Set-Regel zum tragen kommt. Das heisst, dass bei einem Best-of-3 der dritte Satz, wenn die vorhergehenden 2 Sätze 1:1 ausgegangen sind OHNE Tiebreak gespielt werden. Bei einem Stand von 6:6 geschieht nun folgendes. Es wird solange weiter gespielt, bis ein Spieler 2 Spielpunkte Abstand vom anderen hat. Also wäre der 3 Satz gewonnen, wenn der Spielstand zum Beispiel 6:8 wäre. Ein 11:9 wäre aber auch gültig. Hierfür müsste ich auch noch eine Checkbox einpflegen. Ich werde mal versuchen in Deinen Code, der so herrlich übersichtlich ist, einzusteigen, um dies umzusetzen.

Solltest DU noch Lust und Laune haben, könntest Du mir ja noch nen Hinweise geben, falls ich was wichtiges dabei zu beachten habe.

Einen Credit im Tool? Den sollst Du unbedingt haben. Wird ein FETTER!!! Definitv. Wenn es so weit ist, werde ich Dir nen Screenshot senden. Ist mit Sicherheit ne gute Referenz. Ok?

Noch eine Frage:
Wie kann ich es händeln, dass die Klassen auch den aktuellen Spielstand erfahren, wenn die Daten von externer Schnittstelle kommen? Es ist ja nur so, dass die Steuerung von Hand vorgenommen werden soll, wenn die externe Steuerung versagt, aussetzt oder nicht schnell genug ist, weil sich zum Beispiel der Chair Umpire Zeit lässt oder vergessen hat den Punkt ins System zu geben. Das bedeutet, dass die Klssen im Laufenden Betrieb den Inhalt erfahren müssen, um aktuell zu sein. Köönte ich die nun auch von AUSSEN befüttern?
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
 
#30

Re: Zählsystem für Tennis entwickeln

  Alt 25. Sep 2007, 17:32
Zitat von torud:
der Aufschlag und das weisst Du sicher, wird nur nach jedem Spiel gewechselt.
nein, wusst ich nicht.

Nachtrag: Aber jetzt isses nich mehr drin, statt dessen eine Eigenschaft zum ansteuern: TE_Spiel.Service:TE_Spieler

Zitat von torud:
... Das bedeutet, dass das Team, welches bei 40:40 den nächsten Punkt macht den Spielpunkt erhält.
lässt sich nachrüsten... kein Ding.

Nachtrag: Eingebaut. aktivierbar über die Eigenschaft: TE_Spiel.NoAdRegel:Boolean

Zitat von torud:
Advantage-Final-Set-Regel zum tragen kommt.
Das gehört für mich logisch in die Satz-Klasse, wenn nicht gar in die Match-Klasse.

Nachtrag: Genau genommen in beide. Das Match muss wissen, dass diese Regel gilt. Und der Satz erst wenn es der letzte Satz ist.

Zitat von torud:
Solltest DU noch Lust und Laune haben, könntest Du mir ja noch nen Hinweise geben, falls ich was wichtiges dabei zu beachten habe.
Das Thema ist recht interessant.. jedenfalls für mich, also wenns Probleme gibt...

Zitat von torud:
Einen Credit im Tool? Den sollst Du unbedingt haben. Wird ein FETTER!!! Definitv. Wenn es so weit ist, werde ich Dir nen Screenshot senden. Ist mit Sicherheit ne gute Referenz. Ok?
supi

Zitat von torud:
Wie kann ich es händeln, dass die Klassen auch den aktuellen Spielstand erfahren, wenn die Daten von externer Schnittstelle kommen?
Recht simpel... eine Klasse baun, die diese Schnittstelle abfragt und kapselt. Eventuell regelmässig über einen extra Thread abfragt. Ein Objekt von so einer Klasse muss halt das Match-Objekt kennen um die Befehle dahin zu senden.

Mit einer externen Ausgabe läufts ja ähnlich: eine Klasse baun, die ITE_Ausgabe kapselt, da dann halt die steuerung für das externe System kapseln und ab gehts.

Wird das irgendwann auf nem Platz in Sachsen laufen? Kann mans in Aktion erleben?

Nachtrag: Mal die neue Version angehangen
Angehängte Dateien
Dateityp: zip tennis_883.zip (4,8 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 07: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