Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/04/2011, 08:30
Avatar de Patriarka
Patriarka
 
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 14 años
Puntos: 288
Respuesta: Problema sudoku PHP

te lo mando asi sacas lo que te sirve
Código Javascript:
Ver original
  1. <style>
  2.     .capa{
  3.       border: 1px solid black;
  4.       float: left;
  5.       width: 25px;
  6.       height: 25px;
  7.       margin: 3px;
  8.  
  9.     }
  10.     .capaPrincipal{
  11.       background:#0033FF ;
  12.       position: absolute;
  13.       top: 100px;
  14.       left: 200px;
  15.     }
  16.  
  17.  
  18. </style>
  19. <script>
  20. document.write('<div id="principal" class="capaPrincipal">');
  21.  
  22. var k=0;
  23. var plantilla = Math.floor(Math.random()*3);    //se multiplica por la cantidad de casos que voy a tenes//
  24.  
  25.  switch (plantilla){
  26.   case 1:
  27.   numero=new Array(5,8,1,6,2,7,3,4,9,
  28.                  2,1,3,4,9,6,8,7,5,
  29.                  9,4,5,7,8,1,6,3,2,
  30.                  6,3,2,8,4,9,5,1,7,
  31.                  7,9,4,3,1,5,2,6,8,
  32.                  1,5,6,9,7,8,4,2,3,
  33.                  4,7,8,1,3,2,9,5,6,
  34.                  3,2,9,5,6,4,7,8,1,
  35.                  8,6,7,2,5,3,1,9,4);
  36.   break;
  37.   case 2:
  38.  numero=new Array(5,8,1,6,2,7,3,4,9,
  39.                   4,7,8,1,3,2,9,5,6,
  40.                   1,5,6,9,7,8,4,2,3,
  41.                   9,4,5,7,8,1,6,3,2,
  42.                   3,2,9,5,6,4,7,8,1,
  43.                   6,3,2,8,4,9,5,1,7,
  44.                   7,9,4,3,1,5,2,6,8,
  45.                   2,1,3,4,9,6,8,7,5,
  46.                   8,6,7,2,5,3,1,9,4);
  47.   break;
  48.  
  49.   default:
  50.   numero=new Array(5,8,1,6,2,7,3,4,9,
  51.                  6,3,2,8,4,9,5,1,7,
  52.                  7,9,4,3,1,5,2,6,8,
  53.                  1,5,6,9,7,8,4,2,3,
  54.                  4,7,8,1,3,2,9,5,6,
  55.                  3,2,9,5,6,4,7,8,1,
  56.                  2,1,3,4,9,6,8,7,5,
  57.                  9,4,5,7,8,1,6,3,2,
  58.                  8,6,7,2,5,3,1,9,4);
  59.   break;
  60. }
  61.  
  62. for(var i=1;i<=9;i++) {
  63.     for(var j=1;j<=9;j++){
  64.  
  65.         var valor= numero[k];
  66. // esto me permite saltear la cantidad de casilleros para mostrar algunos ocultos, es decir, vacios //
  67.         valor = valor&#37;2 ? valor : "";
  68.  
  69.         document.write('<div class="capa" id="capa_'+j+'_'+i+'">');
  70.         document.write('<input onchange="return validar('+j+','+i+','+k+');" type="text" id="nro_'+j+'_'+i+'" size="1" maxlength="1" value="'+ valor + '" class="capa"  />');
  71.         document.write('</div>');
  72.  
  73.         k++;
  74.  
  75.     }
  76.     document.write('<div style="clear:both;"></div>');
  77. }
  78. document.write('</div>');
  79.  
  80. /*
  81. k es la posicion del array
  82. i son las filas
  83. j son las columnas
  84. */
  85. var cont=0;
  86. function validar(j,i,k){
  87. var input=document.getElementById("nro_"+j+"_"+i).value; //campo donde ingreso el valor y accedo//
  88.  
  89. if( input>0 && input<=9) {
  90.   if(input==numero[k]){
  91.     //alert(numero[k]);
  92.     cont++;
  93.     //alert(cont);
  94.     document.getElementById("nro_"+j+"_"+i).disabled=true;//una vez acertado el numero correcto, el disabled=true, desabilita el campo, es decir, no deja cambiarlo//
  95.     document.getElementById("capa_"+j+"_"+i).style.background="yellow";
  96.     if(cont==36)
  97.         alert("Sos un Genio Ganaste, preciona F5 para jugar de nuevo");
  98.  
  99.   }
  100.   else{
  101.     alert("ingrese otro valor");
  102.     document.getElementById("nro_"+j+"_"+i).value="";//asigna valo vacio al campo//
  103.     document.getElementById("nro_"+j+"_"+i).focus();//en caso que se ingrese algo no deseable, me asigna la misma celda//
  104.   }
  105. }
  106. else{
  107.     alert("Ingrese un numero del 1 al 9")
  108.     document.getElementById("nro_"+j+"_"+i).value="";//asigna valor vacio al campo//
  109.     document.getElementById("nro_"+j+"_"+i).focus();//en caso que se ingrese algo no deseable, me asigna la misma celda//
  110. }
  111. //alert(input);
  112.  
  113. }
  114.  
  115.  
  116.  
  117.  
  118. </script>