%% aphor([[0,1,red],[1,0,red],[0,-1,red]],apple,[Colour,Shape]). %% ?- aphor([[0,1,red],[0.7,0.7,red],[0,-1,red]],apple,[Colour,Shape]). %% Colour = red, %% Shape = circle aphor(Items,apple,[Colour,Shape]) :- checkcolour(Items,Colour), checkshape(Items,Shape). checkcolour([[_,_,Colour]|Rest],Colour) :- checkcolour(Colour,Rest), !. checkcolour(Colour,[[_,_,Colour]]) :- !. checkcolour(Colour,[[_,_,Colour]|Rest]) :- checkcolour(Colour,Rest). checkshape(Items,circle) :- checkcircle(Items,[[0,1],[0.7,0.7],[0,-1]],_). checkcircle([[X,Y,_]|Rest],Items2,Items4) :- delete(Items2,[X,Y],Items3), checkcircle(Rest,Items3,Items4). checkcircle([[X,Y,_]],[[X,Y]],_) :- !.