Assuming 2 players (a,b) move through in opposite directions, then one of the following will happen:
- A(a)→B(a)→B(b)→A(b) [a leaves the gates before b enters them]
- A(a)→B(b)→B(a)→A(b) [a is between gates while b enters them]
- B(b)→A(b)→A(a)→B(a) [b leaves the gates before a enters them]
- B(b)→A(a)→A(b)→B(a) [b is between gates while a enters them]
Assuming both players move in the same direction:
- A(a)→B(a)→A(b)→B(b) [a leaves the gates before b enters them]
- A(a)→A(b)→B(a)→B(b) [a is between gates while b enters them] (chance of occurring can be reduced by closing distance between gates, and reducing gate radius)
- A(b)→B(b)→A(a)→B(a) [b leaves the gates before a enters them]
- A(b)→A(a)→B(b)→B(a) [b is between gates while a enters them] (chance of occurring can be reduced by closing distance between gates, and reducing gate radius)
- analog chains if direction of movement is reversed
As you can see any case either works as intended, or the probability of the case occurring can be reduced artificially.