Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Paradigmas] Consulta de Lógico.
Autor Mensaje
Chaito Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 825
Agradecimientos dados: 0
Agradecimientos: 6 en 5 posts
Registro en: Jul 2008
Mensaje: #1
[Paradigmas] Consulta de Lógico. Dudas y recomendaciones Paradigmas de Programación
Buenas! hoy me toco preguntar a mi =P

Estoy haciendo un tp de lógico y en una parte me trabo con este predicado:

9. recorridoEntre/3: Que relaciona una posición inicial, una posición final y una lista de posiciones, si la lista de posiciones constituye un camino entre las dos posiciones (incluyendo la inicial y la final), avanzando siempre en la dirección del destino yendo en horizontal o vertical (no se permite diagonal). Por ejemplo entre (2,2) y (4,4):
     - un camino que vamos a considerar es (2,2),(2,3),(2,4),(3,4),(4,4)
     - otro camino que también vamos a considerar es (2,2),(2,3),(3,3),(4,3),(4,4)
No vamos a considerar, por ejemplo, el camino (2,2), (2,1), (3,1), (4,1), (4,2), (4,3), (4,4), porque como (4,4) está abajo y a la derecha de (2,2), entonces los pasos válidos son solamente en esas direcciones e ir desde (2,2) a (2,1) implica moverse hacia la izquierda.

Aclaración que puede ser útil: dado que siempre se avanza "hacia adelante", no hay riesgo de pasar dos veces por la misma posición, por lo tanto, no hace falta hacer chequeos en ese sentido.


las posiciones las tengo en FUNCTORES... osea posicion(1,1),posicion(1,2),etc... pero no se me ocurre como hacer el caminito Confused

El mapa es un cuadrado, osea q la primera coordenada es el X y la segunda es el Y (muy perceptible =P)... osea que la posicion(1,1) es limitrofe con la posicion(1,2) y la posicion(2,1) (pero las diagonales no son limitrofes, osea 1,1 con 2,2 no vale =P)

Bueno espero alguna respuesta =( muchas gracias de antemano!
 

"Una mentira dicha mil veces se convertirá en verdad" Joseff Goebbels.

"La propaganda de los vencedores se convierte en la historia de los vencidos" Trevanian.
17-09-2008 17:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pablo Sin conexión
ModdIng
Hombre de ingenio (?)
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.646
Agradecimientos dados: 0
Agradecimientos: 7 en 7 posts
Registro en: Apr 2008
Mensaje: #2
Re: [Paradigmas] Consulta de Lógico.
No me acuerdo mucho de la sintaxis, y de hecho lo que voy a poner no te anda SEGURO, pero es para orientarte por si estás muy perdida... de todas formas es básico, ya que no relaciona la lista tampoco.


recorridoEntre(posicion(XIni, YIni), posicion(XFin, YFin), lista) :-
XFin is XIni,
YFin is YIni + 1.

recorridoEntre(posicion(XIni, YIni), posicion(XFin, YFin), lista) :-
XFin is XIni + 1,
YFin is YIni.

recorridoEntre(posicion(XIni, YIni), posicion(XFin, YFin), lista) :-
recorridoEntre(posicion(XIni, YIni), posicion(X, Y), _),
recorridoEntre(posicion(X, Y), posicion(XFin, YFin), _).



Lo único que hace es decir que dos posiciones se relacionan si una viene abajo o a la derecha de la otra, o si hay recorrido entre ambas.

No me acuerdo bien cómo se armaba la lista, por lo cual ni me metí con eso, y una de las cosas más complicadas.

Cuando comparás dos elementos que están relacionados por estar arriba o abajo, tenés que ligarlos como únicos dos elementos de la lista. Cuando el recorrido no es directo, tendrías que decir que en la cabeza esté el primer elemento y que en la cola esté el elemento final.

Capaz fue muy básico lo que tiré, pero por las dudas lo pongo =P.

Saludos!

"No estoy de acuerdo con lo que decís, pero defenderé hasta la muerte vuestro derecho a decirlo" - Voltaire.
23-09-2008 16:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Chaito Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 825
Agradecimientos dados: 0
Agradecimientos: 6 en 5 posts
Registro en: Jul 2008
Mensaje: #3
Re: [Paradigmas] Consulta de Lógico.
Muchas gracias pablo!! pero ya le encontre la vuelta con recursividad de listas =P

"Una mentira dicha mil veces se convertirá en verdad" Joseff Goebbels.

"La propaganda de los vencedores se convierte en la historia de los vencidos" Trevanian.
26-09-2008 01:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Ricitos Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 733
Agradecimientos dados: 9
Agradecimientos: 11 en 7 posts
Registro en: Apr 2008
Mensaje: #4
Re: [Paradigmas] Consulta de Lógico.
yo tb tengo el mismo tp y tengo esta duda a ver si alguien me puede ayudar

puedeLlamarAShenLong/1: se verifica para un guerrero si puede llegar a todas las posiciones donde se encuentran las 7 esferas del Dragón. No es necesario que sea el mismo guerrero que pueda llegar a todas las posiciones, puede complementarse con sus aliados, es decir un guerrero puede llamar a Shen Long si él o sus aliados pueden llegar a donde están las esferas.

Gracias!!!!
01-10-2008 10:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.