我是使用 swi Prolog 的新手,现在我正在尝试使用 Prolog http://www.allstarpuzzles.com/logic/00335.html解决这个逻辑难题
但是当我尝试运行该程序时,该程序似乎停止响应并且 Prolog 冻结。看来我在确定每支球队的得分时遇到了问题。这是我的 Prolog 代码:
team(dirtydozen).
team(plough).
team(barflyers).
team(threestooges).
team(friends).
pub(maid).
pub(old).
pub(clown).
pub(king).
pub(queen).
score(75).
score(74).
score(73).
score(72).
score(71).
score(70).
score(69).
score(68).
score(67).
score(66).
score(65).
score(64).
score(63).
score(62).
score(61).
score(60).
solve :-
score(Score1),score(Score2),score(Score3),score(Score4),score(Score5),
pub(Pub1),pub(Pub2),pub(Pub3),pub(Pub4),pub(Pub5),
Hasil = [[dirtydozen,Pub1,Score1],
[plough,Pub2,Score2],
[barflyers,Pub3,Score3],
[threestooges,Pub4,Score4],
[friends,Pub5,Score5]],
Score1 is Score2 + 6,
Score1 is Score3 + 9,
\+ member([threestooges,maid,_],Hasil),
member([friends,_,A],Hasil),
member([_,old,B],Hasil),
member([_,clown,C],Hasil),
member([_,king,D],Hasil),
(A-B) is 2*(C-D),
member([_,queen,E],Hasil),
member([threestooges,_,F],Hasil),
F >= E+3.