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
Benutzerbild von Aphton
Aphton

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 16. Jun 2012, 14:46
Ich weiß momentan nicht, ob es derselbe Spielmodus ist oder etwas ganz anderes.. für den Fall dass es derselbe ist, wäre folgendes machbar:
Delphi-Quellcode:
type
  TTennisPunkte = (tp0 = 0, tp15 = 15, tp30 = 30, tp40 = 45, tpA = 60, tp5 = 75, tp6 = 90, tp7 = 105);

var
  tp: TTennisPunkte
nun liefert dir Ord(tp) div 15 die Werte 0, 1, 2, ..., 7

Edit: Ansonsten steck dahinter mehr oder weniger dieselbe Logik - außer dass man, sobald es zum Tiebreak kommt, alles reseten muss..

Edit2: Ahh.. interessante Spiellogik.
Zum Tiebreak kann es doch auch kommen, wenn die Punkte weit über 6 sind und es ein Tie gibt, nicht? Dh. es muss min. solange gepielt werden, bis man 6 erreicht und ab da, sobald es zum Tie kommt, werden die Punkte zurückgesetzt und alles beginnt von vorne (sorgt dafür, dass wieder min 6 Punkte erreicht werden müssen)
Da es ein anderer Spielmodus ist (nicht?) würde ich da auch nen anderen EnumTyp verwenden Verwende einfach eine Zahl für den Score, kein Enum
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (16. Jun 2012 um 14:54 Uhr)
  Mit Zitat antworten Zitat
torud

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 16. Jun 2012, 17:19
Genau,

steht es 6-6 Games muss ein weiteres Spiel gespielt werden, um einen Satzgewinner zu ermitteln.

IN dem noch zu absolvierenden Spiel, wird anders gezählt - in Einer-punkten.

Wer zuerst mind. 7 Punkte und mind. 2 Punkte mehr als der Gegner hat, hat das Spiel und damit den Satz gewonnen.
Der Satz endet dann in der Regel mit 7/6 oder 6/7. Steht dahinter noch eine Zahl in Klammern, ist das in der Regel der Punktestand des Verlierers im Tiebreak.

Also sowas hier 7/6 (2) bedeutet, dass Spieler A den Tiebreak (das letzte Spiel eines Satzes bei Stand von 6/6) mit 7 / 2 gewonnen hat.

Also zusammenfassend kann man sagen, dass Satz- oder Matchball ist, wenn
Spieler A Games im aktuellen Satz > 5 hat und Spieler B Games < 6 UND Spieler A 40 Punkte oder Vorteil hat und Spieler B 40 Punkte oder weniger hat.
Haben beide Spieler 6 Games, muss einer von beiden wenigstens 6 Punkte und der andere max. 5 Punkte haben. Der Mindestabstand von Punkten muss 2 betragen und man benötigt mind. 2 Punkte

Ich grübel mal, dass sollte sich eigentlich auch über ne if then else machen lassen. Sieht nicht schön aus, aber sollte gehen.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 16. Jun 2012, 18:06
Zitat:
Delphi-Quellcode:
type
  TTennisPunkte = (tp0 = 0, tp15 = 15, tp30 = 30, tp40 = 45, tpA = 60);

const
  strTennisPunkte: Array[TTennisPunkte] of String = ('0', '15', '30', '40', 'A');
Hast du das mal ausprobiert?

Ich bin mir ganz sicher, daß es so nicht funktioniert, denn das Array wird 61 Felder groß sein und nicht nur 5.



Das ist auch der Grund, warum es keine RTTI dafür gibt, da man irgendwie immernoch nicht auf die Idee gekommen ist, dort einfach mit DummyWerten aufzufüllen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2012 um 18:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 16. Jun 2012, 18:11
Nöp, danke.
Ginge aber ohne Zuweisungen..
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

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

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 17. Jun 2012, 13:04
Auch wenn das nicht (ganz) zu den bisherigen Lösungen passt: Es wäre eigentlich sinnvoll den Spielzustand explizit als Zustandsautomaten zu modellieren und dazu noch die Punkte zählen. Dann wird das nicht so eine Frickelei.

Das Ganze könnte man auch gut in eine Klasse kapseln.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Herausfinden ob Breakpoint ist oder nicht - Wie?

  Alt 18. Jun 2012, 07:37
Ich würde mich von der Aussprache ('0','15','30','40', 'Vorteil') freimachen, denn das ist die Darstellung. Und was haben wir gelernt? Genau, Darstellung und Funktion trennen.

Also wird beim Tennis einfach von 0 beginnend nach oben gezählt.
Wer zuerst 4 Punkte hat und mindestens 2 Punkte mehr als der andere, hat den Punkt, oder wie das heißt.

Die Anzahl der Breakpoints ist also PunktB-PunktA, wenn PunktB >= 3 und 0 sonst.

Und? Wieviel stehts?
Delphi-Quellcode:
Function SpielStand (PunkteA, PunkteB : Integer) : String;
Const
  PunkteName : Array [0..3] of string = ('00','15','30','40');
 
Begin
  if (PunkteA<=3) and (PunkteB<=3) Then
  if PunkteA = PunkteB then
    Result := PunkteName[PunkteA]+' beide'
  else
    Result := PunkteName[PunkteA]+'-'+PunkteName[PunkteB]
  else if PunkteA > PunkteB + 1 Then
    Result := 'Punktgewinn A'
  else if PunkteB > PunkteA + 1 Then
    Result := 'Punktgewinn B'
  else if PunkteA > PunkteB Then
    Result := 'Vorteil A'
  else if PunkteB > PunkteA Then
    Result := 'Vorteil B'
  else
    Result := 'Gleichstand'
  
End;
  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 22:50 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-2025 by Thomas Breitkreuz