/*
  vence(A,B)

  Predicado que comprueba A vence a B

   Argumentos
  + A:
    - Significado: nombre
    - Tipo: entrada y salida
 
  + B:
    - Significado: nombre
    - Tipo: entrada y salida
*/
vence(luis,diego).
vence(ana,luis).
vence(ana,diego).

/*
  clase(P, C)

  Se determina la clase C de una persona P
     luchador: gana y pierde
     ganador: siempre gana, es decir, gana y no pierde
     deportista: siempre pierde, es decir, pierde y no gana.

  Nota: se utiliza la negación not


   Argumentos
  + P:
    - Significado: nombre de persona
    - Tipo: entrada y salida

  + C:
    - Significado: clase  {luchador, ganador, deportista}
    - Tipo: entrada y salida

  Predicado relacionado
  vence 
 */

clase(P,luchador):-
		vence(P,_),
		vence(_,P).
		
clase(P,ganador):-
		vence(P,_),
		not(vence(_,P)).
		
clase(P,deportista):-
		vence(_,P),
		not(vence(P,_)).
		
	

/*
  clase_bis(P, C)

  Se determina la clase C de una persona P
     luchador: gana y pierde
     ganador: siempre gana, es decir, gana y no pierde
     deportista: siempre pierde, es decir, pierde y no gana.

  Nota: se utiliza el corte "!"


   Argumentos
  + P:
    - Significado: nombre de persona
    - Tipo: entrada y salida

  + C:
    - Significado: clase  {luchador, ganador, deportista}
    - Tipo: entrada y salida

  Predicado relacionado
  vence 
 */
	
/*
 * Segunda versión: se utiliza el corte
 *
 */
		
clase_bis(P,luchador):-
		vence(P,_),
		vence(_,P),
		!.
		

clase_bis(P,ganador):-
		vence(P,_),
		!.
		
clase_bis(P,deportista):-
		vence(_,P),
		!.
