EDITOR SIMPLE NIVELES

Started by Goku jr, November 04, 2014, 04:50:45 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Goku jr

Muy buenas compañeros!
Ya estoi aqui otra vez dando la lata. :D


Resulta que estoi intentando hacerme un editor de niveles simple(sin scrolls ni nada,todo estatico).
pues bien tengo un proceso llamado cursor,que cada vez que pulso las teclas de direccion se mueve 32 pixeles,en la direccion pulsada,y que cuando pulso enter "pega" un tile en la pantalla,con la funcion put.
algo asi : put(gfx,graph,x,y);


Hasta ahi todo bien.incluso puedo elegir tiles diferentes pulsando la tecla control.
mi problema es,a la hora de guardar en un archivo los datos de el nivel,y cargarlo y mostrarlo,he probado a asignarle a una variable la x,y ,el numero de tile,y guardarlo todo ,pero me da a mi que estoy haciendo una chapuza que cuidado.
he leido el manual de osk,que te indica como hacer uno,pero demasiado complicado para mi.
Si alguien fuera capaz de hecharme un pequeño cable,lo agradeceria.
Aqui os dejo el codigo,no os asusteis.


PROCESS CURSOR();
PRIVATE
Estado=0;
tilepuesta=0;
BEGIN
file=gfxtiles;
graph=1;
x=16;y=16;
LOOP
// CONTROL DEL CURSOR
if(key(_right));x=x+32; //mueve a la derecha
end
if(key(_left));x=x-32;  // mueve a la izquierda
end
if(key(_up));y=y-32;    // mueve hacia arriba
end
if(key(_down));y=y+32;  // mueve hacia abajo
end
if(x=<16);x=16;         // no deja salir por la derecha
end
if(x=>640);x=625;       // no deja salir por la izquierda
end
if(y=<16);y=16;         // no deja salir por arriba
end
if(y=>480);y=465;       // no deja salir por abajo
end


if(key(_control));if(estado==0);graph=graph+1;estado=1;end else estado=0;end  // Cambia el tile,por uno de los disponibles
      if(graph=>4);graph=1;end


if(key(_enter));if(tilepuesta==0);auxiliar=auxiliar+1;put(gfxtiles,graph,x,y);level.posx[auxiliar]=x;
level.posy[auxiliar]=x;level.tiles[auxiliar]=graph;tilepùesta=1;end else tilepuesta=0;end // Dibuja el tile en pantalla
 
if(key(_s));guarda_nivel();end
if(key(_a));render_tiles();end
 
//--------------------


FRAME;
END
END


process Render_tiles();
private


end


begin
carga_nivel();
clear_screen();
file=gfxtiles;


Loop
map_put(gfxtiles,0,graph,x=level.posx[auxiliar],y=level.posy[auxiliar]);


Frame;
End
End




function guarda_nivel();
PRIVATE
NIVEL;
END
begin
NIVEL=fopen("prueba.txt",o_write);
fwrite(NIVEL,LEVEL);
fclose(NIVEL);
END


function carga_nivel();
private
NIVELC;
END
begin
NIVELC=fopen("prueba.txt",o_read);
fread(NIVELC,LEVEL);
fclose(NIVELC);
END



y bueno la STRUCT para guardar seria esta .

STRUCT LEVEL
byte tiles[999];
int posx[999]; posy[999];

Goku jr

#1
y bueno,aqui os dejo una screen,de lo que estoi intentando hacer.



gecko


Hola! Habia elaborado una mejor respuesta antes, pero se me colgó el navegador y perdi todo lo que habia escrito. Asi que lo lamento pero esta vez va a ir un poco mas resumida la respuesta.

Primero: el mapa que estas intentando hacer se basa en tiles, asi que la forma mas logica de guardar los datos y cargarlos es pensandolos como tiles. Para manejar esos datos una estructura muy comoda de usar son las matrices. En este caso tendrias una matriz con las mismas filas y columnas que las de tu mapa, donde cada entrada de la matriz viene a ser un tile en tu mapa.

