Programación Específica > Inteligencia Artificial
Sudoku
(1/1)
Max_D:
Hola, estoy intentando hacer un codigo que resuelva un sudoku 4x4 (el mas sencillo para empezar) y tengo algo escrito, mas bien el primer intento, se que hay cosas mal como que si una variable no esta instanciada no puede permanecer a la lista [1,2,3,4] pero no se por donde seguir. Si alguien tiene alguna idea me seria de gran ayuda, muchas gracias.
--- Código: Text ---diferente(_,[]).diferente(E,[C|R]) :- E \= C, diferente(E,R). minisudoku([A11,A12,B11,B12,A21,A22,B21,B22,C11,C12,D11,D12,C21,C22,D21,D22]) :-member(A11,[1,2,3,4]), member(A12,[1,2,3,4]), member(B11,[1,2,3,4]), member(B12,[1,2,3,4]),member(A21,[1,2,3,4]), member(A22,[1,2,3,4]), member(B21,[1,2,3,4]), member(B22,[1,2,3,4]),member(C11,[1,2,3,4]), member(C12,[1,2,3,4]), member(D11,[1,2,3,4]), member(D12,[1,2,3,4]),member(C21,[1,2,3,4]), member(C22,[1,2,3,4]), member(D21,[1,2,3,4]), member(D22,[1,2,3,4]),diferente(A11,[A12,B11,B12]), diferente(A11,[A21,C11,C21]), diferente(A11,[A12,A21,A22]),diferente(A12,[A11,B11,B12]), diferente(A12,[A22,C12,C22]), diferente(A12,[A11,A21,A22]),diferente(B11,[A11,A12,B12]), diferente(B11,[B21,D11,D21]), diferente(B11,[B12,B21,B22]),diferente(B12,[A11,A12,B11]), diferente(B12,[B22,D12,D22]), diferente(B12,[B11,B21,B22]),diferente(A21,[A22,B21,B22]), diferente(A21,[A11,C11,C21]), diferente(A21,[A11,A12,A22]),diferente(A22,[A21,B21,B22]), diferente(A22,[A12,C12,C22]), diferente(A22,[A11,A12,A21]),diferente(B21,[A21,A22,B22]), diferente(B21,[B11,D11,D21]), diferente(B21,[B11,B12,B22]),diferente(B22,[A21,A22,B21]), diferente(B22,[B12,D12,D22]), diferente(B22,[B11,B12,B21]),diferente(C11,[C12,D11,D12]), diferente(C11,[A11,A21,C21]), diferente(C11,[C12,C21,C22]),diferente(C12,[C11,D11,D12]), diferente(C12,[A12,A22,C22]), diferente(C12,[C11,C21,C22]),diferente(D11,[C11,C12,D12]), diferente(D11,[B11,B21,D21]), diferente(D11,[D12,D21,D22]),diferente(D12,[C11,C12,D11]), diferente(D12,[B12,B22,D22]), diferente(D12,[D11,D21,D22]),diferente(C21,[C22,D21,D22]), diferente(C21,[A11,A21,C11]), diferente(C21,[C11,C12,C22]),diferente(C22,[C21,D21,D22]), diferente(C22,[A12,A22,C12]), diferente(C22,[C11,C12,C21]),diferente(D21,[C21,C22,D22]), diferente(D21,[B12,B22,D12]), diferente(D21,[D11,D12,D21]),diferente(D22,[C21,C22,D21]), diferente(D22,[B12,B22,D12]), diferente(D22,[D11,D12,D21]).
su -:
Hay una cosa llamada Quantum Superposition que permite tener multiples valores en un string, array, hash o cualquier cosa que pueda, por ejejmplo:
--- Código: Text ---use Quantum::Superposition;$a = any(1, 2, 3); en este caso $a seria 1, 2 o 3 segun el observador (Bueno, esto es en Perl) y este sistema es ideal para crear filtrados y todo este tipo de cosas de una forma rapida.
:smartass:
Navegación
Ir a la versión completa