Help with the following routine

Hi,

I have just started coding and soccer game, and I am still
experimenting with the routines I am going to implement. The following
routine should move the 11 players from one side of the ground to
their designated kick off positions. It should be optimised so that it
will skip players already in place while move the other players, but
it seems that it cannot work. Can somebody come up with a better (and
fast routine??):

Procedure PlaceForDefault(WhatFor: Byte);
Var PlayersOk: Boolean;
PlyCnt,PlyOk: Byte;
InPos: Array [1..11] of Byte;
Begin
For PlyCnt:=1 to 11 Do InPos[PlyCnt]:=0;
PlayersOk:=False;
Repeat
For PlyCnt:=1 to 1 Do Begin
If
(Player[PlyCnt].CurrPos.X<>Tactic.CurrPos[WhatFor,PlyCnt].X) And

(Player[PlyCnt].CurrPos.Y<>Tactic.CurrPos[WhatFor,PlyCnt].Y) Then
Begin

CalcPlayerPos(PlyCnt,Tactic.CurrPos[WhatFor,PlyCnt].X,Tactic.CurrPos[WhatFor,PlyCnt].Y);
DrawPlayer(1,PlyCnt);
End
Else InPos[PlyCnt]:=1;
End;
PlyOk:=0;
For PlyCnt:=1 to 1 Do PlyOk:=PlyOk+InPos[PlyCnt];
If PlyOk=1 Then PlayersOk:=True;
Until PlayersOk;
End;