Hallo,
habe eine prozedur geschrieben die beim Aufruf allerdings für mich unverständliche Dinge tut. ich setze gleich am anfang i = 0 doch immer wenn ich mit dem debugger durch gehe ist i danach 3 wporan liegt es was übersehe ich?
Delphi-Quellcode:
procedure throw(var playerList : TPlayerCollection; currentplayerID : integer; goals : Tashot);
var points, anz : Array [0..2] of integer;
player : TPlayer;
Fields : TaFields;
i,j,k, anz_alt : integer;
begin
calcpoints(goals, points, anz);
player := playerList.Player[currentplayerID];
Fields := player.Fields;
i := 0;
for i := 0 to high(points) do
begin
if points[i]>14 then
begin
for j:= 0 to high(Fields) do
begin
if Fields[j].field = points[l] then
begin
anz_alt := Fields[j].anz;
if ((anz_alt + Fields[j].anz) >= 3) then
begin
Fields[j].anz := 3;
if ((anz_alt + Fields[j].anz - 3) > 0) then
for k := 0 to playerlist.Count - 1 do
if (playerlist.IndexOf(player) <> k) then
playerlist.Player[k].Score :=
playerlist.Player[k].Score +(Fields[j].anz * Fields[j].field);
end//if >=3
else
Fields[j].anz := anz_alt + Fields[j].anz;
end;//if point = field
end; //for field
end; //point>14
playerlist.Player[currentplayerID].Fields := Fields;
if checkWin(Fields) then
begin
player.haswon := true;
end;
end; //throw
end;