Petit problème simple de prédicat [PROLOG] - Divers - Programmation
Marsh Posté le 31-10-2007 à 17:00:48
Serait-ce le même post qu'ici ? http://www.developpez.net/forums/s [...] p?t=434776
D'abord comme je l'ai dit, améliore le prédicat voisins qui doit retourner une liste de deux villes, fais attention qu'il ne retourne qu'une seule liste et pas plusieurs (si tu appuies sur ';').
Ensuite costruit le graphe des villes voisines et parcours le en largeur, ou construis directement la liste des villes de proches en priche en mémorisant bien entendu les villes visitées.
Marsh Posté le 31-10-2007 à 17:48:19
Oui c'est le même et comme j'ai répondu sur l'autre forum mon prédicat voisins ne doit pas retourner une liste mais bien un résultat a la fois... je désespere. Merci quand même.
Marsh Posté le 30-10-2007 à 23:53:14
Premièrement, bonjour à tous!
Voila, j'ai un devoir en prolog mais je suis completement bloquée sur un numéro qui ne semble pas si diffile a première vu mais la logique de prolog semble m'échaper!
Je vous explique:
Premièrement, on me donne ces 4 faits:
%--------------------------------------
% Voisin
%--------------------------------------
voisin(lasalle, verdun).
voisin(verdun, westmount).
voisin(westmount, villemarie).
voisin(villemarie, outremont).
Deuxièment, on me demande de faire un predicat: voisins (Lieu, Lieu2) :-
exemples:
?- voisins (lasalle, X). X = verdun
?- voisins (verdun, X). X = westmount ; lasalle
J'ai fait ce prédicat.. pas tres compliqué (enfin, je crois l'avoir bien fait):
voisins(Lieu, Lieu2) :- voisin(Lieu, Lieu2) ; voisin(Lieu2, Lieu).
C'est sur la prochaine question que j'ai un problème.
On me demande de faire un prédicat permettant de consulter les lieux de proche en proche, mais en commençant par les localités immédiatement voisines. A distance égale, je doit essayer d’abord les voisins à l’Est. (ils sont placés d'ouest en est dans la liste de faits)
prédicat: trouver_prochainlieu (Lieu, Lieu2) :-
ex: ?- trouver_prochainlieu (verdun, X).
X = westmount ;
lasalle ;
villemarie ;
outremont
Si quelqu'un pouvait m'aider sur cet exercice... sa doit faire 8 heures que j'essai des trucs mais au fur et à mesure que j'essai je m'éloigne de plus en plus...
Merci d'avance!