Prolog - Ayuda en ejercicio prolog

 
Vista:
sin imagen de perfil

Ayuda en ejercicio prolog

Publicado por jorch (1 intervención) el 29/03/2017 09:37:25
Buenos días a todos,

Tengo un problema bastante grande con prolog ya que necesito hacer un ejercicio que no sé ni empezar.

¿Me podrían ayudar?

El ejercicio es el siguiente:

Los cuerpos de las serpientes están formados por anillos. En la víbora de Montegancedo estos anillos
siguen un patrón de color que se repite a lo largo del cuerpo. Si se representan los colores por letras, el
cuerpo de una víbora de Montegancedo con 15 anillos que siguen el patrón abcd tiene el aspecto de la
secuencia abcdabcdabcdabc.

Para dormir, la víbora de Montegancedo recoge el cuerpo en forma de rectángulo: estira el cuerpo
hacia la derecha hasta un punto en que se dobla y lo estira de nuevo hacia la izquierda, en paralelo a sí
misma, hasta llegar a la cabeza, se vuelve a doblar sobre sí misma y así sucesivamente. La víbora
anterior tendría el siguiente aspecto mientras duerme:
abcda
badcb
cdabc

La cabeza es siempre el primer anillo 'a', el cuerpo continua hacia la derecha hasta la siguiente 'a', se
dobla en la 'b' que hay debajo y continua hacia la izquierda. Y así sucesivamente.
Programar un predicado vibora/4 que se verifica cuando el cuarto argumento es el rectángulo que
forma una víbora para dormir; dicho rectángulo se representa con una lista de listas, cada una de las
cuales representa una fila del rectángulo con los colores de los anillos correspondientes. El primer
argumento (en forma de lista) es el patrón de color de la víbora; dicha víbora se recoge para dormir
formando filas con tantos anillos como elementos tiene la lista del segundo argumento y columnas con
tantos anillos como elementos tiene la lista del tercer argumento.
Por ejemplo, para el caso de la víbora mencionada más arriba, tendríamos:
?- vibora([a,b,c,d],[_,_,_,_,_],[_,_,_],R).
R = [[a,b,c,d,a],[b,a,d,c,b],[c,d,a,b,c]] ?

Nótese que el patrón de una fila (segundo argumento) indica cuántas columnas tiene el rectángulo y el
patrón de una columna (tercer argumento) indica el número de filas que tiene el rectángulo. Puesto que
no se especifica la longitud de la víbora, se supone que es igual al producto de las longitudes del
segundo y tercer argumentos, por lo que siempre se "rellena" todo el rectángulo.
El programa debe de ser puro, pero no se puede utilizar aritmética de Peano. Debe funcionar en
cualquier modo de llamada siempre que segundo y tercer argumentos sean listas completas no vacías,
es decir, con un número exacto de elementos distinto de cero. Los elementos de estas listas son
indiferentes. Por ejemplo, las llamadas "admisibles" pueden tener en dichos argumentos listas como
[_,_,_] o [a,a,a,a,a] o [0,X,a,p(b)] pero no [_|X] ni X si X es una variable libre. El programa puede no
funcionar correctamente con llamadas "no admisibles" como las mencionadas, pero debe hacerlo en
cualquier otro caso.



Perdón las molestias y muchas gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda en ejercicio prolog

Publicado por Anónimo - FI UPM (1 intervención) el 06/04/2017 13:11:06
Hmmmmmm... Vago.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en ejercicio prolog

Publicado por Miembro del equipo docente de la asignatura Programación De (1 intervención) el 06/04/2017 14:13:40
Podrías empezar por consultar las dudas a los profesores de la asignatura, que para eso están, en lugar de acudir a un foro para que alguien te saque las castañas del fuego...

Atentamente,

Un miembro del equipo docente de la asignatura "Programación Declarativa: Lógica y Restricciones"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en ejercicio prolog

Publicado por Juan (1 intervención) el 19/04/2017 18:03:52
Lo haríamos si tuvieran MÁS de una hora de tutoría a la semana y si no hubieran puesto poco tiempo con SEMANA SANTA de por medio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en ejercicio prolog

Publicado por La víbora que buscas (1 intervención) el 19/04/2017 00:01:35
Ssssss, hola:
Aquí tienes el código para encontrarme.
Recuerda que tienes para entregarlo hasta el viernes.
Ssssssssaludos.

1
2
3
%vibora/4
vibora(P, C, F, R) :-
write('Yo soy tu vibora, machote ;)\n').
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda en ejercicio prolog

Publicado por Tu vibora (1 intervención) el 19/04/2017 10:31:14
Soy tu vibora,
solo tienes que salir al campo a buscarme , suele estar cerca del lago , te ssssssspero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar