Einzelnen Beitrag anzeigen

Jaegermeister1992

Registriert seit: 2. Okt 2009
18 Beiträge
 
#9

Re: nur eine if-Schleife ausführen

  Alt 3. Okt 2009, 09:48
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...
  Mit Zitat antworten Zitat