UTNianos

Versión completa: Ayuda Ultimo TP Logico
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenos dias! Me vengo quemando el bocho hace un par de dias y ya estuve preguntandole a los ayudantes como hacer las cosas, pero supongo que mas no me pueden decir tampoco.

El tp dice asi:

Trabajo práctico - Paradigma Lógico [inversibilidad, not, listas, orden superior]
" Sooooomos los piratas "


Enunciado:

El capitán Barbazul tiene muchos tripulantes posibles para partir en su barco pirata y nos pidió que lo ayudáramos para ver las posibles tripulaciones que podría llevar. Se conocen los siguientes posibles tripulantes, modelados en base a los siguientes hechos:

mujer(betina, rubia).
mujer(laura, morocha).
mujer(carola, rubia).
bonita(laura).
bonita(betina).
cocinera(laura).
pirata(felipe, 27). /*nombre, edad*/
pirata(marcos, 39).
pirata(facundo, 45).
pirata(tomas, 20).
pirata(gonzalo, 22).
bravo(tomas).
bravo(felipe).
bravo(marcos).

La primera premisa que tiene el capitán es que la ferocidad total de sus tripulantes sea de al menos 10, sabiendo que:

Las mujeres no cocineras tienen una ferocidad de 2.
Las mujeres cocineras tienen una ferocidad de 4 (porque manejan cuchillos).
Las mujeres rubias suman 1 a su ferocidad.
Los piratas bravos tienen una ferocidad de 5.
Los piratas cobardes, que son aquellos que no son bravos, tienen una ferocidad de 0.

Sólo puede haber mujeres o piratas: los hombres comunes no son del interés del capitán. Pero no es sólo lo anterior lo que se requiere, ya que a Barbazul solo le interesan las mujeres bonitas o cocineras, los piratas bravos y los piratas de más de 40 años.

1. ¿Cual es la tripulación del capitán Barbazul? tripulacionBarbazul/1.

2. Calcular la ferocidad promedio de la tripulación de un barco. ferocidadPromedio/2.

3. Usando los dos predicados anteriores, averiguar si el barco de Barbazul es temible. Un barco es temible cuando su tripulación tiene una ferocidad promedio es mayor a 3.

4. ¿Es cierto que todas las mujeres bonitas son rubias? ¿Y que son todas morochas? ¿Existe algun color de pelo el cual tengan todas las mujeres bonitas?.

Desarrollar un predicado que permita sacarnos estas dudas.

--------------------------------------------------------------------------------------------------------------------------

En principio no me parecio muy dificil, yo tengo hecho esto:

% 1)
% Encuentra a todas las personas que pueden ser tripulantes y las vincula a una lista de "Tripulantes", ademas, la ferocidad total de los mismos debe ser como minimo 10.

tripulacionBarbazul(Tripulantes):-
findall(Persona,esTripulante(Persona),Tripulantes),
ferocidadTotal(Tripulantes,Total),Total >= 10.

% Necesitamos obtener una lista con la ferocidad de cada tripulante, y luego sumar esos valores para obtener el total.
ferocidadTotal(FerocidadTripulantes,Total):-
findall(Ferocidad,ferocidad(_,Ferocidad),FerocidadTripulantes),
sumlist(FerocidadTripulantes,Total).

% 3)
esTemible(Tripulación) :- ferocidadPromedio(Tripulación,Promedio),Promedio>3.


% A Barbaazul solo le interesan las mujeres que son bonitas o cocineras
esTripulante(Persona):- mujer(Persona,_),bonita(Persona).
esTripulante(Persona):- mujer(Persona,_),cocinera(Persona).

% Tambien los piratas bravos o de mas de 40 años
esTripulante(Persona):- pirata(Persona,_),bravo(Persona).
esTripulante(Persona):- pirata(Persona,Edad),Edad > 40.

% La ferocidad de un tripulante esta dada por los siguientes casos:
ferocidad(Persona,2):- mujer(Persona,_),(not(cocinera(Persona))).
ferocidad(Persona,4):- mujer(Persona,_),cocinera(Persona).
%ferocidad(Persona,Ferocidad):- mujer(Persona,rubia), Ferocidad is Ferocidad + 1. (ESTO LO COMENTE PORQUE NO SE COMO PUEDO SUMAR 1 A LA FEROCIDAD DE UNA MUJER RUBIA, tengo entendido que no existe acumulacion en logico).
ferocidad(Persona,5):- pirata(Persona,_),bravo(Persona).
ferocidad(Persona,0):- pirata(Persona,_),(not(bravo(Persona))).


Mi problema es que no me anda y nose porque!!!! Capaz encare mal el enunciado o tengo algun error grosero que no veo, si alguno ya lo hizo y me quiere dar una mano se lo agradezco mucho!
URLs de referencia