我在Prolog中做了很少的編程,並且發現目前爲止相當困難。編寫一個Prolog程序來模擬一個在網格中移動的大猩猩
我被給出了一個問題:大猩猩沿着8x8網格移動,只能向右或向上移動。它必須保持在網格內,必須在任意位置開始(8,8)。
編寫描述所有可能移動的移動謂詞。
我嘗試:
move(X,Y,X+1,Y).
move(X,Y,X,Y+1).
編寫使用移動謂詞來確定thte機器人shuld採取的路徑的路徑謂語。
我嘗試:
path('right'):-
move(X,Y,X+1,Y).
path('up'):-
move(X,Y,X,Y+1).
寫序言謂詞模型堵塞在(1,2),(4,2)和(4,1)。
到目前爲止,從我所發現的看來,我需要建立一個列表,以便給出所有可能的位置。
我寫的可能位置的列表,但不知道如何實現它:
[(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),
(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),
(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(3,7),(3,8),
(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),
(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),
(6,1),(6,2),(6,3),(6,4),(6,5),(6,6),(6,7),(6,8),
(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),
(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8)]
這似乎是它會是一個簡單的程序,但我似乎無法把握的概念,或者至少放他們都在一起成爲一個可行的方案。
任何方向的幫助將不勝感激。
是的,@Nonpareil將*完全*明白這一點。 – 2014-12-07 02:52:19
@斯科特獵人對不起,我不小心點擊提交,我想編輯並重讀,如果我理解問題的權利(我沒有)。 – 2014-12-07 03:06:29
非常感謝你,看到你寫的東西的原始版本,並開始把我的頭撞在桌子上更多... 這對我有用,對我有意義。 – Nonpareil 2014-12-07 03:12:09