Foros del Web » Programando para Internet » Javascript »

nose donde esta el error :(

Estas en el tema de nose donde esta el error :( en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/01/2008, 18:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 302
Antigüedad: 17 años, 9 meses
Puntos: 2
Pregunta nose donde esta el error :(

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();

}
  #2 (permalink)  
Antiguo 08/01/2008, 22:45
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: nose donde esta el error :(

Hola pues nada grave, lo corregí con la consola de errores de Firefox
funciona Bien nada mas que en el renglón 229 no se si te pasaste de comillas o
buscas unas "".
probé el script y salió algo raro puras alertas bueno
bYe
Código HTML:
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),ubicacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumnaDerecha(boton));
cant=5;
}else

if( (_y==0)&& ((_x!=0)&&(_x!=19)) ){
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumnaDerecha(boton));
_C4= this.casillero(ubicacion.getFila(boton),ubicacion.getColumnaDerecha(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumnaDerecha(boton));
cant=5;
}else

if ( (_x==19)&&((_y!=0)&&(_y!=19)) ){
_C0= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.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),ubicacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion.getColumnaIzquierda(boton));
_C5= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.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),ubicacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.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),ubicacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumna(boton));
cant=3;
}else

if((_x==19)&&(_y==0)){
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.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),ubicacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C3= this.casillero(ubicacion.getFila(boton),ubicacion.getColumnaIzquierda(boton));
cant=3;
}else


{_C0= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumnaIzquierda(boton));
_C1= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.getColumna(boton));
_C2= this.casillero(ubicacion.getFilaSuperior(boton),ubicacion.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),ubicacion.getColumnaIzquierda(boton));
_C6= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.getColumna(boton));
_C7= this.casillero(ubicacion.getFilaInferior(boton),ubicacion.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();

}
__________________
Aerolíneas Alicia :D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:41.