2012-03-24 34 views
2

我在解決謎題時遇到了一些問題。我還沒有找到解決這個難題的任何地方,但我試圖寫在Prolog,但我認爲我的解決方案不會很快(我生成每個解決方案,並刪除它們,如果他們不可能或正確)。 這是我的問題: (我找到了那個謎題的名字,這裏是關於那個謎題的所有規則的鏈接:http://en.wikipedia.org/wiki/Kuromasu)。 現在我有一個不同的問題,哪個方法會比較容易編寫,而且在Prolog中解決它非常快。我想過把字段列表轉換爲無向圖,或者有另一種方法可以垂直搜索我的列表(頭後)?在Prolog中解決邏輯謎題(Kuromasu,黑細胞在哪裏)

在:

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

您是否有拼圖的名稱或鏈接?標題不是很好.. – 2012-03-24 22:00:59

+0

我試圖找到這個謎題的名稱,但我不知道。 如何更改標題以使其更清晰? – 2012-03-24 22:06:12

+0

拼圖的名稱將是一個開始:-)「在Prolog中解決XYZ?」其中XYZ是拼圖名稱或拼圖原型。 – 2012-03-24 22:15:53

回答

4

這種類型的謎題被稱爲Kuromasu。這裏是一個可以用SWI-Prolog和有限域約束來解決的頁面:http://jfoutelet.developpez.com/articles/kuromasu/

+1

非常感謝您,這些信息非常有用。 但還有另一個問題,我不懂法語,我想我不能使用謂詞。 – 2012-03-25 07:35:12