Sudoku
Publicado por Alexander (3 intervenciones) el 17/11/2007 01:20:10
Tengo el siguiente codigo en prolog para el sudoku pero no logro hacerlo funcionar:
vlis:- A is 1;
vlis:- B is 2;
vlis:- C is 3;
vlis:- D is 4;
sudo(X):- X is([[C11,3,C13,4],
[4,C22,C23,1],
[3,C32,1,C34],
[C41,1,C43,3]]).
listS([A,B,C,D]):- vlis(A),
vlis(B),
vlis(C),
vlis(D),
A\=B,
A\=C,
A\=D,
B\=C,
B\=D,
C\=D.
sudoku(X):-listS(C11,C12,C13,C14),
listS(C21,C22,C23,C24),
listS(C31,C32,C33,C34),
listS(C41,C42,C43,C44),
listS(C11,C21,C31,C41),
listS(C12,C22,C32,C42),
listS(C13,C23,C33,C43),
listS(C14,C24,C34,C44),
listS(C11,c12,C21,C22),
listS(C13,C14,C23,C24),
listS(C31,C32,C41,C42),
listS(C33,C34,C43,C44).
Se que asi por ese estilo puede funcionar, sinembargo tengo problemas con los comandos de este lenguaje, si alguno de ustedes puede indicarme como mejorarlo para que me funcione les Agradeceria mucho.
vlis:- A is 1;
vlis:- B is 2;
vlis:- C is 3;
vlis:- D is 4;
sudo(X):- X is([[C11,3,C13,4],
[4,C22,C23,1],
[3,C32,1,C34],
[C41,1,C43,3]]).
listS([A,B,C,D]):- vlis(A),
vlis(B),
vlis(C),
vlis(D),
A\=B,
A\=C,
A\=D,
B\=C,
B\=D,
C\=D.
sudoku(X):-listS(C11,C12,C13,C14),
listS(C21,C22,C23,C24),
listS(C31,C32,C33,C34),
listS(C41,C42,C43,C44),
listS(C11,C21,C31,C41),
listS(C12,C22,C32,C42),
listS(C13,C23,C33,C43),
listS(C14,C24,C34,C44),
listS(C11,c12,C21,C22),
listS(C13,C14,C23,C24),
listS(C31,C32,C41,C42),
listS(C33,C34,C43,C44).
Se que asi por ese estilo puede funcionar, sinembargo tengo problemas con los comandos de este lenguaje, si alguno de ustedes puede indicarme como mejorarlo para que me funcione les Agradeceria mucho.
Valora esta pregunta


0