public bool CalculatePath() { iaVehicule.ClearBuffer(); if (iaVehicule.Circuit.Patients.Count > 0 || iaVehicule.Patients > 0) { if (iaVehicule.Patients >= iaVehicule.MAX_PATIENTS) { List <Point> chemin = ia.ComputeDijkstra(iaVehicule.Position, iaVehicule.Circuit.Hopitaux[0]); ia.AddToIABuffer(chemin); PaintPath(chemin); return(true); } else { List <Point> chemin = ia.ComputeDijkstra(iaVehicule.Position, ia.FindClosestPatient(NXTVehicule.ERROR)); if (iaVehicule.Patients > 0) { List <Point> cheminHopital = ia.ComputeDijkstra(iaVehicule.Position, ia.FindClosestHopital()); chemin = chemin.Count >= cheminHopital.Count ? chemin : cheminHopital; } ia.AddToIABuffer(chemin); PaintPath(chemin); return(true); } } return(false); }