Ich versuche, ein SWI-Prolog-Programm zu kompilieren, aber immer test is always true, var (sum) error on line 7
. Ich kann nicht herausfinden, was das bedeutet. Kann mir bitte jemand helfen? Dies ist ein Programm, von dem ich hoffe, dass es lateinische Quadrate lösen wird. Vielen Dank.Prolog Test ist immer wahr var (Summe) Fehler
:- 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).
hallo und danke. Ich bin sehr neu in Prolog. Wenn ich Sum # = 6 auskommentiere, bekomme ich immer noch denselben Fehler. (vielleicht sollte ich es nicht auskommentieren?) Ich möchte lateinische Quadrate für Ordnung n lösen, also bin ich nicht sicher, was meine Beschränkungen sein sollten. Danke nochmal – CompilerSaysNo