To simulate a turn, you need to resolve all collisions for the current turn:
void Play(Pod[] pods) { float timeLeft = 1; while (timeLeft > 0) { if (TryFindCollision(out var collision, timeLeft)) { ResolveCollision(collision); MovePods(pods, collision.time); timeLeft -= collision.time; } else { MovePods(pods, timeLeft); break; } } FinishTurn(pods); }
The #1 tech hiring platform