Delphi-Quellcode:
procedure TForm1.Computer1Legen;
Var ArtA, FarbeA, FarbeC1, ArtC1, AblegenC1 : string;
i : integer;
begin
ArtA:=Copy(Aktuell.Items[0],3,1);
FarbeA:=Copy(Aktuell.Items[0],0,1);
for i:= 0 to C1.Items.Count-1 do begin
FarbeC1:=Copy(C1.Items[i],0,1);
ArtC1:=Copy(C1.Items[i],3,1);
AblegenC1:= C1.Items[i];
if (FarbeC1 = 'V') and (ArtC1 = 'Z') then begin
Showmessage('Sie haben eine Vierziehen');
Computer2Legen;
end
else if (FarbeC1 = 'F') and (ArtC1 = 'W') then begin
Showmessage('Sie haben eine Farbwahl');
Computer2Legen;
end
else if (FarbeC1 = FarbeA) and (ArtC1 = 'A') then begin
Showmessage('Sie haben ein Aussetzen');
Computer2Legen;
end
else if (FarbeC1 = FarbeA) and (ArtC1 = 'Z') then begin
Showmessage('Sie haben ein Zweiziehen');
Computer2Legen;
end
else if (FarbeC1 = FarbeA) and (ArtC1 = 'R') then begin
Showmessage('Sie haben ein Richtungswechsel');
Computer2Legen;
end
else if (FarbeC1 = FarbeA) or (ArtC1 = ArtA) then begin
Showmessage('Hallo ' + inttostr(i));
Computer2Legen;
end;
end;
end;
So das ist der ganze Code auf den ich das anwenden will
die Showmessage sind nur zum Test da werden nohc ersetz später.
Es handelt sich um das Spiel UNO
des Feld C1.ITems sind die aktuellen Karten des ComputerSpieler1
Das Feld Aktuell.Items ist die aktuell gelegte karte vom spieler zuvor.
Nun soll aber von diesen If-Anweisungen immer nur eine ausgeführt werden udn zwar von oben nach unten wenn die erste zutrifft sollen alle danach ignoriert werden oder wenn die 2. dann alle danach ignoriert werden...