Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- all_members([H],L2) :- member(H,L2).
- all_members([H|T],L2) :- member(H,L2), all_members(T, L2).
- all_not([H]) :- not(H).
- all_not([H|T]) :- not(H), all_not(T).
- all_not_members([H],L2) :- not(member(H,L2)).
- all_not_members([H|T],L2) :- not(member(H,L2)), all_not_members(T, L2).
- and([H]) :- H.
- and([H|T]) :- H, and(T).
- or([H]) :- H,!.
- or([H|_]) :- H,!.
- or([_|T]) :- or(T).
- % [FOTOS, SEGUIDORES, CIDADE]
- solve(Carlos, Fabiola, Geraldo, José, Luciana) :-
- Carlos = [Carlos_fotos, Carlos_seguidores, Carlos_cidade],
- Fabiola = [Fabiola_fotos, Fabiola_seguidores, Fabiola_cidade],
- Geraldo = [Geraldo_fotos, Geraldo_seguidores, Geraldo_cidade],
- Jose = [Jose_fotos, Jose_seguidores, Jose_cidade],
- Luciana = [Luciana_fotos, Luciana_seguidores, Luciana_cidade],
- % grouping
- Todos = [Carlos, Fabiola, Geraldo, Jose, Luciana],
- % ensure all values exist once
- all_members([100, 110, 120, 130, 140], [Carlos_fotos, Fabiola_fotos, Geraldo_fotos, Jose_fotos, Luciana_fotos]),
- all_members([102, 103, 104, 105, 106], [Carlos_seguidores, Fabiola_seguidores, Geraldo_seguidores, Jose_seguidores, Luciana_seguidores]),
- all_members([Brasília,Florianópolis,Maceió,Manaus,SãoPaulo], [Carlos_cidade, Fabiola_cidade, Geraldo_cidade, Jose_cidade, Luciana_cidade]),
- % clues from easy (fast) to hard (slow)
- % Carlos
- not(Carlos_cidade = Brasília),
- not(Carlos_seguidores = 102),
- member([Seg102_fotos,102,_], All),
- Carlos_fotos - 10 =:= Seg102_fotos,
- member([B_fotos,_,Brasília], All),
- Carlos_fotos - 10 =:= B_fotos,
- % Fabiola
- not(Fabiola_cidade = Manaus),
- not(Fabiola_cidade = Florianópolis),
- not(Fabiola_cidade = SãoPaulo),
- member([M_fotos,_,Manaus], All),
- Fabiola_fotos - 20 =:= M_fotos,
- member([F_fotos,_,Florianópolis], All),
- Fabiola_fotos =:= F_fotos - 10,
- % Geraldo
- member([Luciana_fotos,Luciana_seguidores,Luciana_cidade], All),
- Luciana_fotos - 30 =:= Geraldo_fotos,
- % Jose
- not(Jose_cidade = Florianópolis),
- not(Jose_cidade = Brasília),
- member([_,F_seguidores,Florianópolis], All),
- Jose_seguidores - 1 =:= F_seguidores,
- member([_,B_seguidores,Brasília], All),
- Jose_seguidores =:= B_seguidores - 1,
- % Luciana
- Luciana_seguidores < 105,
- % Dica 2, São Paulo
- member([_,S_seguidores,SãoPaulo], All),
- S_seguidores =:= Fabiola_seguidores - 1,
- member([110,Seg110_seguidores,_], All),
- S_seguidores - 2 =:= Seg110_seguidores,
- % Dica 6, Maceió
- member([M_fotos,103,Maceió], All),
- member([Seg104_fotos,104,Seg104_cidade], All),
- M_fotos =:= Seg104_fotos - 20,
- not(Seg104_fotos = 140),
- !.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement