Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- main :- nl, write('Sistema Especialista em recomendação de jogos para leigos.'), nl,
- retractall(fato(_, _)), % limpa a memória de trabalho.
- yoshiIsland([],B),mortalKombat(B,C),qlq(C,D),
- write('As recomendações de jogos são: '),
- write(D), nl.
- % ------------------------------------------------------------------
- % Jogos
- % ------------------------------------------------------------------
- yoshiIsland(A,B) :-
- coop(sim),family(familiar), listIni("Yoshi Island",A,B).
- mortalKombat(A,B) :-
- coop(sim),listIni("Mortal Kombat",A,B).
- qlq(A,B) :- listIni("qlq",A,B).
- % ------------------------------------------------------------------
- % Regras de interação com o Usuário - Alto nível
- % ------------------------------------------------------------------
- coop(A) :-
- pergunte(coop, A , " Você gosta de jogar com os amigos (localmente) ? (sim, nao, nao importa)").
- historia(A) :-
- pergunte(historia, A, "Você se importa com historia no jogo em que está jogando ? (sim, nao, nao importa)").
- tempo(A) :-
- pergunte(tempo, A, "Gosta de jogatinas mais longas ou curtas ? (longa, curta, nao importa)").
- graficos(A) :-
- pergunte(graficos, A, "Prefere que tipos de graficos, 2d ou 3d ? (2d, 3d, nao importa)").
- desafio(A) :-
- pergunte(desafio, A, "Gosta de desafio ? (sim, nao, nao importa)").
- creativo(A) :-
- pergunte(creativo, A, "Você é uma pessoa criativa ? (sim, nao)").
- family(A) :-
- pergunte(family, A, "Você deseja jogos com temas pesados, ou jogos para familia ? (familiar, tanto_faz)").
- portatil(A) :-
- pergunte(portatil, A, "Você deseja poder jogar de forma portatil(celular ou portateis) ? (portatil, tanto faz)").
- esportes(A) :-
- pergunte(esportes, A, "Você gosta de esportes ? (sim, nao)").
- simlador(A) :-
- pergunte(simulador, A, "Você gosta de simluadores (jogos que simulam alguma atividade) ? (sim, nao)").
- % ------------------------------------------------------------------
- % Regras de interação com o Usuário - Baixo nível
- % ------------------------------------------------------------------
- pergunte(Atributo, Valor, Texto) :-
- fato(Atributo, Valor), !. % O fato já foi perguntado uma vez e não o será mais.
- pergunte(Atributo, Valor, Texto) :-
- fato(Atributo, Valor), !, fail.
- pergunte(A, V, Texto) :-
- nl, write(Texto), write('> '),
- read(V), nl,
- asserta(fato(A,V)).
- listIni(C, [], [C]) :- !.
- listIni(C, Lista, [C|Lista]) :- !.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement