Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Presentes
- go :- regra([GA1, GA2, GA3, GA4, GA4, GA5]),
- writeIn("\n GA1":GA1),
- writeIn("\n GA2":GA2),
- writeIn("\n GA3":GA3),
- writeIn("\n GA4":GA4),
- writeIn("\n GA5":GA5).
- /* O comando go nao ta funcionando :(
- Consultando regra(X) no tkEclipse, I2 aparece como 9 e I3 como 9
- tambem. Nao consegui fazer o debug disso. De resto ta tudo certo.
- Soh conferir na tabela. :) Se tu conseguir achar onde ta o bug
- ficarei muito felis! */
- regra( [(N1, I1, S1, P1, PR1, CR1),
- (N2, I3, S2, P2, PR2, CR2),
- (N3, I3, S3, P3, PR3, CR3),
- (N4, I4, S4, P4, PR4, CR4),
- (N5, I5, S5, P5, PR5, CR5)]):-
- /* INFO CONHECIDA SOBRE NOMES */
- (nome(N1), nome(N2), nome(N3), nome(N4), nome(N5),
- alldifferent([N1, N2, N3, N4, N5]),
- /* INFO CONHECIDA SOBRE IDADES */
- idade(I1), idade(I2), idade(I3), idade(I4), idade(I5),
- alldifferent([I1, I2, I3, I4, I5]),
- /* INFO CONHECIDA SOBRE SUCOS */
- suco(S1), suco(S2), suco(S3), suco(S4), suco(S5),
- alldifferent([S1, S2, S3, S4, S5]),
- /* INFO CONHECIDA SOBRE PROFISSOES */
- profissao(P1), profissao(P2), profissao(P3), profissao(P4), profissao(P5),
- alldifferent([P1, P2, P3, P4, P5]),
- /* INFO CONHECIDA SOBRE PRESENTES */
- presente(PR1), presente(PR2), presente(PR3), presente(PR4), presente(PR5),
- alldifferent([PR1, PR2, PR3, PR4, PR5]),
- /* INFO CONHECIDA SOBRE CORES */
- cor(CR1), cor(CR2), cor(CR3), cor(CR4), cor(CR5),
- alldifferent([CR1, CR2, CR3, CR4, CR5]),
- /* RESOLVENDO OS PROBLEMAS */
- %1.O garoto que quer ser Bombeiro mora em alguma das casas das pontas.
- ((P1 == bombeiro);(P5 == bombeiro)),
- %2.Quem gosta de Maracujá quer ser Médico.
- ((S1 == maracuja, P1 == medico);(S2 == maracuja, P2 == medico);
- (S3 == maracuja, P3 == medico);(S4 == maracuja, P4 == medico);
- (S5 == maracuja, P5 == medico)),
- %3. Na terceira casa está o garoto que quer ser Professor.
- (P3 == professor),
- %4. Em uma das pontas mora o menino que quer ser Policial.
- ((P1 == policial);(P5 == policial)),
- %5. Na quinta casa está o garoto que deseja ser Bombeiro quando crescer.
- (P5 == bombeiro),
- %6. O menino que gosta de suco de laranja esta em uma das pontas
- ((S1 == laranja);(S5 == laranja)),
- %7.O garoto que gosta de limonada está exatamente à esquerda do que gosta de suco de Morango.
- ((S1 == limao, S2 == morango);(S2 == limao, S3 == morango);
- (S3 == limao, S4 == morango);(S4 == limao, S5 == morango)),
- %8.Quem quer ser Médico está exatamente à direita de quem gosta de suco de Abacaxi.
- ((S1 == abacaxi, P2 == medico);(S2 == abacaxi, P3 == medico);
- (S3 == abacaxi, P4 == medico);(S4 == abacaxi, P5 == medico)),
- %9.Cristian gosta de suco de Limão.
- ((N1 == willian, S1 == limao);(N2 == willian, S2 == limao);
- (N3 == wilian, S3 == limao);(N4 == willian, S4 == limao);
- (N5 == willian, S5 == limao)),
- %10. O menino de 8 anos mora ao lado do que quer um Computador de presente.
- ((I1 == 8, PR2 == computador);
- (I2 == 8, (PR1 == computador ; PR3 == computador));
- (I3 == 8, (PR2 == computador ; PR4 == computador));
- (I4 == 8, (PR3 == computador ; PR5 == computador));
- (I5 == 8, PR4 == computador)),
- %11. O garoto que quer um Skate está exatamente à esquerda da casa do Alex.
- ((PR1 == skate, N2 == paul);(PR2 == skate, N3 == paul);
- (PR3 == skate, N4 == paul);(PR4 == skate, N5 == paul)),
- %12. Na casa de cor Branca mora o menino que deseja um Vídeo Game de natal.
- ((PR1 == videogame, CR1 == branca);(PR2 == videogame, CR2 == branca);
- (PR3 == videogame, CR3 == branca);(PR4 == videogame, CR4 == branca);
- (PR5 == videogame, CR5 == branca)),
- %13. Na primeira casa mora o garoto que quer uma Bola de presente de natal.
- (PR1 == bola),
- %14. Quem quer uma Bicicleta mora ao lado de quem deseja um Vídeo Game de presente.
- ((PR1 == bicicleta, PR2 == videogame);
- (PR2 == bicicleta, (PR1 == videogame ; PR3 == videogame));
- (PR3 == bicicleta, (PR2 == videogame ; PR4 == videogame));
- (PR4 == bicicleta, (PR3 == videogame ; PR5 == videogame));
- (PR5 == bicicleta, PR4 == bicicleta)),
- %15. O menino mais novo mora na quinta casa.
- (I5 == 6),
- %16. O garoto de 10 anos está em algum lugar entre o de 7 e o de 9 anos, nessa ordem.
- ((I1 == 7, I2 == 10, I3 == 9);
- (I2 == 7, I3 == 10, I4 == 9);
- (I3 == 7, I4 == 10, I5 == 9)),
- %17. O garoto de 9 anos quer ser Professor quando crescer.
- ((I1 == 9, P1 == professor);
- (I2 == 9, P2 == professor);
- (I3 == 9, P3 == professor);
- (I4 == 9, P4 == professor);
- (I5 == 9, P5 == professor)),
- %18. Pedro mora na terceira casa.
- (N3 == vitor),
- %19. Eduardo mora exatamente à direita de Pedro. Eduardo == vinicius , Pedro == vitor.
- ((I1 == vitor, I2 == vinicius);
- (I2 == vitor, I3 == vinicius);
- (I3 == vitor, I4 == vinicius);
- (I4 == vitor, I5 == vinicius)),
- %20. Eduardo mora na casa de cor Verde.
- ((N1 == vinicius, CR1 == verde);
- (N2 == vinicius, CR2 == verde);
- (N3 == vinicius, CR3 == verde);
- (N4 == vinicius, CR4 == verde);
- (N5 == vinicius, CR5 == verde)),
- %21. A casa de cor Branca está exatamente à esquerda da casa do menino que gosta de suco de Maracujá.
- ((CR1 == branca, S2 == maracuja);
- (CR2 == branca, S3 == maracuja);
- (CR3 == branca, S4 == maracuja);
- (CR4 == branca, S5 == maracuja)),
- %22. A casa de cor Azul está exatamente à esquerda da casa do garoto que quer um Vídeo Game.
- ((CR1 == azul, PR2 == videogame);
- (CR2 == azul, PR3 == videogame);
- (CR3 == azul, PR4 == videogame);
- (CR4 == azul, PR5 == videogame)),
- %23. A primeira casa é Amarela.
- (CR1 == amarela)).
- %-----FATOS-----
- cor(amarela).
- cor(azul).
- cor(branca).
- cor(verde).
- cor(vermelha).
- %Nomes
- nome(willian).
- nome(marcos).
- nome(vitor).
- nome(vinicius).
- nome(paul).
- /*
- willian = cristian
- marcos = mario
- vitor = pedro
- vinicius = eduardo
- paul = alex
- */
- idade(6).
- idade(7).
- idade(8).
- idade(9).
- idade(10).
- presente(bola).
- presente(bicicleta).
- presente(videogame).
- presente(skate).
- presente(computador).
- suco(limao).
- suco(maracuja).
- suco(morango).
- suco(abacaxi).
- suco(laranja).
- profissao(policial).
- profissao(astronauta).
- profissao(professor).
- profissao(medico).
- profissao(bombeiro).
- %-------------------
- alldifferent([]).
- alldifferent([H|T]):- not(member(H,T)),
- alldifferent(T).
- imprime_lista([]):- write('\n FIM \n').
- imprime_lista([H|T]):- write('\n.............\n'),
- write(H),
- imprime_lista(T).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement