Comunidad de diseño web y desarrollo en internet online

Convertir una cadena en variable

Citar            
MensajeEscrito el 17 Jul 2006 11:54 am
Bueno, no sé cómo explicarlo para que se entienda bien...

El caso es que estoy haciendo un juego en Flash que en parte, es parecido al de hundir la flota, bueno, algo así.

El caso es que en una parte del juego aparece una cuadrícula de 10x10, ordenadas con letras y números desde la A1 hasta la casilla J10. Y tengo un código que es algo así:

Código :

if (seleccionado == "A1") {
    casilla_A1 = "valor"
    // Aquí ahora un chorro de códigos y los de MDM Zinc para enviar variables al otro PC
}


Me gustaría saber si hay alguna forma de hacer que detrás del nombre de la variable casilla_ se pueda poner automáticamente el valor de la variable seleccionado, ya que tal y como lo tengo hecho ahora, tengo que copiar ese mismo código 100 veces (para todas las casillas) pero con diferentes valores, y cuando Flash tiene que pasar por ese fotograma se ralentiza muchísimo.

Es decir, busco algo como ésto:

Código :

if (seleccionado == "A1") {
    casilla_+seleccionado = "valor"
    // Aquí ahora un chorro de códigos y los de MDM Zinc para enviar variables al otro PC
}


Pero ese casilla_+seleccionado, no se puede hacer... Seguramente los de Macromedia se las habrán ingeniado para hacerlo más difícil :twisted:


Si eso no se puede hacer, me gustaría saber alguna solución para que Flash no se ralentice al tener que ejecutar tanto código. Si copio ese código 100 veces para que funcione en todas las casillas, se queda en exactamente 7190 líneas... (no exagero) :crap:


Gracias, espero que tengan alguna solución

Por JACB

38 de clabLevel



 

Málaga

firefox
Citar            
MensajeEscrito el 17 Jul 2006 12:02 pm
Yo haria un array en vez de tener una variable para cada casilla.

Por _berni_

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 17 Jul 2006 01:55 pm
Sí, al principio lo hice con un Array, pero era un lío porque son 100 elementos, así que opté por las variables. Además, el código era muy similar porque también tiene que comprobar el valor de cada elemento uno por uno y ejecutar las acciones oportunas.

Creo que lo más sencillo sería poder incluir en el nombre de la variable el contenido de la otra, de esa forma el código entero se quedaría en unas 400 líneas. Pero no sé como hacer eso.


Berni, gracias por la respuesta. Si sabes cómo se podría hacer con un Array, por favor explícalo. Nunca he trabajado con Arrays y no sé hasta qué punto me podrían ayudar, igual cuando lo intenté hice algo mal y por eso desistí de hacerlo...

Un saludo.

Por JACB

38 de clabLevel



 

Málaga

firefox
Citar            
MensajeEscrito el 18 Jul 2006 01:55 pm
Yo creo que la mejor forma seria con un array bidimensional. Es como si fuera un array de arrays. De esta forma puedes referirte a cada elemento indicando la fila y la columna. Te dejo dos links en que se explica como hacer arrays bidimensionales:

http://www.cristalab.com/foros/viewtopic.php?p=55678&sid=3365bc74ff932a6f41b53485ccb9784f

http://www.flashlatino.com/forums/viewtopic.php?t=6450&view=previous&sid=7b2a5b91afc50e92298d3ac8f286817a

Trabajando con un array bidimensional no hace falta comprobar todas las casillas para ver si coinciden con la seleccionada, simplemente pones

tablero[fila][columna]="valor";

Por cierto, creo que te iria bien aprender programacion estructurada y modular.

Un saludo.

Por _berni_

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 18 Jul 2006 03:38 pm
Ok, gracias.

Bueno, creo que al final me tocará hacerlo con Arrays. La verdad es que no sabía eso de Array bidimensional, y creo que me va a ser de mucha utilidad eso de [fila][columna] :lol:

Por cierto, ya he descubierto cómo se hace lo de añadir una cadena al nombre de otra variable, la verdad es que no había caído en ésto, y eso que es fácil:


Código :

set ("_root.casilla_" + seleccionado, "valor")


// Es decir, si la variable seleccionado tiene el valor "A1", el nombre de la variable será casilla_A1, y en ella se almacenará el "valor".


La verdad es que era fácil después de todo :wink: , pero creo que lo haré por Arrays ahora :P


Bueno, _berni_, muchas gracias, eso de hacerlo por Arrays me va a ser MUY útil ^^ .

Un saludo.

Por JACB

38 de clabLevel



 

Málaga

firefox

 

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