private void PerformMovement(PlayerModel player, string playerId, MoveModel move, IGameUpdatesHandler handler) { player.Move(move); ++_movesCount; if (!_world.IsMovementOutOfTrack(player.GetLastMovement())) { handler?.OnShowMovements(playerId, _world.CalculateScope(player)); CheckWayPointsIntersections(player, playerId, handler); } else { handler?.OnShowMovements(playerId, new List <bool>(new bool[9])); handler?.OnCarCrash(playerId); _players[playerId].IsAlive = false; DeletePlayer(playerId, handler); } }