UTNianos

Versión completa: [Pedido] Ejercicio de Lógico (Guía 4-7)
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola http://www.utenianos.com.ar/foro/images/...CWZHmp.png

que tal?? Tengo un tema con los ejer del TP de este año ...

es de la guía 4 ejer 7

Ejercicio 7 – TEG

En vista de que gran parte de las personas (chicos y grandes) abandonan los juegos clasicos por modernos
juegos de PC, la jugueteria de Lanus Quindimil SRL, decide llevar su negocio al terreno digital para poder
competir con las nuevas formas de espoarcimiento.
Asi es como se comunican con nosotros solicitandonos que realicemos el desarrollo de ciertas consultas para un
tablero de TEG, que se realizan cada cierto tiempo.
Cada vez que se realizan las consultas, vamos a contar con ciertos hechos como los que ejemplificamos a
continuación.


/* distintos paises */
paisContinente(americaDelSur, argentina).
paisContinente(americaDelSur, bolivia).
paisContinente(americaDelSur, brasil).
paisContinente(americaDelSur, chile).
paisContinente(americaDelSur, ecuador).
paisContinente(europa, alemania).
paisContinente(europa, españa).
paisContinente(europa, francia).
paisContinente(europa, inglaterra).
paisContinente(asia, aral).
paisContinente(asia, china).
paisContinente(asia, gobi).
paisContinente(asia, india).
paisContinente(asia, iran).
/*países importantes*/
paisImportante(argentina).
paisImportante(kamchatka).
paisImportante(alemania).
/*países limítrofes*/
limitrofes([argentina,brasil]).
limitrofes([bolivia,brasil]).
limitrofes([bolivia,argentina]).
limitrofes([argentina,chile]).
limitrofes([espana,francia]).
limitrofes([alemania,francia]).
limitrofes([nepal,india]).
limitrofes([china,india]).
limitrofes([nepal,china]).
limitrofes([afganistan,china]).
limitrofes([iran,afganistan]).
/*distribucion en el tablero */
ocupa(argentina, azul, 4).
ocupa(bolivia, rojo, 1).
ocupa(brasil, verde, 4).
ocupa(chile, negro, 3).
ocupa(ecuador, rojo, 2).
ocupa(alemania, azul, 3).
ocupa(españa, azul, 1).
ocupa(francia, azul, 1).
ocupa(inglaterra, azul, 2). PdeP Paradigma Lógico – guías 2008
Práctica nro 4. Functores, generación. Versión 1.5 Página 9 de 10
ocupa(aral, negro, 2).
ocupa(china, verde, 1).
ocupa(gobi, verde, 2).
ocupa(india, rojo, 3).
ocupa(iran, verde, 1).
/*continentes*/
continente(americaDelSur).
continente(europa).
continente(asia).
/*objetivos*/
objetivo(rojo, ocuparContinente(asia)).
objetivo(azul, ocuparPaises([argentina, bolivia, francia, inglaterra, china])).
objetivo(verde, destruirJugador(rojo)).
objetivo(negro, ocuparContinente(europa)).



Se solicita construir un programa que permita la resolución de las siquientes consultas.
Todos los predicados deben ser inversibles, salvo aclaración explícita en contrario.


1) estaEnContinente/2: Relaciona un jugador y un continente si el jugador ocupa al menos un país en el
continente.
2) cantidadPaises/2: Relaciona a un jugador con la cantidad de paises que ocupa.
3) ocupaContinente/2: Relaciona un jugador y un continente si el jugador ocupa totalmente al continente.
4) leFaltaMucho/2: Relaciona a un jugador y un continente si al jugador le falta ocupar más de 2 países de
dicho continente.
5) sonLimitrofes/2: Relaciona 2 países si son limítrofes.
6) esGroso/1: Un jugador es groso si cumple algunas de estas condiciones:
 ocupa todos los paises importantes,
 ocupa mas de 10 paises
 o tiene mas de 50 ejercitos.
7) estaEnElHorno/1: un pais esta en el horno si todos sus paises limitrofes estan ocupados por el mismo
jugador que no es el mismo que ocupa ese pais.
8) esCaotico/1: un continente es caotico si hay mas de tres jugadores en el.
9) capoCannoniere/1: es el jugador que tiene ocupado mas paises.
10) ganadooor/1: un jugador es ganador si logro su objetivo

Mi tema es con el punto 6 Groso/1 , en la parte ocupa todos los paises importantes, nose como resolverlo Confused
calculo que seria algo asi

groso(Color):= forall(paisImportante(Pais), ocupa(Pais,Color,_)).
Saludos
Ya lo resolvi jajaj se los paso por las dudas que lo quieran


esGroso(Jugador):-findall(PaisImp,paisImportante(PaisImp),Paises),ocupaPaisImp(Jugador,Paises).
ocupaPaisImp(Jugador,[X]):-ocupa(X,Jugador,_).
ocupaPaisImp(Jugador,[X|Xs]):-ocupa(X,Jugador,_),ocupaPaisImp(Jugador,Xs).

esGroso(Jugador):-cantidadPaises(Jugador,CantPaisesOcu)>10.
esGroso(Jugador):-findall(Ejercito,ocupa(_,Jugador,Ejercito),Ejercitos),sumlist(Ejercitos,Cant),Cant>50.

Aprovecho el thread si se puede =)

Estoy teniendo problemas con el punto 9!

esta bien esto?


capoCannoniere(X):-
findall(
(Cantidad,Jugador),
(ocupa(_,Jugador,_),
cantidadPaises(Jugador,Cantidad)),
Jugadores),
sort(Jugadores,JugadoresS),
length(JugadoresS, Largo),
nth1(Largo,JugadoresS,(_,X)).


Shiny Shoes, al final te salio ese punto? me tiene loco es el unico que me falta del tp y no se como hacerloooo.
URLs de referencia