Anuncios Google

Como pasar valores en tablas [Luadev][Solucionado]

Hola a todos. Vuelvo de nuevo al vicioso mundo de la programación con una duda.

Mi duda es sencilla:

¿Como puedo pasar los valores de una tabla a otra sin usar el bucle for ni ir elemento por elemento?

 

EJ:

 

a={"scenebeta","hello world"}
 
b={}
 
quiero que b tome el valor de a

 

Salu2tes


1/2 Minuto despúes:

Acabo de solucionarlo xD.

Tan solo hay que hacer:

b=a

Perdón por las molestias

 

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Chimecho

mmm

Con eso tienes un ligero problema que te puede causar quebraderos de cabeza, cuando haces b=a, en realidad no estás copiando el contenido, sino apuntando b al contenido de a, es decir, que si cambias algo de a, cambiará en b.

Un ejemplo:

a={"hola","mundo"} -- declaras a
b=a -- b apunta a a
a[1]="chao" -- cambias el primer valor de a
print(b[1]) -- imprimes el primer valor de b

Eso, muestra "chao", en lugar de "hola" a como se espera.

 

Saludos!



PSP FAT [5.00 M33-6] [6.60 ME] [Hard Moded] / Nintendo Wii [4.1U] [cIOS Hermes] [D2X cIOS] / iPhone 3G [4.2.1] [BB 05.13.04] [redsn0w] / iPod Touch 4 [6.1] [evasi0n]

07/05/10: Tuve el placer de llamarle con todo derecho "N00B" a molotovi xDDD

Recuerda: Sé el intérprete -_-

Imagen de jorge_97

By Jorge_97

Gracias por la aclaración Chimecho. Sí es cierto muestra "chao"...

Pero lo que yo hago es trabajar sobre la copia de la tabla, no sé si me explico:

 

a={"hola","mundo"}
 
b=a
 
 
--Yo modifico la tabla "b" por lo que no hay ningún problema

 

Bueno un saludo a todos y gracias ;)


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Seguro? Por que este

Seguro? Por que este code...

a={1,2,3,4,5}
  b=a
   b[2]=55
   screen.print(a[2].."\n"..b[2])
  screen.flip()
controls.waitforkey()

Imprime dos veces 55 (aunque esté trabajando con la copia). Si quieres estar seguro, mejor copia elemento por elemento (a no ser que tengas 1 millón de elementos que copiar, no se va alentar el code :P).

Imagen de jorge_97

By Jorge_97

¡Ajá ya lo descubrí!

Bueno pues resulta que tienes razón Rober. Haber yo no "notaba el cambio" porque usaba dos tablas pero en verdad modifico las dos.

Volviendo un poco atras... lo que yo que yo queria era mostrar un mapa. Y que se mostrara una capa (Es decir el suelo) y encima de esa otra capa que empezara con los mismos elementos de la tabla anterior.

Es decir:

tabla1={
{"a","b"},
{"c","h"},
}
 
plantilla=tabla1

 

Y entonces lo que yo hacía era usar la tabla 1 para mostrar siempre el mismo terreno y la tabla "plantilla" para mostrar otra capa con otros objetos diferentes pero basados en los mismos elementos.

if tabla1[y][x]=="b" then imagen1:blit() end
 
if plantilla[y][x]=="b" then imagen2:blit() end

 

Pero claro, entonces, ¿por qué no notaba yo el cambio?

Sencillo para no alentar el code lo que hice fue mostrar la primera capa y capturar la imagen para blitearla (No es lo mismo mostrar una imagen que mostrar 9*15 ---> Tamaño de la tabla)

 

Bueno pues eso es todo. Ahora ya puedo ahorrarme una tabla jaja. Un saludo amigos y muchas Gracias

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de m.rr

¿Enonces como se hace para

¿Enonces como se hace para que no cambie?

Tendrías que pasar los

Tendrías que pasar los valores de una tabla a otra de uno en uno (con un ciclo for es lo más sencillo).

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.