diff --git a/Car.py b/Car.py index 946b932..b96eb95 100644 --- a/Car.py +++ b/Car.py @@ -433,12 +433,13 @@ class Car(): #print(self.distToInter, self.minSpace, dts) # Si on est bloqué dans une dépendance circulaire + maxInterTime = 0 if self.leader is None and self.timeAtInter >= 0: cd, maxInterTime = self.circularLeaderDep(self.leaderAtInter, 0, 20) if cd and self.timeAtInter >= maxInterTime: self.forceThrough = True # Ou si notre leader est bloqué devant un autre leader - if self.leader is None and self.leaderAtInter.v == 0 and self.leaderAtInter.leaderAtInter is not None and self.leaderAtInter.leaderAtInterDist > self.interMinSpace: + if self.leader is None and self.leaderAtInter.v == 0 and self.leaderAtInter.leaderAtInter is not None and self.leaderAtInter.leaderAtInterDist > self.interMinSpace and maxInterTime != -1: self.forceThrough = True # si on est suffisement loin de l'intersection (i.e on s'en fout du leader) @@ -476,7 +477,7 @@ class Car(): return False, 0 if car.forceThrough: - return False, 0 + return False, -1 maxTimeStopped = max(maxTimeStopped, car.timeAtInter) @@ -488,6 +489,9 @@ class Car(): res2,mts2 = self.circularLeaderDep(car.leaderAtInter, maxTimeStopped, timeout) maxTimeStopped = max(mts, mts2) + if min(mts, mts2) == -1: + return False, -1 + return (res or res2), maxTimeStopped def updateGraph(self, v, vmax, vsec, interVsec):