Lo que haces despues es guardar el numero de grafico que se deberia mostrar en cada una de las entradas (solo en las que mostras un grafico, las otras pueden quedar en 0). Y a la hora de renderizar/dibujar/mostrar el mapa en la pantalla lo que haces es recorrer cada posicion de la matriz, y leer el valor que esta guardado, y si corresponde dibjuar el tile correspondiente en la pantalla.

Te doy algunos fragmentos de codigo para que masomenos entiendas la forma de hacerlo.

// declaras una global con la matriz de datos del mapa
int matriz_mapa[ dimension_filas ][ dimension_columnas ];

// para actualizar un valor de una posicion
matriz_mapa[ posicion_cursor_x ][ posicion_cursor_y ] = valor_grafico;

// al momento de renderizar, para recorrer todas las posiciones posibles
for ( x_actual = 0, x_actual < dimension_filas )
for ( y_actual = 0, y_actual < dimension_columnas )

// obtengo el valor del grafico que deberia ir en la posicion actual del recorrido
valor_grafico_actual = matriz_mapa[ x_actual ][ y_actual ];

if ( valor_grafico_actual ) // si hay algun valor guardado en esa posicion

// lo dibujo en pantalla
map_put(gfxtiles,0,valor_grafico_actual, x_actual*16, y_actual*16);

end

end
end


// para guardar y cargar datos solo hace falta guardar y cargar la variable matriz_mapa
// (se va a guardar en formato binario, asi que no vas a poder editarlo externamente)
NIVEL=fopen("prueba.bin",o_write);
fwrite(NIVEL,matriz_mapa);


Insisto, no es un codigo completo sino algunas partes para que puedas ir entendiendo las ideas. Espero te sea util.

Saludos!
Torres Baldi Studio
http://torresbaldi.com

Goku jr

Muchas gracias por contestar!
Esta noche le pegare un vistazo a fondo!


Saludos

Goku jr

Buenas de nuevo.
He modificado mi codigo,con las pautas que me distes Gecko.
pero algo me sigue fallando.



import "mod_map"
import "mod_video"
import "mod_text"
import "mod_key"
import "mod_proc"
import "mod_screen"
import "mod_file"
import "mod_draw"
import "mod_say"
CONST
filas=20;
columnas=15;
GLOBAL


int mapa[filas][columnas];
int posicion_x=32; posicion_y=32;
int grafico;


int auxiliar=0;
int gfxtiles;


BEGIN
set_mode(672,512,16);
gfxtiles=load_fpg("tiles.fpg");
CURSOR();
LOOP
if(key(_esc));exit("",0);end
FRAME;
END
END


PROCESS CURSOR();
PRIVATE
Estado=0;
tilepuesta=0;
txt;
txt2;
txt3;
tright=0;
tleft=0;
tup=0;
tdown=0;
BEGIN
file=gfxtiles;
graph=1;
x=posicion_x;y=posicion_y;
LOOP
txt=write(0,10,10,0,"grafico_tile : " +graph);
txt2=write(0,10,30,0,"Posicion x : " +x);
txt3=write(0,10,50,0,"Posicion y : " +y);
// CONTROL DEL CURSOR
if(key(_right));if(tright==0);x=x+32;tright=1;end else tright=0;end //mueve a la derecha


if(key(_left));if(tleft==0);x=x-32;tleft=1; end else tleft=0;end // mueve a la izquierda


if(key(_up));if(tup==0);y=y-32;tup=1;end else tup=0;end  // mueve hacia arriba


if(key(_down))if(tdown==0);y=y+32;tdown=1;end else tdown=0; end // mueve hacia abajo


if(x=<32);x=32;         // no deja salir por la derecha
end
if(x=>640);x=640;       // no deja salir por la izquierda
end
if(y=<32);y=32;         // no deja salir por arriba
end
if(y=>480);y=480;       // no deja salir por abajo
end




if(key(_control));if(estado==0); graph=graph+1;grafico=grafico+1;estado=1;end else estado=0; end // Cambia el tile,por uno de los disponibles
  if(graph=>5)graph=1;end if(grafico=>5)grafico=1;end
