zpm_josue.pro



% == Espinosa Romero Josue ==
cvalida(zorro,maiz).
cvalida(maiz,zorro).

esvalido([_,_,_|[]]):- !.
esvalido([D1,D2|[]]):- cvalida(D1,D2), !.
esvalido([_|[]]).
esvalido([]).

saca([D|T], D, T):- esvalido(T).
saca([D1,D2,D3|[]], D4, TN):- saca([D2, D3, D1], D4, TN), !.
saca([D1,D2|[]], D2, [D1]):- !.

mete(D, [DA1,DA2|[]], [], [DA1,DA2,D]):- !.
mete(D, [DA|[]], D2, [DA,D]):- esvalido([DA,D]), D2 = [], !.
mete(D, [DN|[]], DN, [D]).
mete(D, [], [], [D]).

mete([], T, T).
mete(D1, [D2|[]], [D2,D1]):-!.
mete(D1, [], D1).

imprime([], _).
imprime(_, []):- writeln('Regresa').
imprime(_, D2):- write('Regresa al '), writeln(D2).

lleva([], DN, DN):- esvalido(DN), !.
lleva(LI, LD, LDN):-
    saca(LI, D1, LIN),
    write('Pasa al otro lado al '), writeln(D1),
    mete(D1,LD,D2,LDN1),
    mete(D2,LIN,LIN2),
    imprime(LIN2,D2),
    lleva(LIN2,LDN1,LDN), !.

inicio(IZQ):-
    lleva(IZQ, [], DCH),
    writeln(DCH).