AGB  ·  Datenschutz  ·  Impressum  







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

If ... then problem

Offene Frage von "Hofnarr"
Ein Thema von Hofnarr · begonnen am 13. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Hofnarr

Registriert seit: 13. Apr 2006
Ort: Keine Ergebnisse gefunden
6 Beiträge
 
#1

If ... then problem

  Alt 13. Apr 2006, 14:07
ich habe nochmal ein problem... diesmal hoffentlich beim richtigen ort


nun habe ich wirklich ein problem... aber erst mal den Quelltext:

Delphi-Quellcode:
    if s=20 then
    if z>w20 then
   begin
    ptsw20.Caption:=inttostr(z);
    rekw20.Caption:=(name.text);
   end;

      if s=50 then
      if z>w50 then
     begin
      ptsw50.Caption:=inttostr(z);
      rekw50.caption:=(name.Text);
     end;

        if s=100 then
        if z>w100 then//fehler ptsw100 wird immer upgedatet
       begin
        ptsw100.caption:=inttostr(z);
        rekw100.Caption:=(name.Text);
       end;
nun bei einem kleinen Spiel habe ich quasi eine Punkteliste gemacht.

nun zum problem ptsw20/ptsw50/ptsw100 sollten nur ersetzt werden, wenn z ein höherer wert erreicht hat als bisher auf dem label "gespeichert" war. nur das Problem ist: dass bei ptsw20 die Regel stimmt und die anzeige nur aktualisiert wird wenn eine höhere zahl erreicht wurde. jedoch bei ptsw50/ptsw100 werden die Zahlen immer angebasst, auch wenn sie niedriger sind. hat jemand eine Idee?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: If ... then problem

  Alt 13. Apr 2006, 14:13
Delphi-Quellcode:

w20 := StrToInt(ptsw20.caption);
w50 := StrToInt(ptsw50.caption);
w100 := StrToInt(ptsw100.caption);

if s=20 then
  begin
    if z > w20 then
      begin
        ptsw20.Caption:=inttostr(z);
        rekw20.Caption:=(name.text);
      end;
   end
else
  if s=50 then
    begin
      if z > w50 then
        begin
          ptsw50.Caption:=inttostr(z);
          rekw50.caption:=(name.Text);
        end;
    end
  else
    if s=100 then
      if z > w100 then//fehler ptsw100 wird immer upgedatet
        begin
          ptsw100.caption:=inttostr(z);
          rekw100.Caption:=(name.Text);
        end;
Welchen Wert hat den z und w100 zu dem Zeitpunkt?

Grüße
Klaus

[edit] if..then etwas angepasst [/edit]
Klaus
  Mit Zitat antworten Zitat
Hofnarr

Registriert seit: 13. Apr 2006
Ort: Keine Ergebnisse gefunden
6 Beiträge
 
#3

Re: If ... then problem

  Alt 13. Apr 2006, 14:24
oh sry voll vergessen

z ist die momentan (in diesem Spiel) erreichte Punktzahl
w100 ist die höchste Punktzahl die bisher erreicht wurde

(w20,w50,w100 sind verschiedene Spielmodi)
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: If ... then problem

  Alt 13. Apr 2006, 14:27
Hast du schonmal Breakpoints gesetzt und zur Laufzeit geguckt, welche Werte die Variablen haben?

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: If ... then problem

  Alt 13. Apr 2006, 14:30
Zitat:
z ist die momentan (in diesem Spiel) erreichte Punktzahl
w100 ist die höchste Punktzahl die bisher erreicht wurde

(w20,w50,w100 sind verschiedene Spielmodi)
w100 ist die Punktzahl und der Spielmodus?
oder ist w100 die Punktzahl und s=100 der Spielmodus?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Hofnarr

Registriert seit: 13. Apr 2006
Ort: Keine Ergebnisse gefunden
6 Beiträge
 
#6

Re: If ... then problem

  Alt 13. Apr 2006, 14:37
jepp ich zeige es dir mal in einem Beispiel:
es ist ein würfelSpiel die Punktetabelle ist in w20 (würfel mit 20 seiten) w50 (50 Seitem) und w100 (100 seiten) Der Spielmodus wird durch eine eingabe definiert. (hier siet man die zuteilung für punkte und spielernamen)

geholte punkte(z):200
Rekord(w100): 250
obwohl

if z>w100 then

übernimmt w100 die zahl 200
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: If ... then problem

  Alt 13. Apr 2006, 15:06
hast Du Dir den Code von mir oben mal angeschaut und ausprobiert?

hier kommt er nochmals aber mit case anstatt if then else zur Spielmoduserkennung.

Delphi-Quellcode:
w20 := StrToInt(ptsw20.caption);
w50 := StrToInt(ptsw50.caption);
w100 := StrToInt(ptsw100.caption);

case s of
  20 : begin
           if z > w20 then
             begin
               ptsw20.Caption:=inttostr(z);
               rekw20.Caption:=(name.text);
             end;
         end;

  50 : begin
           if z > w50 then
             begin
               ptsw50.Caption:=inttostr(z);
               rekw50.caption:=(name.Text);
             end;
         end;

  100: begin // hier mal ein breakpoint setzen mit F8 weitergehen und z und w100 anschauen
           if z > w100 then // ptsw100 wird upgedatet wenn z > w100 ist
             begin
               ptsw100.caption:=inttostr(z);
               rekw100.Caption:=(name.Text);
             end;
         end;
end; //case
Zitat:

geholte punkte(z):200
Rekord(w100): 250
obwohl

if z>w100 then

übernimmt w100 die zahl 200
200 > 250 ist false ->

z ist kleiner als w100
und w100 beibt auf 250.

z und w100 kannst Du dir anschauen, indem Du die Variable markierst und dan ctrl+f5 drückst.

Grüße
Klaus
Klaus
  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 08:49 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