if(key(_enter));if(tilepuesta==0);map_put(gfxtiles,0,graph,x,y);mapa[ posicion_x ][ posicion_y ]=grafico;tilepùesta=1;end else tilepuesta=0;end // Dibuja el tile en pantalla
if(key(_s));guarda_nivel();end
if(key(_a));clear_screen();render_tiles();end
 
//--------------------


FRAME;
delete_text(txt);
delete_text(txt2);
delete_text(txt3);
END
END


process render_tiles();
private
x_actual;
y_actual;
valor_grafico_actual;
end
begin
carga_nivel();


for ( x_actual = 0; x_actual < filas; )
for ( y_actual = 0; y_actual < columnas; )
valor_grafico_actual = mapa[ x_actual ][ y_actual ];


if ( valor_grafico_actual ); // si hay algun valor guardado en esa posicion


// lo dibujo en pantalla
map_put(gfxtiles,0,valor_grafico_actual, x_actual*16, y_actual*16);
end
frame;
end
end
end










function guarda_nivel();
PRIVATE
NIVEL;
END
begin
NIVEL=fopen("prueba.txt",o_write);
fwrite(NIVEL,mapa);
fclose(NIVEL);






END


function carga_nivel();
private
NIVELC;
END
begin
NIVELC=fopen("prueba.txt",o_read);
fread(NIVELC,mapa);
fclose(NIVELC);
END



Creo que hago mal lo de Actualizar el valor de la posicion,ya que lo he puesto en varias partes,y a la hora de llamar a renderizar_tiles(); se me ha llegado a mostrar un tile arriba a la izquierda,pero ya.
Tambien el fichero que se guarda,(ya se que es en binario) al abrirlo con notepad me sale en blanco,y si lo abro con un editor hexadecimal,solo salen 0.de ahi es donde creo que viene el error de actualizar el valor de la posicion.


Bueno,espero no molestar a nadie.
Un saludo y gracias.


Goku jr

Aqui os dejo el prg,fpg y dcb
Saludos y gracias







kim-elet-o

#6
Hola, creo que el error esta en la siguiente linea:

if(key(_enter));if(tilepuesta==0);map_put(gfxtiles,0,graph,x,y);level.mapa[posicion_x][posicion_y]=grafico; tilepùesta=1;end else tilepuesta=0;end // Dibuja el tile en pantalla


Te has olvidado de calcular las variables de posicion dentro del mapa posicion_x y posicion_y, de la siguiente forma

if(key(_enter));
if(tilepuesta==0);
map_put(gfxtiles,0,graph,x,y);
posicion_x=x/32;
posicion_y=y/32;
level.mapa[posicion_x][posicion_y]=grafico;
tilepùesta=1;
end else tilepuesta=0;
end // Dibuja el tile en pantalla


pd: No he probado el programa pero asi a primera vista es el error que me he encontrado.
pd2: un consejo procura utilizar el tabulador para diferenciar los diferentes niveles de anidacion, y poner una instruccion por linea, ayuda a revisar el codigo y encontrar errores, y lo mas importante, se hace mas entendible
para terceros. gracias.
Pd3: perdon que no te halla puesto tabuladores, pero no se poner tabuladores en el editor del sitio web, sorry.
|/
|\im-elet-o el yayo programador.

Goku jr

Muchas gracias KIM!.
Ahora si que guarda algo en el fichero.
Ahora voi a ver como lo muestro en pantalla,por que de momento,con el codigo que tengo,no sale nada. :S

kim-elet-o

De nada Goku jr, en el procedimiento render_tiles() he encontrado un error en cada sentencia for, te has olvidado los incrementos, tu tienes
for ( x_actual = 0; x_actual =< filas;  )
for ( Y_actual = 0; y_actual =< columnas; )

y en realidad tienen que ser
for ( x_actual = 0; x_actual =< filas;  x_actual++)
for ( Y_actual = 0; y_actual =< columnas;  y_actual++)
|/
|\im-elet-o el yayo programador.

Goku jr

