listesDesListes_longueur_listesDeCetteLongueur([],_,[]). listesDesListes_longueur_listesDeCetteLongueur([L|Ls], Long, [L|Suivant]) :- length(L, Longueur), Longueur =:= Long, !, listesDesListes_longueur_listesDeCetteLongueur(Ls, Long, Suivant). listesDesListes_longueur_listesDeCetteLongueur([_|Ls], Long, Suivant) :- listesDesListes_longueur_listesDeCetteLongueur(Ls, Long, Suivant). meilleures_solutions(PlateauDepart, PlateauArrive, MeilleursSolutions) :- solutions(PlateauDepart, PlateauArrive, Solutions), maplist(length, Solutions, LongueursDesSolutions), min_list(LongueursDesSolutions, LongueurPLusCourteSolution), listesDesListes_longueur_listesDeCetteLongueur(Solutions, LongueurPLusCourteSolution, MeilleursSolutions).