2012-03-24 18 views
2

パズルを解くことにはいくつか問題があります。私はこのパズルの解決策はどこにも見つけられませんでしたが、私はPrologに書き込もうとしましたが、私の解決策は速くないと思います(私はすべての解決策を生成し、 これは私の問題です: (私はそのパズルの名前を見つけました、ここにそのパズルのすべてのルールのリンクがあります:http://en.wikipedia.org/wiki/Kuromasu)。 今私は別の質問をしています。どのメソッドを書くのが簡単で、Prologでそれを解決するのはかなり速いでしょう。私はフィールドのリストを無向グラフに変換することを考えましたか、またはリストを垂直方向に検索するもう1つの方法がありますか?プロローグでロジックパズルを解く(黒いところは黒いセル)

で:

0, 0, 0, 5, 0, 0, 0 
0, 5, 0, 0, 0, 0, 2 
0, 0, 0, 0, 7, 0, 4 
0, 0, 0, 0, 0, 0, 0 
8, 0, 13,0, 0, 0, 0 
5, 0, 0, 0, 0, 6, 0 
0, 0, 0, 8, 0, 0, 0 

結果:

0, #, 0, 5, 0, 0, # 
0, 5, 0, 0, 0, #, 2 
0, #, 0, #, 7, 0, 4 
#, 0, 0, 0, 0, 0, # 
8, 0, 13,0, 0, 0, 0 
5, 0, 0, 0, #, 6, 0 
#, 0, 0, 8, 0, 0, # 
+0

パズルの名前やリンクはありますか?タイトルはあまり良くありません。 –

+0

私はこのパズルの名前を見つけようとしましたが、わかりません。 タイトルをより明確にするには、どうすれば変更できますか? –

+0

パズルの名前は始まりでしょう:-) "PrologでXYZを解く?" XYZはパズルの名前またはパズルの原型です。 –

答えて

4

パズルのこのタイプは黒どこと呼ばれています。以下は、SWI-Prologと有限ドメインの制約を使って解くページです:http://jfoutelet.developpez.com/articles/kuromasu/

+1

ありがとうございます、その情報は非常に便利です。 しかし、別の問題がある、私はフランス語を理解していないと思う、私は#_述語を使用することはできません。 –

関連する問題