Autor Beitrag
forerunner
Hält's aus hier
Beiträge: 2



BeitragVerfasst: So 18.04.04 15:40 
Habe mal ne Frage... Wollte das Spiel Mastermind programmieren. Vier Buttons nebeneinander. Wenn man auf einen Butten mehrmals klickt sollte es so ablaufen:

Ohne Klick ist caption vom Button "---"

beim 1. Klick "-1-"
beim 2. Klick "-2-"
beim 3. Klick "-3-"
beim 4. Klick "-4-"
und dann wieder die ANzeige vom 1. Mal klicken...

wie realisiere ich das mit der programmiersprache Delphi? mit IF THEN ELSE wird man ja nicht weit kommen, oder?

ACHTUNG: Hier schreibt ein Delphi-Newbie :-)

Danke für eure Antworten...


Zuletzt bearbeitet von forerunner am Mo 19.04.04 16:44, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 18.04.04 16:10 
Hallo!

Zwei Sachen vorweg:
1. :welcome:
2. Bitte wähle einen Titel, der etwas über das wirkliche Problem aussagt. Es sollte zumindest klar werden, was denn das Problem ist. Einfach in Deinem ersten Beitrag auf "edit" klicken.


Nun zur Lösung:
Wenn Du nicht für jeden Button eine globale Variable einrichten möchtest, dann kannst Du es so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure increaseNumber(theButton : TButton);
var current : Integer;
begin
  if theButton.Caption = '---' then theButton.Caption := '-1-'
  else begin
    current := StrToInt(Copy(theButton.Caption, 2,1);
    current := (current mod 4) +1;
    theButton.Caption := '-' + IntToStr(current) +'-';
  end;
end;


Habe ich aus dem Kopf getippt, können also noch Fehler drin sein.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
forerunner Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 19.04.04 16:49 
Peter Lustig hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
    current := (current mod 4) +1;					



Danke für die Hilfe. Es funktioniert!!! aber trotzdem wüsste ich gern, was in dieser Zeile passiert...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 19.04.04 17:04 
Hallo!

Kein Problem:
"current mod 4" ergibt den Rest der Division von current durch 4. Dieser Rest ist ein Wert zwischen 0 und 3. Wenn current zwischen 1 und 3 liegt, dann ist der Rest gleich current. Nur wenn current = 4 ist, dann ist der Rest = 0. (Auch bei Vielfachen von 4, aber die werden hier nicht erreicht.)
Zusammen mit dem +1 dahinter wird current, wenn es zwischen 1 und 3 liegt, um eines erhöht und wenn es 4 ist, auf 1 gesetzt.
Nochmal als Schema:
ausblenden Quelltext
1:
2:
3:
4:
1 mod 4 = 1  --> (1 mod 4)+1 = 2
2 mod 4 = 2  --> (2 mod 4)+1 = 3
3 mod 4 = 3  --> (3 mod 4)+1 = 4
4 mod 4 = 0  --> (4 mod 4)+1 = 1


Hoffe, ich habe das gut erklärt.

MfG
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".