私はPrologでリストを囲むようにしています。これを行うには、私は一種のゲームを作成しようとしています。繰り返すことができる1-9のリストを渡します。リストは任意の長さにすることができます。ルールは、最初の要素(e)から始まり、終了するまでe + 2またはe + 3に移動することしかできません。目標は最も高い数字に「着陸」することです。本質的には、ホップスコッチのようなものです。私が実行している問題は、パスのすべての可能な置換を決定することです。これまでのところ、私は以下を持っています。使用する指定された式を使用してリストの置換が可能です
paths([], []). %empty list returns empty list
paths([X], [X]). %list with one element returns that one element
paths([X1, X2], [X1]). %list with 2 elements returns the first element
paths([X1, X2, X3], [X1,X3]). %list with three elements returns the first and third element
paths() :- % the recursive case for a list with 4+ elements
リストは次のようになります。[1,2,3,4,5,6,8,7,9,3,6,5,7,8,9]
私が言及したルールを使用して、すべての可能なパスを決定する必要があります。私は、リストはPrologでインデックスを作成することができ:(
どれロジックガイダンスは理解されることを望む
私は、[この]を考える(http://stackoverflow.com/questions/36579234/prolog-generating-every-possibility -of-a-list-given-a-pattern)はあなたが探しているものです。 – tas