#9
Quote from: kim-elet-o on November 12, 2014, 11:13:57 PM
De nada Goku jr, en el procedimiento render_tiles() he encontrado un error en cada sentencia for, te has olvidado los incrementos, tu tienes
for ( x_actual = 0; x_actual =< filas;  )
for ( Y_actual = 0; y_actual =< columnas; )

y en realidad tienen que ser
for ( x_actual = 0; x_actual =< filas;  x_actual++)
for ( Y_actual = 0; y_actual =< columnas;  y_actual++)


Muchas gracias de nuevo,revisando unos codigos por el foro.me estaba dando cuenta que algo fallaba en los for,pero en vez de poner x_actual++ o y_actual++ puse x++ o y ++ xD
Vale,ahora corre mejor,pero me he dado cuenta que algo falla en el tema grafico. ya que hago un Say("grafico : "+valor_grafico_actual); justo despues de los For, y me sale a 0.
voi a trastear un poquito a ver,que presiento que ya lo tengo casi.

EDITO :
Aqui pongo un tocho de un log que me he credo a base de fputs,hasta que terminan los for.
y raro raro,el valor grafico siempre es 0.


Valor grafico: 0
filas: 0
columnas: 0
Valor grafico: 0
filas: 0
columnas: 1
Valor grafico: 0
filas: 0
columnas: 2
Valor grafico: 0
filas: 0
columnas: 3
Valor grafico: 0
filas: 0
columnas: 4
Valor grafico: 0
filas: 0
columnas: 5
Valor grafico: 0
filas: 0
columnas: 6
Valor grafico: 0
filas: 0
columnas: 7
Valor grafico: 0
filas: 0
columnas: 8
Valor grafico: 0
filas: 0
columnas: 9
Valor grafico: 0
filas: 0
columnas: 10
Valor grafico: 0
filas: 0
columnas: 11
Valor grafico: 0
filas: 0
columnas: 12
Valor grafico: 0
filas: 0
columnas: 13
Valor grafico: 0
filas: 0
columnas: 14
Valor grafico: 0
filas: 0
columnas: 15
Valor grafico: 0
filas: 1
columnas: 0
Valor grafico: 0
filas: 1
columnas: 1
Valor grafico: 0
filas: 1
columnas: 2
Valor grafico: 0
filas: 1
columnas: 3
Valor grafico: 0
filas: 1
columnas: 4
Valor grafico: 0
filas: 1
columnas: 5
Valor grafico: 0
filas: 1
columnas: 6
Valor grafico: 0
filas: 1
columnas: 7
Valor grafico: 0
filas: 1
columnas: 8
Valor grafico: 0
filas: 1
columnas: 9
Valor grafico: 0
filas: 1
columnas: 10
Valor grafico: 0
filas: 1
columnas: 11
Valor grafico: 0
filas: 1
columnas: 12
Valor grafico: 0
filas: 1
columnas: 13
Valor grafico: 0
filas: 1
columnas: 14
Valor grafico: 0
filas: 1
columnas: 15
Valor grafico: 0
filas: 2
columnas: 0
Valor grafico: 0
filas: 2
columnas: 1
Valor grafico: 0
filas: 2
columnas: 2
Valor grafico: 0
filas: 2
columnas: 3
Valor grafico: 0
filas: 2
columnas: 4
Valor grafico: 0
filas: 2
columnas: 5
Valor grafico: 0
filas: 2
columnas: 6
Valor grafico: 0
filas: 2
columnas: 7
Valor grafico: 0
filas: 2
columnas: 8
Valor grafico: 0
filas: 2
columnas: 9
Valor grafico: 0
filas: 2
columnas: 10
Valor grafico: 0
filas: 2
columnas: 11
Valor grafico: 0
filas: 2
columnas: 12
Valor grafico: 0
filas: 2
columnas: 13
Valor grafico: 0
filas: 2
columnas: 14
Valor grafico: 0
filas: 2
columnas: 15
Valor grafico: 0
filas: 3
columnas: 0
Valor grafico: 0
filas: 3
columnas: 1
Valor grafico: 0
filas: 3
columnas: 2
Valor grafico: 0
filas: 3
columnas: 3
Valor grafico: 0
filas: 3
columnas: 4
Valor grafico: 0
filas: 3
columnas: 5
Valor grafico: 0
filas: 3
columnas: 6
Valor grafico: 0
filas: 3
columnas: 7
Valor grafico: 0
filas: 3
columnas: 8
Valor grafico: 0
filas: 3
columnas: 9
Valor grafico: 0
filas: 3
columnas: 10
Valor grafico: 0
filas: 3
columnas: 11
Valor grafico: 0
filas: 3
columnas: 12
Valor grafico: 0
filas: 3
columnas: 13
Valor grafico: 0
filas: 3
columnas: 14
Valor grafico: 0
filas: 3
columnas: 15
Valor grafico: 0
filas: 4
columnas: 0
Valor grafico: 0
filas: 4
columnas: 1
Valor grafico: 0
filas: 4
columnas: 2
Valor grafico: 0
filas: 4
columnas: 3
Valor grafico: 0
filas: 4
columnas: 4
Valor grafico: 0
filas: 4
columnas: 5
Valor grafico: 0
filas: 4
columnas: 6
Valor grafico: 0
filas: 4
columnas: 7
Valor grafico: 0
filas: 4
columnas: 8
Valor grafico: 0
filas: 4
columnas: 9
Valor grafico: 0
filas: 4
columnas: 10
Valor grafico: 0
filas: 4
columnas: 11
Valor grafico: 0
filas: 4
columnas: 12
Valor grafico: 0
filas: 4
columnas: 13
Valor grafico: 0
filas: 4
columnas: 14
Valor grafico: 0
filas: 4
columnas: 15
Valor grafico: 0
filas: 5
columnas: 0
Valor grafico: 0
filas: 5
columnas: 1
Valor grafico: 0
filas: 5
columnas: 2
Valor grafico: 0
filas: 5
columnas: 3
Valor grafico: 0
filas: 5
columnas: 4
Valor grafico: 0
filas: 5
columnas: 5
Valor grafico: 0
filas: 5
columnas: 6
Valor grafico: 0
filas: 5
columnas: 7
Valor grafico: 0
filas: 5
columnas: 8
Valor grafico: 0
filas: 5
columnas: 9
Valor grafico: 0
filas: 5
columnas: 10
Valor grafico: 0
filas: 5
columnas: 11
Valor grafico: 0
filas: 5
columnas: 12
Valor grafico: 0
filas: 5
columnas: 13
Valor grafico: 0
filas: 5
columnas: 14
Valor grafico: 0
filas: 5
columnas: 15
Valor grafico: 0
filas: 6
columnas: 0
Valor grafico: 0
filas: 6
columnas: 1
Valor grafico: 0
filas: 6
columnas: 2
Valor grafico: 0
filas: 6
columnas: 3
Valor grafico: 0
filas: 6
columnas: 4
Valor grafico: 0
filas: 6
columnas: 5
Valor grafico: 0
filas: 6
columnas: 6
Valor grafico: 0
filas: 6
columnas: 7
Valor grafico: 0
filas: 6
columnas: 8
Valor grafico: 0
filas: 6
columnas: 9
Valor grafico: 0
filas: 6
columnas: 10
Valor grafico: 0
filas: 6
columnas: 11
Valor grafico: 0
filas: 6
columnas: 12
Valor grafico: 0
filas: 6
columnas: 13
Valor grafico: 0
filas: 6
columnas: 14
Valor grafico: 0
filas: 6
columnas: 15
Valor grafico: 0
filas: 7
columnas: 0
Valor grafico: 0
filas: 7
columnas: 1
Valor grafico: 0
filas: 7
columnas: 2
Valor grafico: 0
filas: 7
columnas: 3
Valor grafico: 0
filas: 7
columnas: 4
Valor grafico: 0
filas: 7
columnas: 5
Valor grafico: 0
filas: 7
columnas: 6
Valor grafico: 0
filas: 7
columnas: 7
Valor grafico: 0
filas: 7
columnas: 8
Valor grafico: 0
filas: 7
columnas: 9
Valor grafico: 0
filas: 7
columnas: 10
Valor grafico: 0
filas: 7
columnas: 11
Valor grafico: 0
filas: 7
columnas: 12
Valor grafico: 0
filas: 7
columnas: 13
Valor grafico: 0
filas: 7
columnas: 14
Valor grafico: 0
filas: 7
columnas: 15
Valor grafico: 0
filas: 8
columnas: 0
Valor grafico: 0
filas: 8
columnas: 1
Valor grafico: 0
filas: 8
columnas: 2
Valor grafico: 0
filas: 8
columnas: 3
Valor grafico: 0
filas: 8
columnas: 4
Valor grafico: 0
filas: 8
columnas: 5
Valor grafico: 0
filas: 8
columnas: 6
Valor grafico: 0
filas: 8
columnas: 7
Valor grafico: 0
filas: 8
columnas: 8
Valor grafico: 0
filas: 8
columnas: 9
Valor grafico: 0
filas: 8
columnas: 10
Valor grafico: 0
filas: 8
columnas: 11
Valor grafico: 0
filas: 8
columnas: 12
Valor grafico: 0
filas: 8
columnas: 13
Valor grafico: 0
filas: 8
columnas: 14
Valor grafico: 0
filas: 8
columnas: 15
Valor grafico: 0
filas: 9
columnas: 0
Valor grafico: 0
filas: 9
columnas: 1
Valor grafico: 0
filas: 9
columnas: 2
Valor grafico: 0
filas: 9
columnas: 3
Valor grafico: 0
filas: 9
columnas: 4
Valor grafico: 0
filas: 9
columnas: 5
Valor grafico: 0
filas: 9
columnas: 6
Valor grafico: 0
filas: 9
columnas: 7
Valor grafico: 0
filas: 9
columnas: 8
Valor grafico: 0
filas: 9
columnas: 9
Valor grafico: 0
filas: 9
columnas: 10
Valor grafico: 0
filas: 9
columnas: 11
Valor grafico: 0
filas: 9
columnas: 12
Valor grafico: 0
filas: 9
columnas: 13
Valor grafico: 0
filas: 9
columnas: 14
Valor grafico: 0
filas: 9
columnas: 15
Valor grafico: 0
filas: 10
columnas: 0
Valor grafico: 0
filas: 10
columnas: 1
Valor grafico: 0
filas: 10
columnas: 2
Valor grafico: 0
filas: 10
columnas: 3
Valor grafico: 0
filas: 10
columnas: 4
Valor grafico: 0
filas: 10
columnas: 5
Valor grafico: 0
filas: 10
columnas: 6
Valor grafico: 0
filas: 10
columnas: 7
Valor grafico: 0
filas: 10
columnas: 8
Valor grafico: 0
filas: 10
columnas: 9
Valor grafico: 0
filas: 10
columnas: 10
Valor grafico: 0
filas: 10
columnas: 11
Valor grafico: 0
filas: 10
columnas: 12
Valor grafico: 0
filas: 10
columnas: 13
Valor grafico: 0
filas: 10
columnas: 14
Valor grafico: 0
filas: 10
columnas: 15
Valor grafico: 0
filas: 11
columnas: 0
Valor grafico: 0
filas: 11
columnas: 1
Valor grafico: 0
filas: 11
columnas: 2
Valor grafico: 0
filas: 11
columnas: 3
Valor grafico: 0
filas: 11
columnas: 4
Valor grafico: 0
filas: 11
columnas: 5
Valor grafico: 0
filas: 11
columnas: 6
Valor grafico: 0
filas: 11
columnas: 7
Valor grafico: 0
filas: 11
columnas: 8
Valor grafico: 0
filas: 11
columnas: 9
Valor grafico: 0
filas: 11
columnas: 10
Valor grafico: 0
filas: 11
columnas: 11
Valor grafico: 0
filas: 11
columnas: 12
Valor grafico: 0
filas: 11
columnas: 13
Valor grafico: 0
filas: 11
columnas: 14
Valor grafico: 0
filas: 11
columnas: 15
Valor grafico: 0
filas: 12
columnas: 0
Valor grafico: 0
filas: 12
columnas: 1
Valor grafico: 0
filas: 12
columnas: 2
Valor grafico: 0
filas: 12
columnas: 3
Valor grafico: 0
filas: 12
columnas: 4
Valor grafico: 0
filas: 12
columnas: 5
Valor grafico: 0
filas: 12
columnas: 6
Valor grafico: 0
filas: 12
columnas: 7
Valor grafico: 0
filas: 12
columnas: 8
Valor grafico: 0
filas: 12
columnas: 9
Valor grafico: 0
filas: 12
columnas: 10
Valor grafico: 0
filas: 12
columnas: 11
Valor grafico: 0
filas: 12
columnas: 12
Valor grafico: 0
filas: 12
columnas: 13
Valor grafico: 0
filas: 12
columnas: 14
Valor grafico: 0
filas: 12
columnas: 15
Valor grafico: 0
filas: 13
columnas: 0
Valor grafico: 0
filas: 13
columnas: 1
Valor grafico: 0
filas: 13
columnas: 2
Valor grafico: 0
filas: 13
columnas: 3
Valor grafico: 0
filas: 13
columnas: 4
Valor grafico: 0
filas: 13
columnas: 5
Valor grafico: 0
filas: 13
columnas: 6
Valor grafico: 0
filas: 13
columnas: 7
Valor grafico: 0
filas: 13
columnas: 8
Valor grafico: 0
filas: 13
columnas: 9
Valor grafico: 0
filas: 13
columnas: 10
Valor grafico: 0
filas: 13
columnas: 11
Valor grafico: 0
filas: 13
columnas: 12
Valor grafico: 0
filas: 13
columnas: 13
Valor grafico: 0
filas: 13
columnas: 14
Valor grafico: 0
filas: 13
columnas: 15
Valor grafico: 0
filas: 14
columnas: 0
Valor grafico: 0
filas: 14
columnas: 1
Valor grafico: 0
filas: 14
columnas: 2
Valor grafico: 0
filas: 14
columnas: 3
Valor grafico: 0
filas: 14
columnas: 4
Valor grafico: 0
filas: 14
columnas: 5
Valor grafico: 0
filas: 14
columnas: 6
Valor grafico: 0
filas: 14
columnas: 7
Valor grafico: 0
filas: 14
columnas: 8
Valor grafico: 0
filas: 14
columnas: 9
Valor grafico: 0
filas: 14
columnas: 10
Valor grafico: 0
filas: 14
columnas: 11
Valor grafico: 0
filas: 14
columnas: 12
Valor grafico: 0
filas: 14
columnas: 13
Valor grafico: 0
filas: 14
columnas: 14
Valor grafico: 0
filas: 14
columnas: 15
Valor grafico: 0
filas: 15
columnas: 0
Valor grafico: 0
filas: 15
columnas: 1
Valor grafico: 0
filas: 15
columnas: 2
Valor grafico: 0
filas: 15
columnas: 3
Valor grafico: 0
filas: 15
columnas: 4
Valor grafico: 0
filas: 15
columnas: 5
Valor grafico: 0
filas: 15
columnas: 6
Valor grafico: 0
filas: 15
columnas: 7
Valor grafico: 0
filas: 15
columnas: 8
Valor grafico: 0
filas: 15
columnas: 9
Valor grafico: 0
filas: 15
columnas: 10
Valor grafico: 0
filas: 15
columnas: 11
Valor grafico: 0
filas: 15
columnas: 12
Valor grafico: 0
filas: 15
columnas: 13
Valor grafico: 0
filas: 15
columnas: 14
Valor grafico: 0
filas: 15
columnas: 15
Valor grafico: 0
filas: 16
columnas: 0
Valor grafico: 0
filas: 16
columnas: 1
Valor grafico: 0
filas: 16
columnas: 2
Valor grafico: 0
filas: 16
columnas: 3
Valor grafico: 0
filas: 16
columnas: 4
Valor grafico: 0
filas: 16
columnas: 5
Valor grafico: 0
filas: 16
columnas: 6
Valor grafico: 0
filas: 16
columnas: 7
Valor grafico: 0
filas: 16
columnas: 8
Valor grafico: 0
filas: 16
columnas: 9
Valor grafico: 0
filas: 16
columnas: 10
Valor grafico: 0
filas: 16
columnas: 11
Valor grafico: 0
filas: 16
columnas: 12
Valor grafico: 0
filas: 16
columnas: 13
Valor grafico: 0
filas: 16
columnas: 14
Valor grafico: 0
filas: 16
columnas: 15
Valor grafico: 0
filas: 17
columnas: 0
Valor grafico: 0
filas: 17
columnas: 1
Valor grafico: 0
filas: 17
columnas: 2
Valor grafico: 0
filas: 17
columnas: 3
Valor grafico: 0
filas: 17
columnas: 4
Valor grafico: 0
filas: 17
columnas: 5
Valor grafico: 0
filas: 17
columnas: 6
Valor grafico: 0
filas: 17
columnas: 7
Valor grafico: 0
filas: 17
columnas: 8
Valor grafico: 0
filas: 17
columnas: 9
Valor grafico: 0
filas: 17
columnas: 10
Valor grafico: 0
filas: 17
columnas: 11
Valor grafico: 0
filas: 17
columnas: 12
Valor grafico: 0
filas: 17
columnas: 13
Valor grafico: 0
filas: 17
columnas: 14
Valor grafico: 0
filas: 17
columnas: 15
Valor grafico: 0
filas: 18
columnas: 0
Valor grafico: 0
filas: 18
columnas: 1
Valor grafico: 0
filas: 18
columnas: 2
Valor grafico: 0
filas: 18
columnas: 3
Valor grafico: 0
filas: 18
columnas: 4
Valor grafico: 0
filas: 18
columnas: 5
Valor grafico: 0
filas: 18
columnas: 6
Valor grafico: 0
filas: 18
columnas: 7
Valor grafico: 0
filas: 18
columnas: 8
Valor grafico: 0
filas: 18
columnas: 9
Valor grafico: 0
filas: 18
columnas: 10
Valor grafico: 0
filas: 18
columnas: 11
Valor grafico: 0
filas: 18
columnas: 12
Valor grafico: 0
filas: 18
columnas: 13
Valor grafico: 0
filas: 18
columnas: 14
Valor grafico: 0
filas: 18
columnas: 15
Valor grafico: 0
filas: 19
columnas: 0
Valor grafico: 0
filas: 19
columnas: 1
Valor grafico: 0
filas: 19
columnas: 2
Valor grafico: 0
filas: 19
columnas: 3
Valor grafico: 0
filas: 19
columnas: 4
Valor grafico: 0
filas: 19
columnas: 5
Valor grafico: 0
filas: 19
columnas: 6
Valor grafico: 0
filas: 19
columnas: 7
Valor grafico: 0
filas: 19
columnas: 8
Valor grafico: 0
filas: 19
columnas: 9
Valor grafico: 0
filas: 19
columnas: 10
Valor grafico: 0
filas: 19
columnas: 11
Valor grafico: 0
filas: 19
columnas: 12
Valor grafico: 0
filas: 19
columnas: 13
Valor grafico: 0
filas: 19
columnas: 14
Valor grafico: 0
filas: 19
columnas: 15
Valor grafico: 0
filas: 20
columnas: 0
Valor grafico: 0
filas: 20
columnas: 1
Valor grafico: 0
filas: 20
columnas: 2
Valor grafico: 0
filas: 20
columnas: 3
Valor grafico: 0
filas: 20
columnas: 4
Valor grafico: 0
filas: 20
columnas: 5
Valor grafico: 0
filas: 20
columnas: 6
Valor grafico: 0
filas: 20
columnas: 7
Valor grafico: 0
filas: 20
columnas: 8
Valor grafico: 0
filas: 20
columnas: 9
Valor grafico: 0
filas: 20
columnas: 10
Valor grafico: 0
filas: 20
columnas: 11
Valor grafico: 0
filas: 20
columnas: 12
Valor grafico: 0
filas: 20
columnas: 13
Valor grafico: 0
filas: 20
columnas: 14
Valor grafico: 0
filas: 20
columnas: 15