爲了好玩,我一直試圖在gprolog中使用Warnsdorf的規則編寫騎士之旅(https://en.wikipedia.org/wiki/Knight%27s_tour)求解器。將表格謂詞從b序列轉換爲gprolog
我發現另一個SO帖子詢問效率,提供了B-序言中的解決方案: knight's tour efficient solution。
我的問題,下面的部分出現了:
:- table warnsdorff(+,+,+,+,+,-,-,min).
warnsdorff(R, C, X, Y, Visits, NewX, NewY, Score) :-
possible_knight_moves(R, C, X, Y, Visits, NewX, NewY),
possible_moves_count(R, C, NewX, NewY, [(NewX, NewY) | Visits], Score).
B-Prolog的特點提出謂詞和gprolog沒有。嘗試將表格部分轉換爲gprolog時遇到了很大的困難。在實踐中,函數應該返回從當前位置移動,從而導致可能的移動次數從新位置(關係隨機選擇)。
任何幫助將不勝感激。乾杯!
向Google博士詢問「騎士的旅程序言」。有很多解決方案。 – false
「爲樂趣」類似的問題開始swarm讓我覺得這是一個asignment(請參閱http://stackoverflow.com/questions/43622353/gprolog-knights-tour-using-warnsdorffs-rule和http:// stackoverflow。 com/questions/43628413/simulating-knight-movement-using-prolog) – Rafalon