Я пишу текстовую приключенческую игру на Прологе и распечатываю выходы из комнаты. У меня есть код, который делает:
exits_from(Room) :-
connected(Room, X),
write(X), write(' ').
, где подключено / 2:
connected(X, Y) :- path(X, Y).
connected(X, Y) :- path(Y, X).
и путь:
path(room, hallway).
path(hallway, foyer).
и т. Д.
Когда я печатаю выходы для комнаты, она получает первое, затем хочет ';' сказать, что я хочу другое решение. Есть ли способ заставить предикат полностью вычислить результат, чтобы игроку не приходилось просить больше выходов?