Prolog でテキスト アドベンチャー ゲームを作成しており、部屋の出口を出力しています。私は次のようなコードを持っています:
exits_from(Room) :-
connected(Room, X),
write(X), write(' ').
ここで、connected/2 は次のとおりです。
connected(X, Y) :- path(X, Y).
connected(X, Y) :- path(Y, X).
パスは次のとおりです。
path(room, hallway).
path(hallway, foyer).
等々。
ただし、部屋の出口を印刷しているときは、最初に取得し、次に「;」が必要です。別の解決策が欲しいと言う。とにかく述語に結果を完全に計算させて、プレーヤーがさらに終了を要求し続ける必要がないようにする方法はありますか?