• Jueves 2 de Mayo de 2024, 00:48

Autor Tema:  Explicacion De Codigo  (Leído 2280 veces)

tdhde

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Explicacion De Codigo
« en: Lunes 4 de Julio de 2005, 05:32 »
0
Bueno sigue siendo relevante al tema de laberintos, sin embargo logre hacer mi programa.  Ahora el reto es que nos dieron un codigo de un laberinto ya hecho, lo que hay que hacer es lograr entender como funciona cada codigo, quisiera saber si me puede dar una mano con 2 funciones del codigo, logre decifrar el funcionamiento de las otras sin embargo me he quedado un poco confundido con las siguientes:

%COMANDO DONDE_PUEDO_IR Y SUS SUB COMANDOS.
donde_puedo_ir([X|Z]):- setof(Y,conectado(X,Y),R), writeln(' '), write('Puede ir a: '),
                        opciones_a_ir®, nl, writeln(' '), comando([X|Z]).

Mi duda en esa porcion de codigo es para que sirve el comando "setof"..trate de buscarlo en la ayuda de prolog pero no logre encontrarlo, talvez lo pase por alto.

%COMANDO IR_AL Y SU SUB COMANDOS
ir_al([X|Z]):- write('¿Adonde desea ir?:'),read®, movimiento_a(R,Y,[X|Z]), juego_terminado(Y,W),
          comando(W).

%Validacion para movimiento que no esta en lista ni conectado.
movimiento_a(R,[X|Z],[X|Z]):- not(is_list®), not(conectado(R,X)), writeln('Movimiento invalido').

movimiento_a(R,[R|[X|Z]],[X|Z]):- not(is_list®), conectado(R,X), writeln('Movimiento realizado').

movimiento_a(R,[X|Z],[X|Z]):- is_list®,not(movimiento_a1(X,R)), writeln('Movimiento invalido').

movimiento_a(R,Y,[X|Z]):- is_list®, movimiento_a1(X,R), movimiento_a2(R,Y,[X|Z]),
                     writeln('Movimiento realizado').

movimiento_a1(X,[X1|Z]):- conectado(X,X1), movimiento_a1(X1,Z).

movimiento_a1(_,[]).   

movimiento_a2([XR|ZR],Y,A):- movimiento_a2(ZR,Y,[XR|A]).

movimiento_a2([],Y,Y).

Y de ahi esta esa funcion que con tanta lista y cabeza y resto que me queda me quede corto, y siempre logro confundirme y pierdo la nocion de como sigue el codigo.  Gracias de antemano.





tdhde

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Explicacion De Codigo
« Respuesta #1 en: Martes 5 de Julio de 2005, 06:28 »
0
ya no importa, logre decifrar jejeje...no me fijaba en el resto de la lista y por eso me perdia...