0

タスク: ユニコーンは、月曜日、火曜日、水曜日に嘘をつき、それ以外の曜日はすべて真実を語ることで知られています。彼は次のように言うことができます。明日から二日連続で嘘をつきます。」 会話の日を決定します。

コードをスケッチしましたが、ユニコーンが 2 日連続で嘘をついたと言う方法がわかりません。コードを修正してください。よろしくお願いします。

yesterday(mon, sun).
yesterday(tue, mon).
yesterday(wed, tue).
yesterday(thu, wed).
yesterday(fri, thu).
yesterday(sat, fri).
yesterday(sun, sat).

lies([mon, tue, wed]).

tomorrow(Day, Tomorrow) :-
    yesterday(Tomorrow, Day).

unicornLies1(Day) :- 
    lies(Days),
    member(Day, Days).

unicornLies2(Day) :- 
    tomorrow(Day, Tomorrow),
    unicornLies1(Day),
    unicornLies1(Tomorrow).

sol:- unicornLies1(Day), unicornLies2(Day), write(Day).
4

2 に答える 2