Descripción: Permitimos introducir por teclado los números de un sudoku svg.
A continuación mostramos los apuntes asociados a este extra:
// Descripción para sindicación:
/*
[rss]Permitimos introducir por teclado los números de un sudoku svg.[/rss]
*/
//svgns = "http://www.w3.org/2000/svg";
//xlinkns = "http://www.w3.org/1999/xlink";
poner_evento(window, "load", iniciar_sudoku_blanco);
function iniciar_sudoku_blanco() {
poner_evento(tag("form_sudoku"), "reset", reseteando);
poner_evento(tag("sudoku_alternativo_1"), "click", nuevo_sudoku);
poner_evento(tag("sudoku_alternativo_2"), "click", nuevo_sudoku);
poner_evento(tag("sudoku_alternativo_3"), "click", nuevo_sudoku);
poner_evento(tag("sudoku_alternativo_4"), "click", nuevo_sudoku);
sudo = document.forms.form_sudoku.inicio.value;
while(sudo.length < 81) sudo += "0";
document.forms.form_sudoku.inicio.value = sudo;
for (i = 0; i < 9; i++) for (j = 0; j < 9; j++) {
tag("txt_" + i + "_" + j).appendChild(document.createTextNode(""));
poner_evento(tag("casilla_" + i + "_" + j), "click", entrada);
}
}
function entrada() {
id = this.id;
coleta = id.substr(8);
xy = coleta.split("_");
n_actual = tag("txt_" + coleta).firstChild.data;
n = prompt("nuevo valor para la casilla [" + xy + "] : ", n_actual)[0];
if ("123456789".indexOf(n) != -1) {
sudoku = document.forms.form_sudoku.inicio.value;
valores = sudoku.split("");
posi = parseInt(xy[0]) * 9 + parseInt(xy[1]);
valores[posi] = n;
document.forms.form_sudoku.inicio.value = valores.join("");
tag("txt_" + coleta).replaceChild(document.createTextNode(n), tag("txt_" + coleta).firstChild);
}
}
function reseteo() {
sudo = document.forms.form_sudoku.inicio.value;
while(sudo.length < 81) sudo += "0";
document.forms.form_sudoku.inicio.value = sudo;
}
function reseteando() {
setTimeout(reseteo, 100);
for (i = 0; i < 9; i++) for (j = 0; j < 9; j++)
tag("txt_" + i + "_" + j).replaceChild(document.createTextNode(""),
tag("txt_" + i + "_" + j).firstChild);
}
function nuevo_sudoku() {
sudo = this.src.split("=")[2];
document.forms.form_sudoku.inicio.value = sudo;
sudos = sudo.split("");
for (i = 0; i < 9; i++) for (j = 0; j < 9; j++) {
n = sudos.shift();
poner = ("123456789".indexOf(n) == -1) ? " ": n;
tag("txt_" + i + "_" + j).replaceChild(document.createTextNode(poner),
tag("txt_" + i + "_" + j).firstChild);
}
}
Este código ha sido leído en 89 ocasiones.
Esta extra aún no tiene comentarios.
Valoración de esta página: (extra.script.sudoku_blanco)
Listados: imágenes, categorías, etiquetas, extras | Anuarios: 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024 | Otros enlaces: buscador