I am trying to create a search space for the 7 ball question in prolog

Viewed 62

I am trying to create a search space with state transitions that take which number of balls you are putting to a weighing machine then I want to eliminate some of the balls according to if they have the a bit heavier ball. Although my code is still missing some restrictions when I try to input a some true queries I get false as answer.

isMember([A|_],A).
isMember([_|X],A):-
isMember(X,A).

removeOrderedList(X,[],X).
removeOrderedList([B|X], [A|Y], [B|Z]):-
    removeOrderedList(X, [A|Y], Z).
removeOrderedList([A|X], [A|Y], Z):-
    removeOrderedList(X, Y , Z).


statechange(Secret, left, right, _, left):-
    isMember(left,Secret),
    !.
statechange(Secret, left, right, _, right):-
    isMember(right,Secret),
    !.
statechange(_, left, right, X, N):-
    removeOrderedList(X,left,inter),
    removeOrderedList(inter,right,N).

the query I tried to execute was statechange(1,[1,2,3,4],[5,6,7,8],[1,2,3,4,5,6,7,8,9,10],A). My isMember and removeOrderedList is working.

0 Answers
Related