% fichas.in
%==============================================================================

%******************************************************************************
% Enunciado:
%******************************************************************************

%   Un puzzle tiene cuatro tipos distintos de fichas. Estas fichas son las
% siguientes: 

%   Utilizar \otter para encontrar todas las maneras posibles de colocar cuatro
% de estas fichas, no necesariamente distintas, en l�nea, de forma lo colores
% de los lados adyacentes coincidan.

%******************************************************************************
% Representaci�n:
%******************************************************************************

% Formalizaci�n:
% ficha(x,y,z) - La ficha x tiene a la izquierda el color y, y a la derecha el
%                color z.
% posicion(x1,x2,x3,x4) - Las fichas x1, x2, x3, x4 se pueden colocar en l�nea
%                         de forma que los colores de los lados adyacentes
%                         coinciden. 

set(auto2).

formula_list(sos).
 all x1 x2 x3 x4 y1 y2 y3 y4 y5
  ((ficha(x1,y1,y2) & ficha(x2,y2,y3) &
    ficha(x3,y3,y4) & ficha(x4,y4,y5)) -> posicion(x1,x2,x3,x4)).

 ficha(1,rojo,verde).
 ficha(2,verde,rojo).
 ficha(3,azul,verde).
 ficha(4,rojo,azul).

 all x1 x2 x3 x4 -posicion(x1,x2,x3,x4).
end_of_list.

%==============================================================================
