ayudame por favor
ayudame por favor no entiendo prolog y tengo que hacer este ejercicio. mil gracias
LÍQUIDOS VENENOSOS
El Sr. Despistado, el químico, tiene seis frascos llenos de líquidos coloreados Hay uno de cada color: rojo, anaranjado, amarillo, verde, azul y violeta. El señor Despistado sabe que algunos de esos líquidos son tóxicos, pero no recuerda cuales..
Sin embargo, sı recuerda algunos datos. En cada uno de los siguientes pares de frascos hay uno con veneno y otro no:
a) los frascos violeta y azul
b) los frascos rojo y amarillo
c) los frascos azul y anaranjado
El Sr. Despistado recuerda también que en estos otros pares de frascos hay uno sin veneno:
d) el violeta y el amarillo
e) el rojo y el anaranjado
f) el verde y el azul
¡Ah! Casi lo olvido, añade el Sr. Despistado, el lıquido del frasco rojo no es venenoso. ¿Que frascos tienen veneno?
LÍQUIDOS VENENOSOS
El Sr. Despistado, el químico, tiene seis frascos llenos de líquidos coloreados Hay uno de cada color: rojo, anaranjado, amarillo, verde, azul y violeta. El señor Despistado sabe que algunos de esos líquidos son tóxicos, pero no recuerda cuales..
Sin embargo, sı recuerda algunos datos. En cada uno de los siguientes pares de frascos hay uno con veneno y otro no:
a) los frascos violeta y azul
b) los frascos rojo y amarillo
c) los frascos azul y anaranjado
El Sr. Despistado recuerda también que en estos otros pares de frascos hay uno sin veneno:
d) el violeta y el amarillo
e) el rojo y el anaranjado
f) el verde y el azul
¡Ah! Casi lo olvido, añade el Sr. Despistado, el lıquido del frasco rojo no es venenoso. ¿Que frascos tienen veneno?
resolver:-
assert (no_venenoso (rojo)),
assert (venenoso (x):-fail),
assert (no_venenoso (x):- fail),
assert (visitada_regla (x):- fail),
procesar.
no (x):-
x,
!,
fail
no (x)
% 2-. Con veneno uno sí otro no:
% a) los frascos violeta y azul
% b) los frascos rojo y amarillo
% c) los frascos azul y anaranjado
% Regla 1
procesar:-
venenoso (violeta),
no (visitada_regla (1)),
assert (no_venenoso (azul)),
assert (visitada_regla (1)),
procesar.
procesar:-
no_venenoso (violeta),
no (visitada_regla (1)),
assert (venenoso (azul)),
assert (visitada_regla (1)),
procesar.
procesar:-
venenoso (azul),
no (visitada_regla (1)),
assert (no_venenoso (violeta)),
assert (visitada_regla (1)),
procesar.
procesar:-
no_venenoso (azul),
no (visitada_regla (1)),
assert (venenoso (violeta)),
assert (visitada_regla (1)),
procesar.
% Regla 2
procesar:-
venenoso (rojo),
no (visitada_regla (2)),
assert (no_venenoso (amarillo)),
assert (visitada_regla (5)),
procesar.
procesar:-
no_venenoso (rojo),
no (visitada_regla (2)),
assert (venenoso (amarillo)),
assert (visitada_regla (2)),
procesar.
procesar:-
venenoso (amarillo),
no (visitada_regla (2)),
assert (no_venenoso (rojo)),
assert (visitada_regla (2)),
procesar.
procesar:-
no_venenoso (amarillo),
no (visitada_regla (2)),
assert (no_venenoso (rojo)),
assert (visitada_regla (2)),
procesar.
% Regla 3
procesar:-
venenoso (azul),
no (visitada_regla (3)),
assert (no_venenoso (anaranjado)),
assert (visitada_regla (3)),
procesar.
procesar:-
no_venenoso (azul),
no (visitada_regla (3)),
assert (venenoso (anaranjado)),
assert (visitada_regla (3)),
procesar.
procesar:-
venenoso (anaranjado),
no (visitada_regla (3)),
assert (no_venenoso (azul)),
assert (visitada_regla (3)),
procesar.
procesar:-
no_venenoso (anaranjado),
no (visitada_regla (3)),
assert (venenoso (azul)),
assert (visitada_regla (3)),
procesar.
% 3-. Uno del par no tiene veneno
% d) El violeta y el amarillo
% e) El rojo y el anaranjado
% f) El verde y el azul
%regla 4
procesar:-
venenoso (violeta),
no (visitada_regla (4)),
assert (no_venenoso (amarillo)),
assert (visitada_regla (4)),
procesar.
procesar:-
venenoso (amarillo),
no (visitada_regla (5)),
assert (no_venenoso (violeta)),
assert (visitada_regla (5)),
procesar.
%regla 5
procesar:-
venenoso (rojo),
no (visitada_regla (6)),
assert (no_venenoso (anaranjado)),
assert (visitada_regla (6)),
procesar.
procesar:-
venenoso (anaranjado),
no (visitada_regla (5)),
assert (no_venenoso (rojo)),
assert (visitada_regla (5)),
procesar.
%regla 6
procesar:-
venenoso (verde),
no (visitada_regla (6)),
assert (no_venenoso (azul)),
assert (visitada_regla (6)),
procesar.
procesar:-
venenoso (azul),
no (visitada_regla (6)),
assert (no_venenoso (verde)),
assert (visitada_regla (6)),
procesar.
procesar:-
write (fin del proceso).
assert (no_venenoso (rojo)),
assert (venenoso (x):-fail),
assert (no_venenoso (x):- fail),
assert (visitada_regla (x):- fail),
procesar.
no (x):-
x,
!,
fail
no (x)
% 2-. Con veneno uno sí otro no:
% a) los frascos violeta y azul
% b) los frascos rojo y amarillo
% c) los frascos azul y anaranjado
% Regla 1
procesar:-
venenoso (violeta),
no (visitada_regla (1)),
assert (no_venenoso (azul)),
assert (visitada_regla (1)),
procesar.
procesar:-
no_venenoso (violeta),
no (visitada_regla (1)),
assert (venenoso (azul)),
assert (visitada_regla (1)),
procesar.
procesar:-
venenoso (azul),
no (visitada_regla (1)),
assert (no_venenoso (violeta)),
assert (visitada_regla (1)),
procesar.
procesar:-
no_venenoso (azul),
no (visitada_regla (1)),
assert (venenoso (violeta)),
assert (visitada_regla (1)),
procesar.
% Regla 2
procesar:-
venenoso (rojo),
no (visitada_regla (2)),
assert (no_venenoso (amarillo)),
assert (visitada_regla (5)),
procesar.
procesar:-
no_venenoso (rojo),
no (visitada_regla (2)),
assert (venenoso (amarillo)),
assert (visitada_regla (2)),
procesar.
procesar:-
venenoso (amarillo),
no (visitada_regla (2)),
assert (no_venenoso (rojo)),
assert (visitada_regla (2)),
procesar.
procesar:-
no_venenoso (amarillo),
no (visitada_regla (2)),
assert (no_venenoso (rojo)),
assert (visitada_regla (2)),
procesar.
% Regla 3
procesar:-
venenoso (azul),
no (visitada_regla (3)),
assert (no_venenoso (anaranjado)),
assert (visitada_regla (3)),
procesar.
procesar:-
no_venenoso (azul),
no (visitada_regla (3)),
assert (venenoso (anaranjado)),
assert (visitada_regla (3)),
procesar.
procesar:-
venenoso (anaranjado),
no (visitada_regla (3)),
assert (no_venenoso (azul)),
assert (visitada_regla (3)),
procesar.
procesar:-
no_venenoso (anaranjado),
no (visitada_regla (3)),
assert (venenoso (azul)),
assert (visitada_regla (3)),
procesar.
% 3-. Uno del par no tiene veneno
% d) El violeta y el amarillo
% e) El rojo y el anaranjado
% f) El verde y el azul
%regla 4
procesar:-
venenoso (violeta),
no (visitada_regla (4)),
assert (no_venenoso (amarillo)),
assert (visitada_regla (4)),
procesar.
procesar:-
venenoso (amarillo),
no (visitada_regla (5)),
assert (no_venenoso (violeta)),
assert (visitada_regla (5)),
procesar.
%regla 5
procesar:-
venenoso (rojo),
no (visitada_regla (6)),
assert (no_venenoso (anaranjado)),
assert (visitada_regla (6)),
procesar.
procesar:-
venenoso (anaranjado),
no (visitada_regla (5)),
assert (no_venenoso (rojo)),
assert (visitada_regla (5)),
procesar.
%regla 6
procesar:-
venenoso (verde),
no (visitada_regla (6)),
assert (no_venenoso (azul)),
assert (visitada_regla (6)),
procesar.
procesar:-
venenoso (azul),
no (visitada_regla (6)),
assert (no_venenoso (verde)),
assert (visitada_regla (6)),
procesar.
procesar:-
write (fin del proceso).