• Jueves 2 de Mayo de 2024, 06:17

Autor Tema:  Laberinto Ocupando Listas  (Leído 3267 veces)

tdhde

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Laberinto Ocupando Listas
« en: Viernes 24 de Junio de 2005, 20:22 »
0
Hola, soy nuevo a esta pagina, y pues la encontre mientras buscaba ayuda sobre como hacer un laberinto en prolog ocupando listas...En estos momentos no tengo el planteamiento del trabajo, pero quisiera saber si hay alguien que podria ayudarme con este problema, no dispongo de mucho tiempo para hacerlo pero tengo ciertas funciones y otra cosas con las que estoy trabajando para su implementacion.





fuhrer

  • Miembro MUY activo
  • ***
  • Mensajes: 329
  • Nacionalidad: mx
    • Ver Perfil
    • http://admin.busquenoseninternet.com
Re: Laberinto Ocupando Listas
« Respuesta #1 en: Viernes 24 de Junio de 2005, 21:26 »
0
Hola que tal.

No se si sea necesario que lo realices con listas, pero si es así y necesitas ayuda, yo creo que deberias mostrar o al menos decir que es lo que hacen tus "funciones" y mas o menos dar la idea que tienes para realizarlo, creo que asi sera mas fácil ayudarte.

Hasta luego.

tdhde

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Laberinto Ocupando Listas
« Respuesta #2 en: Sábado 25 de Junio de 2005, 00:52 »
0
Si, gracias, estoy tratando de ponerlas en orden ya que ahorita simplemente son funciones aleatorias sin ningun orden.  Lo que pasa es que es un proyecto y se nos ha pedido que se ocupen listas, seria mas facil hacerlo sin listas pero pues es un requisito, eso y dan mas puntos si se leen de un archivo los datos. Tengo la mayoria de funciones hechas, sin embargo no he podido conectarlas, pero tan pronto tenga el planteamiento en la computadora, lo voy a poner aqui.





tdhde

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Laberinto Ocupando Listas
« Respuesta #3 en: Sábado 25 de Junio de 2005, 01:27 »
0
Hola de nuevo, les presento aqui la lista de funciones que he podido encontrar, y he modificado para ver si son utiles en la realizacion de este trabajo.  Si creen que algunas son utiles y otras no, desearia que me lo hicieran saber, hasta este punto en  la materia, me ha empezado a dar ciertos problemas el hacer los programas, sin embargo tengo una idea de lo que quiero construir, simplemente no logro visualizar todas las partes importantes a ser construidas, si me pudieran guiar con alguna idea, o alguna implementacion que seria bueno ocupar, les estaria muy agradecido.

(Algunas funciones solo son de prueba para ver cuales me sirven y cuales no)

% ------------------------------------------------------------------------

mostrarArchivo(Ruta):- exists_file(Ruta), open(Ruta, read, F),
get_char(F, Car), mostrar(F, Car).

mostrar(_, end_of_file).
mostrar(F, Car):- Car \=@= 'end_of_file', write(Car), get_char(F, Car1),
mostrar(F, Car1).

% ------------------------------------------------------------------------

archivo_a_lista(Ruta, L):- exist_file(Ruta), open(Ruta, read, F),
get_char(F, C), agregart(F, C, L).

agregar(_, end_of_file, []).
agregar(F, Car, [Car|R]):- Car \=@= 'end_of_file', get_char(F, C),
agregar(F, C, R).

% ------------------------------------------------------------------------

leer(File,[C|R]):-read_line_to_codes(File,C1),
string_to_atom(C1,C), C\=@='end_of_file',leer(File,R).
leer(File,[]):-read_line_to_codes(File,C),
C=@='end_of_file'.

% ------------------------------------------------------------------------

escribir_linea(Ruta):- open(Ruta, append, F), write('Ingrese un atomo'),
read(Linea), write(F, Linea), nl(F), close(F).

% ------------------------------------------------------------------------

escribir_Lista(L, Ruta):- open(Ruta, append, F), write(F, L), nl(F), close(F).

% ------------------------------------------------------------------------

concatenar([], L, L).
concatenar([C|R], L, [C|R1]):- concatenar(R, L, R1).

% ------------------------------------------------------------------------

agregar(E, [], [E]).
agregar(E, [C|R], [C|L1]):- agregar(E, R, L1).
invertir([], []).
invertir([C|R], L):- invertir(R,L1), agregar(C, L1, L).


% ------------------------------------------------------------------------

mov(centro, a).
mov(centro, B).
mov(centro, c).
mov(centro,d).
mov(X, Y):- mov (Y, X).

elimUlt([X|B], [X]).
elimUlt([C|R], [C|R1]):- longitud(R, N), N > 1, elimUlt(R, R1).

% ------------------------------------------------------------------------

ordenar(L, LOrd):- ordenar(L, [], LOrd).
ordenar([], L, L).
ordenar([C|R], L, LOrd):- insertar(C, L, L1), ordenar(R, L1, LOrd).

insertar(E, [], [E]).
insertar(E, [C|R], [E|[C|R]]):- E =< C.
insertar(E, [C|R], [C|L]):- E > C, insertar(E, R, L).

**Adjunto va el planteamiento del trabajo y los siguientes dibujos son el laberinto y un ejemplo de como debe correr.  

1.

2.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.