• Domingo 22 de Diciembre de 2024, 12:31

Autor Tema:  Sudoku  (Leído 2663 veces)

Max_D

  • Miembro MUY activo
  • ***
  • Mensajes: 117
    • Ver Perfil
    • http://sitioteca.spaces.live.com/
Sudoku
« en: Martes 5 de Diciembre de 2006, 19:42 »
0
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
  1. diferente(_,[]).
  2. diferente(E,[C|R]) :- E \= C, diferente(E,R).
  3.  
  4. minisudoku([A11,A12,B11,B12,A21,A22,B21,B22,C11,C12,D11,D12,C21,C22,D21,D22]) :-
  5. member(A11,[1,2,3,4]), member(A12,[1,2,3,4]), member(B11,[1,2,3,4]), member(B12,[1,2,3,4]),
  6. member(A21,[1,2,3,4]), member(A22,[1,2,3,4]), member(B21,[1,2,3,4]), member(B22,[1,2,3,4]),
  7. member(C11,[1,2,3,4]), member(C12,[1,2,3,4]), member(D11,[1,2,3,4]), member(D12,[1,2,3,4]),
  8. member(C21,[1,2,3,4]), member(C22,[1,2,3,4]), member(D21,[1,2,3,4]), member(D22,[1,2,3,4]),
  9. diferente(A11,[A12,B11,B12]), diferente(A11,[A21,C11,C21]), diferente(A11,[A12,A21,A22]),
  10. diferente(A12,[A11,B11,B12]), diferente(A12,[A22,C12,C22]), diferente(A12,[A11,A21,A22]),
  11. diferente(B11,[A11,A12,B12]), diferente(B11,[B21,D11,D21]), diferente(B11,[B12,B21,B22]),
  12. diferente(B12,[A11,A12,B11]), diferente(B12,[B22,D12,D22]), diferente(B12,[B11,B21,B22]),
  13. diferente(A21,[A22,B21,B22]), diferente(A21,[A11,C11,C21]), diferente(A21,[A11,A12,A22]),
  14. diferente(A22,[A21,B21,B22]), diferente(A22,[A12,C12,C22]), diferente(A22,[A11,A12,A21]),
  15. diferente(B21,[A21,A22,B22]), diferente(B21,[B11,D11,D21]), diferente(B21,[B11,B12,B22]),
  16. diferente(B22,[A21,A22,B21]), diferente(B22,[B12,D12,D22]), diferente(B22,[B11,B12,B21]),
  17. diferente(C11,[C12,D11,D12]), diferente(C11,[A11,A21,C21]), diferente(C11,[C12,C21,C22]),
  18. diferente(C12,[C11,D11,D12]), diferente(C12,[A12,A22,C22]), diferente(C12,[C11,C21,C22]),
  19. diferente(D11,[C11,C12,D12]), diferente(D11,[B11,B21,D21]), diferente(D11,[D12,D21,D22]),
  20. diferente(D12,[C11,C12,D11]), diferente(D12,[B12,B22,D22]), diferente(D12,[D11,D21,D22]),
  21. diferente(C21,[C22,D21,D22]), diferente(C21,[A11,A21,C11]), diferente(C21,[C11,C12,C22]),
  22. diferente(C22,[C21,D21,D22]), diferente(C22,[A12,A22,C12]), diferente(C22,[C11,C12,C21]),
  23. diferente(D21,[C21,C22,D22]), diferente(D21,[B12,B22,D12]), diferente(D21,[D11,D12,D21]),
  24. diferente(D22,[C21,C22,D21]), diferente(D22,[B12,B22,D12]), diferente(D22,[D11,D12,D21]).
  25.  

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Sudoku
« Respuesta #1 en: Martes 12 de Diciembre de 2006, 01:39 »
0
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
  1. use Quantum::Superposition;
  2. $a = any(1, 2, 3);
  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:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.