17-09-2008, 17:09
Buenas! hoy me toco preguntar a mi
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
El mapa es un cuadrado, osea q la primera coordenada es el X y la segunda es el Y (muy perceptible )... 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 )
Bueno espero alguna respuesta muchas gracias de antemano!
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
El mapa es un cuadrado, osea q la primera coordenada es el X y la segunda es el Y (muy perceptible )... 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 )
Bueno espero alguna respuesta muchas gracias de antemano!