matheusmoraismoura / wumpusgrp5

Trabalho de Lógica
GNU General Public License v2.0
1 stars 0 forks source link

Calcular uma ação para alcançar um objetivo (alvo) #20

Closed drbeco closed 8 years ago

drbeco commented 8 years ago

Faça um predicado que dê como entrada:

E retorne como saída uma ação M que faz o agente ficar mais próximo do seu objetivo.

Predicado:

calculacao(P, A, T, M) ou calculacao(T, M) se omitir P e A.

Exemplos:

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.6.6)
Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- calculacao([1,1], 0, [1, 3], M).
M = turnleft
?- calculacao([1,1], 90, [1, 3], M).
M = goforward
?- calculacao([1,2], 90, [1, 3], M).
M = goforward
?- calculacao([1,3], 90, [1, 1], M).
M = turnleft (ou turnright, tanto faz)
?- calculacao([1,3], 180, [1, 1], M).
M = turnleft
?- calculacao([1,3], 270, [1, 1], M).
M = goforward
?- calculacao([1,2], 270, [1, 1], M).
M = goforward
?- minhaposicao([X, Y]).
X=1,
Y=1.
gabrielgou commented 8 years ago

Feito dentro da função mover_agent, chama uma acao(P,A,T,M).