Advertisement
Guest User

Untitled

a guest
Sep 12th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.40 KB | None | 0 0
  1. main :- nl, write('Sistema Especialista em recomendação de jogos para leigos.'), nl,
  2.     retractall(fato(_, _)),     % limpa a memória de trabalho.
  3.     yoshiIsland([],B),mortalKombat(B,C),qlq(C,D),
  4.     write('As recomendações de jogos são: '),
  5.     write(D), nl.
  6.  
  7. % ------------------------------------------------------------------
  8. % Jogos
  9. % ------------------------------------------------------------------
  10. yoshiIsland(A,B) :-
  11.     coop(sim),family(familiar), listIni("Yoshi Island",A,B).
  12. mortalKombat(A,B) :-
  13.     coop(sim),listIni("Mortal Kombat",A,B).
  14. qlq(A,B) :-  listIni("qlq",A,B).
  15.  
  16. % ------------------------------------------------------------------
  17. % Regras de interação com o Usuário - Alto nível
  18. % ------------------------------------------------------------------
  19. coop(A) :-
  20.     pergunte(coop, A , " Você gosta de jogar com os amigos (localmente) ? (sim, nao, nao importa)").
  21. historia(A) :-
  22.     pergunte(historia, A, "Você se importa com historia no jogo em que está jogando ? (sim, nao, nao importa)").
  23. tempo(A) :-
  24.     pergunte(tempo, A, "Gosta de jogatinas mais longas ou curtas ? (longa, curta, nao importa)").
  25. graficos(A) :-
  26.     pergunte(graficos, A, "Prefere que tipos de graficos, 2d ou 3d ? (2d, 3d, nao importa)").
  27. desafio(A) :-
  28.     pergunte(desafio, A, "Gosta de desafio ? (sim, nao, nao importa)").
  29. creativo(A) :-
  30.     pergunte(creativo, A, "Você é uma pessoa criativa ? (sim, nao)").
  31. family(A) :-
  32.     pergunte(family, A, "Você deseja jogos com temas pesados, ou jogos para familia ? (familiar, tanto_faz)").
  33. portatil(A) :-
  34.     pergunte(portatil, A, "Você deseja poder jogar de forma portatil(celular ou portateis) ? (portatil, tanto faz)").
  35. esportes(A) :-
  36.     pergunte(esportes, A, "Você gosta de esportes ? (sim, nao)").
  37. simlador(A) :-
  38.     pergunte(simulador, A, "Você gosta de simluadores (jogos que simulam alguma atividade) ? (sim, nao)").
  39.  
  40. % ------------------------------------------------------------------
  41. % Regras de interação com o Usuário - Baixo nível
  42. % ------------------------------------------------------------------
  43.  
  44. pergunte(Atributo, Valor, Texto) :-
  45.     fato(Atributo, Valor), !.   % O fato já foi perguntado uma vez e não o será mais.
  46.  
  47. pergunte(Atributo, Valor, Texto) :-
  48.     fato(Atributo, Valor), !, fail.
  49. pergunte(A, V, Texto) :-
  50.     nl, write(Texto), write('> '),
  51.     read(V), nl,
  52.     asserta(fato(A,V)).
  53.  
  54. listIni(C, [], [C]) :- !.
  55. listIni(C, Lista, [C|Lista]) :- !.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement