Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2012, 13:23
moro666
 
Fecha de Ingreso: mayo-2011
Mensajes: 214
Antigüedad: 13 años
Puntos: 16
Pregunta alguien sabe descifrar codigo javascript?

Soy un poco principiante con eso del javascript, aunque no se aleja mucho de php, pero me duele la cabeza con tansolo ver un codigo en javascript. Me ayudaria mucho que alguien me pudiera explicar un poco el que dejo mas abajo. Se de que sirve, crea sudokus, pero me pierso muy al principio. Gracias!

Código:
var sud=new Array(9);
for(var i = 0; i < 9; i++){
	sud[i] = new Array(9);	
}
var aux=new Array(9);
for(var i = 0; i < 9; i++){
	aux[i] = new Array(9);	
}
function generarSudoku(){
	for(var i = 0; i < 9; i++){
		for(var j = 0; j < 9; j++){
			if(Math.random()*10 > 5){ // Si cambias el 5 es decir lo incrementas es mas dificil y si lo disminuyes mas f??cil
				rellenarCelda(i , j);
			}else{
				sud[i][j] = "0";
			}
		}
	}
	for(var i = 0; i < 9; i++){
		switch(i){
			case 0: case 3: case 6:
				var cas = 0;
				var k = 0;
				var i2 = i;
				while(cas < 3){
					for(var j = 0; j < 3; j++){
						aux[i2][j] = sud[i][k];
						k++;
					}
					cas++;
					i2++;
				}
			break;
			case 1: case 4: case 7: 
				var cas = 0;
				var k = 0;
				var i2 = i-1;
				while(cas < 3){
					for(var j = 3; j < 6; j++){
						aux[i2][j] = sud[i][k];
						k++;
					}
					cas++;
					i2++;
				}
			break;
			case 2: case 5: case 8: 
				var cas = 0;
				var k = 0;
				var i2 = i-2;
				while(cas < 3){
					for(var j = 6; j < 9; j++){
						aux[i2][j] = sud[i][k];
						k++;
					}
					cas++;
					i2++;
				}
			break;
			default:
				alert('Error');
		    break;
		}
	}
	for(var i = 0; i < 9; i++){
		for(var j = 0; j < 9; j++){
			if(aux[i][j] != 0){
				limpiarSudoku(i,j);
			}else{
				aux[i][j] = '-';
			}
		}
	}
}
function rellenarCelda(i , j){
	var num = parseInt((Math.random()*9)+1);
	if(comprobarCasilla(num,i,j) == false){
		sud[i][j] = "0";
	}else{
		sud[i][j] = num;
	}
}
function limpiarSudoku(i , j){
	for(var k = 0; k < 9; k++){
		if(aux[i][k] == aux[i][j] && k != j){
			aux[i][k]="-";
		}
	}
	for(var k = 0; k < 9; k++){
		if(aux[k][j] == aux[i][j] && k != i){
			aux[k][j]="-";
		}
	}
}
function comprobarCasilla(num,i,j){
	for(var k = 0; k < 9; k++){
		if(sud[i][k] == num){
			return false;
		}
	}
	return true;
}
function imprimirSudoku(){
	document.write("<br>");
	for(var i = 0; i < 9; i++){
		for(var j = 0; j < 9; j++){
			document.write(aux[i][j]+" ");
		}
		document.write("<br>");
	}
}
generarSudoku();
imprimirSudoku();
Gracias po la ayuda!