% Author:RL % Date: 04/10/2016 colours([red,blue,orange, plaid]). names([fred,joe, bob, tom]). positions([1,2,3,4]). % golfer(Name,Position,Colour) go :- positions(Ps), colours(Cs), pick(P1, Ps, Ps1), pick(C1, Cs, Cs1), G1 = golfer(fred, P1, C1), pick(P2, Ps1, Ps2), pick(C2, Cs1, Cs2), G2 = golfer(joe, P2, C2), pick(P3, Ps2, Ps3), pick(C3, Cs2, Cs3), G3 = golfer(bob, P3, C3), pick(P4, Ps3, _), pick(C4, Cs3, _), G4 = golfer(tom, P4, C4), P2 =:= 2, C3 == plaid, Y is P1+1,(G2 = golfer(_,Y, blue); G3 = golfer(_,Y, blue) ; G4 = golfer(_,Y, blue)), P4 =\= 1, P4 =\= 4, C4 \== orange, write(G1), nl, write(G2), nl, write(G3), nl, write(G4), nl. pick(X, [X|T], T). pick(X, [H|T], [H|T2]) :- pick(X, T, T2).