This commit is contained in:
leo 2022-05-13 14:25:05 +02:00
parent 83c1bb0bab
commit 00be5580a1
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB

13
Car.py
View File

@ -202,6 +202,7 @@ class Car():
return cDist
def getLeaderAtIntersection(self, prevInd, edgeInd):
# On récupère les edges juste avant et juste après l'intersection
while(self.route[edgeInd].isSpecial()):
return
edgeInd = edgeInd + 1
@ -213,17 +214,23 @@ class Car():
if prevInd < 0:
print(self.id, "fu2")
return None
# On récupère les connections entre l'edge précedent et l'actuel, et on garde que la première, si y en as pas on panique
inter = self.route[edgeInd-1].getFromNode()
connections = self.route[prevInd].getConnections(self.route[edgeInd])
if(len(connections)==0):
print("aaaaaaaaa")
print("pas de connections")
return None
connection = connections[0]
# On récupère la matrice de priorité pour notre route
linkInd = inter.getLinkIndex(connection)
if(linkInd == -1): # Ca devrait pas arriver, mais de toute évidence ça arrive
print(self.id, "fu3")
return;
resp = inter._prohibits[linkInd] # Si je me souvient bien les variables précédées d'un _ doivent pas être touchées?
# On se fait une map de correspondance entre indice de link et connection
connRaw = inter.getConnections()
conn = [0] * len(resp)
for c in connRaw:
@ -231,6 +238,8 @@ class Car():
if(ind == -1):
continue
conn[ind] = c
# Pour chaque connection si on est pas prio on regarde si y as des voitures et comme d'hab on prend la plus proche
cars = []
for i,f in enumerate(reversed(resp)):
if(f == '0'):
@ -241,8 +250,6 @@ class Car():
intLaneLgt = intLane.getLength()
carsInEdge = self.controller.getCarsOnLane(edge.getID(), laneInd)
carsInEdge = list(filter(lambda c: c.nextNonSpecialEdge() == conn[i].getTo(), carsInEdge))
#carsInEdge = list(carsInEdge)
#carsInEdge = list(filter(lambda c: c.nextNonSpecialEdge() == self.nextNonSpecialEdge(), carsInEdge))
if len(carsInEdge) != 0:
carsInEdge = zip([self.getCarDist(c, edge, laneInd)+intLaneLgt for c in carsInEdge], carsInEdge)
closest = min(carsInEdge, key=lambda c: c[0])