Esta es una pregunta, llamemosla, de estilo.
?Cu?l es la forma m?s conveniente de guardar datos en una estructura bidimensional?
Les cuento: estoy haciendo un juego y para guardar los objetos que existen en el juego estoy ocupando un arreglo (array seg?n su nombre en ingl?s) bidimensional con una estructura algo as? como
[n,0]=nombre (cadena)
[n,1]=tipo de objeto (entero)
[n,2]=variable modificadora (entero)
[n,3]=precio de venta del objeto (entero)
[n,4]=sprite del objeto (entero)
[n,5]=descripci?n del objeto (cadena)
donde n es el id del objeto, entonces cuando se hace referencia al item 15, [15,0] ser? el nombre del objeto, [15,3] su precio y [15,5] su descripci?n.
(En caso de que surga la duda, no. Lo hace un script por mi. Yo le paso lo datos como argumentos y el script asigna los valores. O si no me volver?a loco.)
Esta forma funciona bien en la pr?ctica, pero me temo que no es la forma correcta de hacerlo. He pensado en cambiarme a una cuadr?cula (grid seg?n su nombre en ingl?s) pero me pregunto si vale la pena.
El juego que estoy haciendo aspira a ser algo bastante grande (He tenido varios problemas con las rooms, pero ese es material para otro tema) y en estos casos hay que velar por la memoria. ?Es significativo el cambio en el rendimiento al almacenar valores en una cuadr?cula en lugar de hacerlo en un arreglo?
He pensado, tambi?n, en hacerlo de alg?n modo unidimensional, algo as? como [id del objeto]="nombre, tipo objeto, precio, descripcion, modificador" en una sola cadena y algun subsistema que interprete la cadena, pero me temo que eso puede llegar a ser a?n menos pr?ctico.
Hago esta pregunta porque ?sta semana estoy en planes de reestructurar el motor en su mayor parte. Tengo un desastre en el script que controla los di?logos, en el que crea a los personajes y al equipo, y un mont?n de c?digo que puede ser optimizado. Con ?ste tema me surge la duda, y prefer? preguntar.
Entonces ?Hay alguna forma eficiente y poco dolorosa de almacenar de forma ordenada todos estos valores? ?Es preferible un arreglo o una cuadr?cula para estos casos de datos que no van a variar mayormente a lo largo del juego? ?Hay impacto en el rendimiento del juego con un sistema u otro?
Saludos :)

Yo hago exactamente lo mismo XD.
Yo lo dejar?a as?. Usar un array unidimensional o una grilla no creo que mejore nada, la memoria usada es la misma. Mejor no complicarse. Adem?s, en caso de que s? se ahorre memoria usando otra forma, la diferencia ser?a despreciable, seguramente, y m?s todav?a ahora que es dif?cil encontrar a alguien con menos de 1GB de RAM.
Vim.

Cita de: Wadk en Agosto 26, 2010, 02:29:55 AM
...es dif?cil encontrar a alguien con menos de 1GB de RAM.

Yo tengo ni la mitad de eso. :'(
       

Cita de: Hackware en Agosto 26, 2010, 08:30:24 PM
Cita de: Wadk en Agosto 26, 2010, 02:29:55 AM
...es dif?cil encontrar a alguien con menos de 1GB de RAM.

Yo tengo ni la mitad de eso. :'(
?No...? ?Seguro...? XD
De todas formas, ese no es el punto.
Vim.

Pues s?, pero tener una computadora flojita es una ventaja al momento de probar tus juegos porque sabes que si corren sin ralentizarse puedes estar seguro que funcionar?n de igual modo en computadoras m?s potentes. ;D

Pero bueno, ese no es el punto as? que dejemos el tema hasta aqu?. :P