Comunidad de diseño web y desarrollo en internet online

nose donde esta el error :(

Citar            
MensajeEscrito el 09 Ene 2008 12:17 am
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();

} :(

Por usuaria

6 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 09 Ene 2008 11:01 am
¿no podrías sacar a relucir sólamente el fragmento de código que está implicado en el error?
Parece muy largo para leer entero.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.