AGB  ·  Datenschutz  ·  Impressum  







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

Poker Blinds Timer

Ein Thema von Black360 · begonnen am 14. Jul 2010 · letzter Beitrag vom 14. Jul 2010
Antwort Antwort
Black360

Registriert seit: 14. Jul 2010
2 Beiträge
 
Delphi 2 Desktop
 
#1

Poker Blinds Timer

  Alt 14. Jul 2010, 10:52
Hey Leute,
ich heiß Black360 und bin noch neu in der Delphi-Programmierung.

Fakt ist, dass ich einen Poker Blinds Timer machen wollte:
Man gibt einen "SmallBlind" und einen "BigBlind" ein.
Dieser wird nach EINGEGEBENER ZEIT "verdoppelt".
Außerdem sollen "Runden" gezählt werden (also: if zeit=0 then round.caption+1 usw.)
Die Zeit soll mit "SpinEdit"-Boxen gewählt werden.
Einen für STUNDEN - einen für MINUTEN und einen für SEKUNDEN.

Wie bekomme ich nun die STUNDEN, MINUTEN und SEKUNDEN SpinEdit-Boxen realisiert, dass der TIMER "das" HERUNTERzählt?
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Poker Blinds Timer

  Alt 14. Jul 2010, 11:14
Man gibt einen "SmallBlind" und einen "BigBlind" ein.
Dieser wird nach EINGEGEBENER ZEIT "verdoppelt".
Außerdem sollen "Runden" gezählt werden (also: if zeit=0 then round.caption+1 usw.)
Die Zeit soll mit "SpinEdit"-Boxen gewählt werden.
Einen für STUNDEN - einen für MINUTEN und einen für SEKUNDEN.

Wie bekomme ich nun die STUNDEN, MINUTEN und SEKUNDEN SpinEdit-Boxen realisiert, dass der TIMER "das" HERUNTERzählt?
Normal sollte es doch nur nötig sein den Blind einzugeben. Der small blind ist doch fix die Hälfte, oder?

Wandle die zeit doch einfach in Sekunden um (Std*60*60 + Min*60 + Sec), nimm einen TTimer, der einmal pro Sekunde feuert, zieh einfach immer 1 ab von der verbleibenden Zeit und bei Null verdoppelst du den Blind.

Round.Caption+1 wird's so nicht spielen, das eine ist ein String, das andere ein Integer (vielleicht mal "Delhi in 21Tagen" durchschmökern. Round.Caption:=IntToStr(StrToInt(Round.Caption)+1) ; sollte aber gehen.

Viel Spass beim probieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Poker Blinds Timer

  Alt 14. Jul 2010, 11:35
Wandle die zeit doch einfach in Sekunden um (Std*60*60 + Min*60 + Sec), nimm einen TTimer, der einmal pro Sekunde feuert, zieh einfach immer 1 ab von der verbleibenden Zeit ...
oder wenn Sekunden > 0, dann da 1 abziehen
wenn = 0, dann auf 59 setzen und von Minuten 1 abziehen

auch bei den Minuten beachten ... wenn >0, dann -1 und ansonsten auf 59 und von Stunden 1 abziehen

tja, und wenn stunden dabei >0, dann da -1 und ansonsten (also bei 0) ist die Zeit vorbei.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Black360

Registriert seit: 14. Jul 2010
2 Beiträge
 
Delphi 2 Desktop
 
#4

AW: Poker Blinds Timer

  Alt 14. Jul 2010, 11:54
Danke für eure Antworten
Jedoch versteh ich teilweise nur Bahnhof.

Form1.Label_Countdown.Caption:=IntToStr(StrToInt(F orm2.SpinEdit_M.Text)-1);
if Form1.Label_Countdown.Caption='0' then
begin Form2.Timer1.Enabled:=False;
end;
if Form1.Label_Countdown.Caption='0' then
begin IntToStr(StrToInt(Form1.Label_Round.Caption)+1);
end;
if Form1.Label_Countdown.Caption='3' then
begin beep;
end;
if Form1.Label_Countdown.Caption='2' then
begin beep;
end;
if Form1.Label_Countdown.Caption='1' then
begin beep;
end;
if Form1.Label_Countdown.Caption='0' then
begin beep;
end;

Das hab ich bis jetzt.
Dabei bringe ich aber immernoch nicht die SpinEdit-Boxen in Verbindung.
SpinEdit_M ist die SpinEdit-Box MINUTEN - arbeitet aber als SEKUNDEN ?!?!!?
Ich kapier's irgendwie nicht

Hat jemand vllt. eine kleine Syntax-Idee?
  Mit Zitat antworten Zitat
Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Poker Blinds Timer

  Alt 14. Jul 2010, 13:33

Hui, Dir fehlt da aber einiges.

So als Anstoss:

Kein Mensch hat Blind-Runden die eine Stunde dauern. Und dann:

Code:
  = class(TForm);
  private
    Rundendauer : integer;
    TimeRemaining : integer;
  ...
  end;

procedure xyz.StartButClick(Sender);
begin
  Rundendauer:= ... SpinEdit.Value oder StrToInt(ZeitEdit.Text);
  TimeRemaining:=Rundendauer;
  Timer1.Enabled:=True;
end;

procedure xyz.Timer1Timer(Sender);
begin
  Dec(TimeRemaining);
  if TimeRemaining<=3 then
     Beep;
  if TimeRemaining=0 then
  begin
    Blind:=Blind*2;
    BlindLabel:=IntToStr(Blind);
    TimeRemaining:=Rundendauer;
  end;
  lblTimeRemaining.Caption:=IntToStr(TimeRemaining div 60)+' : '+IntToStr(TimeRemaining mod 60);
end;
so in etwa
  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 17:25 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