Nas aulas teórico-práticas foi sugerida a seguinte solução para o problema do macaco e das bananas:
accao(situacao(centro,cima_caixa,centro,nao_tem), apanhar, situacao(centro,cima_caixa,centro,tem)). accao(situacao(P,chao,P,TN), subir, situacao(P,cima_caixa,P,TN)). accao(situacao(P1,chao,P1,TN), empurrar(P1,P2), situacao(P2,chao,P2,TN)). accao(situacao(P1,chao,C,TN), andar(P1,P2), situacao(P2,chao,C,TN)). % cumpre_obj(S) <=> macaco pode obter banana partindo de S cumpre_obj(situacao(_,_,_,tem)). cumpre_obj(E) :- accao(E,A,S), cumpre_obj(S).
Depois de fazer o 'consult' do ficheiro, bastava perguntar ao interpretador:
?- cumpre_obj(situacao(porta,chao,janela,nao_tem)). yes
Com este exercício pretende-se que alterem o programa acima, de modo a sabermos qual a
solução ``que o macaco encontra'' para apanhar a banana.