Solving cats in spring logic puzzles with Prolog

100 Views Asked by At

So I'm a beginner at Prolog and I wanted to solve the riddle from this website https://www.ahapuzzles.com/logic/logic-puzzles/cats-in-spring/ in prolog.

So I tried to write this and queried findcat(F,M,A,K) but it returned false. What have I done wrong?

malecat(batman).
malecat(jake).
malecat(dibii).

femalecat(spot).
femalecat(ruby).
femalecat(starbuck).

activity(sleep).
activity(ball).
activity(laser).

kitten(1).
kitten(2).
kitten(3).

findcat(Female,Male,Activity,Kittens) :-

    length(Cats, 3),
    
    member((A,batman,ball,_), Cats), A \= starbuck,
    member((_,dibii,laser,_), Cats),
    member((ruby,_,sleep,_), Cats),
    member((starbuck,_,_,3), Cats),
    member((_,batman,_,1), Cats),

    member((W,_,_,_), cats),
    member((_,X,_,_), cats),
    member((_,_,Y,_), cats),
    member((_,_,_,Z), cats),
    femalecat(W),
    malecat(X),
    activity(Y),
    kitten(Z),

    member((Female,Male,Activity,Kittens), Cats).
0

There are 0 best solutions below