Zitat von Swoncen
Ist jetzt schlecht erklärt, ich erklär wofür ichs brauch. Wir wollen ein Wuzzlturnier machen und es ist nicht klar wieviele Teilnehmer mitspielen. Klar ist jedenfalls, dass wir immer 2 gegen 2 spielen. Es sollten alle Kombinationen gespielt werden. Mir fällt grad nicht ein, wie ich das programmiern soll. Bitte um schnelle Hilfe.
Hier in Prolog:
:- op(600, xfx, gegen).
wuzzel(Ls, Plays) :-
findall(P, wuzzel_(Ls, P), Plays).
wuzzel_(Ls0, Play) :-
select(A, Ls0, Ls1),
select(B, Ls1, Ls2),
B @> A,
select(C, Ls2, Ls3),
C @> A,
select(D, Ls3, _),
D @> C,
Play = (A + B) gegen (C + D).
Alles anzeigen
Getestet mit SWI-Prolog. Beispiel-Query:
?- wuzzel([a,b,c,d], P).
P = [a+b gegen c+d, a+c gegen b+d, a+d gegen b+c] ;