私は Prolog を初めて使用し、Prolog でゼブラのなぞなぞとしても知られるアインシュタインのなぞなぞのようななぞなぞをモデル化しようとしています (ただし、10 の家と 30 のヒントがあります)。このモデルの例を出発点として使用しています。
http://www.baptiste-wicht.com/2010/09/solve-einsteins-riddle-using-prolog/
しかし、私のなぞなぞでは、X が Y の右であると言えなければなりません。そして、直接右という意味ではなく、リスト内で右という意味です。したがって、Y は家 1 に、X は家 9 にいることができます。
Prologでこれを行うにはどうすればよいですか? Y は、X と X の前のすべての要素をそのリストから取り出すことによって構築されたリストのメンバーであるという述語について考えていましたが、それを行う方法や、それを適合させる方法がわかりません。前述の例。