Does it matter what order the players are in? If not it would be much easier to have one array, and Active(int). Here's how I'd do it.
Active := 0;
Player 'A' Comes in
array[Active].name = 'A'; Active := inc(Active);
Player 'B' Comes in
array[Active].name = 'B'; Active := inc(Active);
Player 'C' Comes in
array[Active].name = 'C'; Active := inc(Active);

loop activeplayers := 0 to active-1 do <whatever>

pretty simple, now you suppose player 'A' leaves?

Array[1] := Array[Active]; inc(Active, -1);

Just my thoughts on that.