Prolog谓词,用于获取一个schdeule中4个玩家的所有可能组合

Prolog谓词,用于获取一个schdeule中4个玩家的所有可能组合,prolog,Prolog,这就是我想要的(没有事实)和玩家1没有遇到玩家2:- ?- schedule_round(4,X). X = [game(1, 3, semi_finals), game(2, 4, semi_finals)] ; X = [game(1, 4, semi_finals), game(2, 3, semi_finals)] ; false. 如果没有事实,半决赛从哪里来?您希望如何指定玩家1不与玩家2会面?还是所有这些都是“硬编码”?@mbrach我需要得到所有的组合,所以如果有事实,我认为不

这就是我想要的(没有事实)和玩家1没有遇到玩家2:-

?- schedule_round(4,X).
X = [game(1, 3, semi_finals), game(2, 4, semi_finals)] ;
X = [game(1, 4, semi_finals), game(2, 3, semi_finals)] ;
false.

如果没有事实,半决赛从哪里来?您希望如何指定玩家1不与玩家2会面?还是所有这些都是“硬编码”?@mbrach我需要得到所有的组合,所以如果有事实,我认为不会有用,但如果你能用事实得出结果,那没关系告诉我,我不知道如何指定玩家1不满足我问的玩家2,我要求这样做。一些事实可以用来建立球员数量和回合类型之间的关系(例如,
回合(半决赛,4)。
)这一切取决于你希望整个程序如何运行。我还注意到,在您的示例中,玩家3与玩家4没有见面。这也是一项要求吗?@mbrach不,要求是玩家1和2在无法避免之前不能满足。