AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Herausfinden ob Breakpoint ist oder nicht - Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Herausfinden ob Breakpoint ist oder nicht - Wie?

Ein Thema von torud · begonnen am 13. Jun 2012 · letzter Beitrag vom 18. Jun 2012
Antwort Antwort
torud

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

Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 11:26
Delphi-Version: 7
Hallo Wissende,

ich habe zur Verfügung den Punktestand von Spieler A (30) und B (40) und weiss wer den Aufschlag (A) hat.

In dem konstruierten Fall hat Spieler A den Aufschlag und nur 30 Punkte und Spieler B hat 40 Punkte. Somit haben wir die Situation, dass wir einen Breakball haben.

Breakball ist immer, wenn der Aufschlagsempfänder 40 Punkte oder Vorteil hat und der Aufschlagende weniger Punkte als der andere hat. Bei 0 - 40 hätte man zum Beispiel 3 Breakballe, weil man 3 mal die Chance hat mit dem nächsten Punkt das Spiel zu gewinnen.

Ich bin nun am Rätseln, wie ich eine Funktion schreiben kann, die möglichst kurz ist, die mir als Ergebnis einfach nur einen boolschen Wert True zurückgibt, wenn wir einen Breakball haben.

Wenn ich jetzt einfach nur nach Strings vergleichen würde, wäre die Routine ewig lang. Geht das auch einfacher?

Für die, die nicht wirklich Ahnung vom Tennis haben.
Es gibt folgende Punkte innerhalb eines Punktspieles:

0,15,30,40 der danach erungene Punkt würde den Spielpunkt erbringen.

Stünde es 40 - 40 wäre Einstand
Danach Käme dann 40 - A -> Spieler B hat Vorteil und wenn Spieler A Aufschlag hätte, wäre Breakball und umgekehrt.

Ich bin am grübeln, ob es sinnvoll wäre da nen eigenen Typen für die Punkte zu deklarieren, weiss aber noch nicht genau wie.
Habt Ihr Ideen dazu?
Danke
Tom

Geändert von torud (13. Jun 2012 um 11:46 Uhr) Grund: Ergänzugen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.326 Beiträge
 
Delphi 12 Athens
 
#2

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 11:53
Du hast doch Zahlen, wieso willst du da Strings vergleichen?


- Fasse doch erstmal die Bedingungen in kurze Sätze. (hast du schon, ber mehr so im rießigen Text verteilt)
- gruppiere diese (Teil)Sätze ordentlich, nach ihren Zusammenhängen
- wandle alle Sätze in Formeln um
- und fertig

Zitat:
Breakball ist immer,
wenn der Aufschlagsempfänder 40 Punkte
oder
Vorteil hat
und
der Aufschlagende weniger Punkte als der andere hat.
A = Aufschlagende
B = Aufschlagsempfänder

Delphi-Quellcode:
Breakball :=
(
  (PunkteB = 40)
  or
  ( was war nochmal vorteil? )
)
and
(PunkteA < PunkteB)
;
oder, da ich in deinem Satz nicht erkennen konnte, wie die Zusammenhänge sind, bzw. wie die Klammersetzung wäre.
[edit] ich glaub Ersteres klingt besser/richtiger [/edit]
Delphi-Quellcode:
Breakball :=
(PunkteB = 40)
or
(
  ( was war nochmal vorteil? )
  and
  (PunkteA < PunkteB)
)
;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Jun 2012 um 12:05 Uhr)
  Mit Zitat antworten Zitat
torud

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 11:58
Hallo,

folgende Punkte gibt es:

0,15,30,40

Mit dem folgenden Punkt erhält ein Spieler den Spielpunkt, wenn der andere < 40 Punkte hat.

Folgende Breakballsituation gibt es:

Aufschlag hat Spieler A
Spielstand ist A - B
0 - 40 -> 3 breakbälle B*
15 - 40 -> 2 breakbälle B*
30 - 40 -> 1 breakball B*
40 - 40 -> 0 breakbälle B
40 - A -> 1 breakball B*

* Macht Spieler B den nächsten Punkt, gewinnt er das Spiel

Aufschlag hat Spieler B
Spielstand ist A - B
40 - 0 -> 3 breakbälle A*
40 - 15 -> 2 breakbälle A*
40 - 30 -> 1 breakball A*
40 - 40 -> 0 breakbälle A
A - 40 -> 1 breakball A*

* Macht Spieler A den nächsten Punkt, gewinnt er das Spiel

Wichtig ist also, WER Aufschlag hat.

Da es zu einer Vermischung von Datentypen kommt (0,15,30,40,A), dachte ich, dass es vielleicht sinnvoll wäre einen eigenen Datentypen einzusetzen.

Ich hoffe, das macht es leichter, die Breakball-Situation einzuschätzen.
Danke
Tom

Geändert von torud (13. Jun 2012 um 12:14 Uhr) Grund: Bessere Beschreibung
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 12:06
Ich hatte über einem eigenen Typen nachgedacht, weil es Punkte 0,15,30 und 40 gibt und der Vorteil als A (wie Advantag) kommt. Es liegt hier also eine Vermischung von Datentypen vor.
Was du vermutlich suchst, sind zusammengesetzte Datentypen:
Delphi-Quellcode:
type
  TTennisMatchPunktZahlDingens = record
    punkte: integer;
    advantag: boolean;
  end.
Wenn du dir überlegst, welche Datentypen du zur Laufzeit benutzt, dann ist "Ich packe einfach alles in einen String." fast immer die falsche Entscheidung.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (13. Jun 2012 um 12:12 Uhr)
  Mit Zitat antworten Zitat
torud

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 12:17
Ich hatte vermutet, dass so was hier aus SInn machen könnte:

TMatchStatus = (p0, p15, p30, p40, pA); Aber wenn ich´s wüsste, hätte ich nicht gefragt.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 13. Jun 2012, 14:58
Nur aus Neugier:
Wenn einer Breakball hat, jedoch die Runde verliert, ists dann (sozusagen) wieder Gleichstand? Dh. kann man nur gewinnen, wenn man bei einem Breakball punktet?

A - B - (* Breakball)
30 - 40* - B punktet, gewinnt Match/Runde
30 - 40* - A punktet -> neuer Stand:
40 - 40 - A punktet nochmal -> ...
40* - 40 - entweder A punktet und gewinnt oder B punktet (neuer Stand
40 - 40

läuft das so ständig hin und her?
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (13. Jun 2012 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz