1
我有一個基於柵格地圖,而我試圖建立一個謂語,讓我2點之間的距離對角線,這是我應得的序言,對角線距離
dist_diagonal((X,Y),(X,W),Passos,D):-
dist_ortogonal((X,Y),(X,W),D1),
D is D1 + Passos.
dist_diagonal((X,Y),(Z,Y),Passos,D):-
dist_ortogonal((X,Y),(Z,Y),D1),
D is D1 + Passos.
dist_diagonal((X,Y),(Z,W),Passos,_):-
X>Z,
Y<W,
Passos1 is Passos+1,
X1 is X-1,
Y1 is Y+1,
dist_diagonal((X1,Y1),(Z,W),Passos1,_).
dist_diagonal((X,Y),(Z,W),Passos,_):-
X<Z,
Y<W,
Passos1 is Passos+1,
X1 is X+1,
Y1 is Y+1,
dist_diagonal((X1,Y1),(Z,W),Passos1,_).
但是當我嘗試測試:
dist_diagonal((5,4),(3,8),0,D).
我得到true
,而不是爲d
值這有什麼錯我的斷言? PS:我應該補充一點,我只會在驗證碼Y<Z
時使用它。 PS2:請注意,我使用8種動作計算距離,而不是歐幾里德距離。 Diagonal distance
非常感謝!!!! – user3636673
很高興幫助! – coder