if (spielfeld.felder[x2,y2]=fLeer)then begin
  if ((x2<>3)or(y2<>3))or(spielfeld.felder[x,y]=fkoenig) then begin //Wenn das Feld nicht blockiert ist
    tempspielfeld.BewegeFigur(x,y,x2,y2);
    if tiefe=1 then begin
      tempspielfeld.Stellungsanalyse(temp.wert);
      if (temp.wert<bewertetesSpielFeld.wert) xor not (schwarzAmZug) then
        with bewertetesSpielFeld do begin
          Spielfeld:=TSpielFeldC.create;
          Spielfeld.felder:=tempspielfeld.felder;
          wert:=temp.wert;
       end;
    end else begin
      Rekursion(tempspielfeld,not schwarzAmZug,tiefe-1,alpha,beta,temp{,startnode.zuege[i]});
      if  schwarzAmZug then begin
        if temp.wert<bewertetesSpielFeld.wert then
          bewertetesSpielFeld:=temp
      end else begin
        if temp.wert>bewertetesSpielFeld.wert then
          bewertetesSpielFeld:=temp;
      end;
    end;
    tempspielfeld.CloneOtherFast(SpielFeld);
    if (KIModus_b)or(tiefe<>starttiefe) then begin
      if schwarzAmZug then begin
        if beta>temp.wert then
          beta:=temp.wert;
      end else begin
        if alpha<temp.wert then
          alpha:=temp.wert;
      end;
      if alpha>=beta then begin
        exit;
        tempspielfeld.Free;
      end;
    end;
    if (tiefe=starttiefe) then  begin
      with zuege[arrayindex] do begin
        startfeld.x:=x;
        startfeld.y:=y;
        zielfeld.x:=x2;
        zielfeld.y:=y2;
        wert:=temp.wert;
        spielfeld:=temp.Spielfeld.felder;
      end;
      inc(arrayindex);
    end;
  end;
end else 
  break;
