Tôi đang cố gắng biên dịch chương trình SWI-Prolog nhưng vẫn giữ được test is always true, var (sum) error on line 7
. Tôi không thể hiểu được điều này có nghĩa là gì. Ai đó có thể giúp đỡ? Đây là một chương trình tôi hy vọng cuối cùng sẽ giải quyết các ô vuông Latin. Cảm ơn bạn.Kiểm tra Prolog luôn đúng sai số var (tổng)
:- use_module(library(clpfd)).
magic_counter(Count) :-
findall(a, magic_1(_Soln), As),
length(As, Count).
magic_1(Soln) :-
Row1 = [W1, W2, W3],
Row2 = [X1, X2, X3],
Row3 = [Y1, Y2, Y3],
Row1 ins 1..3,
Row2 ins 1..3,
Row3 ins 1..3,
Sum #= 6,
all_different(Row1),
all_different(Row2),
all_different(Row3),
all_different([W1,X1,Y1]),
all_different([W2,X2,Y2]),
all_different([W3,X3,Y3]),
W1 + W2 + W3 #= Sum,
X1 + X2 + X3 #= Sum,
Y1 + Y2 + Y3 #= Sum,
W1 + X1 + Y1 #= Sum,
W2 + X2 + Y2 #= Sum,
W3 + X3 + Y3 #= Sum,
append(Row1,Row2,Row12),
append(Row12,Row3,Soln),
labeling([], Soln).
xin chào và cảm ơn bạn. tôi rất mới để prolog. nếu tôi nhận xét Sum # = 6 tôi vẫn nhận được lỗi tương tự. (có lẽ tôi không có nghĩa là để bình luận nó ra?) Tôi muốn giải quyết các ô vuông latin cho thứ tự n vì vậy tôi không chắc chắn những hạn chế của tôi nên được. cám ơn bạn một lần nữa – CompilerSaysNo