:- set_prolog_flag(verbose,silent).
:- prompt(_, '').
:- use_module(library(readutil)).

main:-
	process,
	halt.
	
 viagem(roma,lisboa,aviao,'12:00','15:00',300).
 viagem(lisboa,porto,comboio,'16:00','18:00',10).
 
viajar(A, B, _, [viagem(A, B, C, D, E, F)]) :-
    viagem(A, B, C, D, E, F), % Se existe uma viagem direta de A a B
    !.                        % Não precisa procurar mais

viajar(A, B, JaVisitou, [viagem(A, X, C, D, E, F)|Lista]) :-
    viagem(A, X, C, D, E, F),           % Escolhe um destino qualquer
    \+ member(X, JaVisitou),            % Que você ainda não visitou
    viajar(X, B, [X|JaVisitou], Lista). % E tente ir dele até B

process:-
	viajar(roma, porto, [roma], Lista),
	write(Lista), nl,
	true.

:- main.