Tengo un problema con el siguiente codigo, es un poco largo pero el problema igual esta sectorizado asi q no es necesario tener en cuenta todo lo de arriba.
Al final de todo hay una funcion que se llama setearVectorValores a esa funcion yo le paso un valor; que segun el alert que esta dentro el valor llega correctamente. El problema esta en que no se guarda en el vector que le sigue al alert ya que si hago una alert de los elementos de vector me dan undefined. Probe inclusive pasandole valores fijos pero tampoco. Si alguien me puede dar una mano gracias! :)
var tablero = {
dibujar:function(filas,columnas) {
var tabla = document.createElement("table");
tabla.id='tablita'
cuerpo=document.createElement("tbody");
var cont=0;
for (var i=0; i<filas; i++) {
var fila = document.createElement("tr");
for (var j=0; j<columnas; j++) {
cont+=1;
var columna = document.createElement("td");
columna.setAttribute("id","td");
var boton = document.createElement("button");
boton.setAttribute("id",cont);
ubicacion.setearVector(i,j,boton)
boton.setAttribute("style","color:red");
boton.onmouseover=function() {
this.innerHTML="9";
};
columna.appendChild(boton);
fila.appendChild(columna);
}
cuerpo.appendChild(fila);
}
tabla.appendChild(cuerpo);
tabla.border='1';
document.body.appendChild(tabla);
this.numerosFijos(filas,columnas);
},
numerosFijos:function(filas,columnas) {
tab = busqI('tablita');
cjto=tab.getElementsByTagName('button');
vector=[];
eleccion=0;
for (var i=0;i<50;i++){
var eleccion=Math.floor(Math.random()*(400));
vector[i]=eleccion;
}
for (var k=0;k<50;k++){
for (var e=0;e<cjto.length;e++){
aux=cjto[e].innerHTML;
if((cjto[e].id==vector[k])&&(aux=="")){
cjto[e].setAttribute("style","color:green");
valor=Math.floor(Math.random()*5);
valor+=1;
cjto[e].innerHTML=valor;
ubicacion.setearVectorValores(valor,cjto[e])
_xmina=ubicacion.getFila(cjto[e]);
_ymina=ubicacion.getColumna(cjto[e]);
cantidadMinas=this.cuantasMinas(_xmina,_ymina,cjto[e]);
this.minas(_xmina,_ymina,cantidadMinas,cjto[e]);
}
}}
},
interfaz: function() {
busqI('tablita').setAttribute("bgColor","red");
},
minas: function(fil,col,cantidad,btn) {
a=0;
tab = document.getElementById('tablita');
filas = tab.getElementsByTagName('tr');
ffija=fil;
cfija=col;
if(fil==0){
if((col!=0)&&(col!=19))aleatorios=[3,4,5,6,7];
else if(col==0)aleatorios=[4,6,7];
else if(col==19)aleatorios=[3,5,6];
}else if(fil==19){
if((col!=0)&&(col!=19))aleatorios=[0,1,2,3,4];
else if(col==0)aleatorios=[1,2,4]
else if(col==19)aleatorios=[0,1,3]
}else {
if(col==0)aleatorios=[1,2,4,6,7]
else if (col==19)aleatorios=[0,1,3,5,6]
else aleatorios=[0,1,2,3,4,5,6,7]
}
posibilidades=(aleatorios.length)-1;
for(var i=0;i<cantidad;i++){
_n=Math.floor(Math.random()*posibilidades);
pos=aleatorios[_n];
switch(pos){
case 0: fil=fil-1;col=col-1;
break;
case 1: fil=fil-1;
break;
case 2: fil=fil-1;col=col+1;
break;
case 3:col=col-1;
break;
case 4:col=col+1;
break;
case 5: fil=fil+1;col=col-1;
break;
case 6: fil=fil+1;
break;
case 7: fil=fil+1;col=col+1;
break;
}
celdas = filas[fil].getElementsByTagName('td');
if ((celdas[col].innerHTML!="1")&&(celdas[col].innerHTML!="2")&&(celdas[col].innerHTML!="3")&&(celdas[col].innerHTML!="4")&&(celdas[col].innerHTML!="5")) flag=true;
else flag=false;
if (flag)celdas[col].innerHTML="X";
fil=ffija;
col=cfija;
}
fil=0;
col=0;
posibilidades=0;
},
cuantasMinas:function (_x,_y,boton){
if ( (_x==0)&& ((_y!=0)&&(_y!=19)) ){
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
_C5= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaDerecha(boton));
cant=5;
}else
if( (_y==0)&& ((_x!=0)&&(_x!=19)) ){
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaDerecha(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaDerecha(boton));
cant=5;
}else
if ( (_x==19)&&((_y!=0)&&(_y!=19)) ){
_C0= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaDerecha(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
cant=5;
}else
if((_y==19)&& ((_x!=0)&&(_x!=19)) ){
_C0= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
_C5= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
cant=5;
}else
if((_x==0)&&(_y==0)){
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaDerecha(boton));
cant=3;
}else
if((_x==0)&&(_y==19)){
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
_C5= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
cant=3;
}else
if((_x==19)&&(_y==0)){
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaDerecha(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
cant=3;
}else
if((_x==19)&&(_y==19)){
_C0= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
cant=3;
}else
{_C0= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ub icacion.getColumnaDerecha(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaIzquierda(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion. getColumnaDerecha(boton));
_C5= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ub icacion.getColumnaDerecha(boton));
cant=7;
}
return cant;
},
qBoton function(fil,col) {
tab = document.getElementById('tablita');
filas = tab.getElementsByTagName('tr');
celdas = filas[fil].getElementsByTagName('td');
txt = celdas[col].innerHTML;
_txt=cadena.split ("""");
for(var i=0;i<_txt.length;i++) alert(_txt[i])
},
*/
casillero: function(fil,col) { //que tiene la celda dentro
tab = document.getElementById('tablita');
filas = tab.getElementsByTagName('tr');
celdas = filas[fil].getElementsByTagName('td');
txt = celdas[col].innerHTML; //txt es string
_txt = txt.split("\"");
resultado=_txt[_txt.length-2];
//_fin=this.buscarSuValor(resultado);
_fin=0;
return _fin;
},
buscarSuValor: function (deQuien){
tab = busqI('tablita');
cjto=tab.getElementsByTagName('button');
for (var e=0;e<cjto.length;e++){
if (cjto[e].id==deQuien){
andara=ubicacion.getValor(deQuien);
}
//return cjto[e].innerHTML;
}
}
};
var ubicacion = {
_vectorFila:[],
_vectorColumna:[],
_vectorValores:[],
setearVector:function(f,c,boton){
this._vectorFila[boton.id-1]=f;
this._vectorColumna[boton.id-1]=c;
},
/******************ACA ESTA EL ERROR****************************/
setearVectorValores:function(valor,boton){
alert(valor);
this._vectorValores[boton.id-1]=valor;
},
/************************************************** **********/
/*EL ID ES UN NUMERO MAS QUE LA POSICION QUE TIENE EN EL VECTOR*/
getFila:function(boton){return this._vectorFila[boton.id-1]; },
getColumna:function(boton){return this._vectorColumna[boton.id-1];},
getValor:function(ident){return this._vectorValores[ident-1]; },
getFilaSuperior:function (boton){return (this.getFila(boton)-1);},
getFilaInferior:function (boton){return (this.getFila(boton)+1);},
getColumnaIzquierda:function (boton){return (this.getColumna(boton)-1);},
getColumnaDerecha:function (boton){return (this.getColumna(boton)+1);},
imprimir:function(){
vect=this._vectorValores;
for (var y=0;y<vect.length;y++) alert(this.getValor[y])
}
}
function busqI(elemento){return document.getElementById(elemento);}
function busqT(conjunto){return document.getElementsByTagName(conjunto);}
function busqN(nombreGrupal){return document.getElementsByName(nombreGrupal);}
window.onload=function() {
tablero.dibujar(20,20);
ubicacion.imprimir();
}