Sólo le veo utilidad si el nombre es generado según variables que desconoces. Por ejemplo si pones una lista de posibles nombres y creas una variable con un nombre al azar de entre ellos, te puede servir. Normalmente se usaría Personaje1Ubicacion por ejemplo, en vez de PablitoUbicacion, pero capaz que en algún caso conviene hacerlo así.
Pero tú llamas a la variable sabiendo el nombre, en este caso no lo sabrías, tendrías que guardarlo en una variable cuando se genere.
Últimamente estoy pensando en representar visualmente los grafos que se producen en mis buscadores de las series más cortas de acciones (puede sonar muy complejo pero sólo lo apliqué en cosas muy simples, y capaz que ni siquiera se llaman así, pero es que fuerza bruta tampoco creo que sea), hace como 1 año que no toco eso pero, si mal no recuerdo se crean variables cuyos nombres describen una situación y el contenido es qué acción se realizó antes de que se produjeran y/o cual era la situación anterior, no me acuerdo, pero, en este caso puede que convenga mostrar el nombre de la variable.
Te busco algún code porque imagino que eso no está bien explicado, pero como digo estoy fuera de práctica así que no esperes gran cosa.
actions for fotograma 1
// Situación inicial.
BaseHP = 10;
Action = 1;
BaseEnHP = 10;
// Guardar Situación inicial.
SitID = "S"+BaseHP+"_"+BaseEnHP;
set (SitID+"HP", BaseHP);
set (SitID+"EnHP", BaseEnHP);
set (SitID+"Action", "Ninguno");
// Variables de Unsolved situaciones.
U = 0;
Us = 0;
actions for fotograma 2
// Reset Situación.
HP = BaseHP;
EnHP = BaseEnHP;
trace ("La sit es: "+HP+"_"+EnHP);
// Aplicación.
trace ("Player attacks with "+Action+"!");
EnHP = EnHP-Action;
trace ("EnHP reducido a: "+EnHP);
// ¿Sol?
if (EnHP<=0) {
// Solución; iniciar mostrar lista.
List = Action;
gotoAndPlay (4);
} else {
// Sino, ambos están OK.
// Efecto.
trace ("Enemy attacks!");
HP = HP-1;
trace ("HP reducido a: "+HP);
if (0<HP) {
// Ambos están OK.
// ¿La situación está anotada?
if (eval("S"+HP+"_"+EnHP+"HP") == undefined) {
// No. Anotarla.
SitID = "S"+HP+"_"+EnHP;
set (SitID+"HP", BaseHP);
set (SitID+"EnHP", BaseEnHP);
set (SitID+"Action", Action);
trace ("Nueva sit anotada: "+SitID);
Us = Us+1;
SitID = "U"+Us;
set (SitID+"HP", HP);
set (SitID+"EnHP", EnHP);
}
// Sino, el enemigo ganó.
}
}
actions for fotograma 3
// La situación existe o el jugador perdió.
// ¿Modificar candidato es posible?
if (Action<3) {
// Modificación de candidato.
Action = Action+2;
gotoAndPlay (2);
} else if (U<Us) {
// Usar Unsolved.
U = U+1;
BaseHP = eval("U"+U+"HP");
BaseEnHP = eval("U"+U+"EnHP");
Action = 1;
gotoAndPlay (2);
} else {
// No hay Solución.
List = "No hay sol";
stop ();
}
actions for fotograma 5
SitID = eval("S"+BaseHP+"_"+BaseEnHP+"Action");
Base2HP = BaseHP;
BaseHP = eval("S"+BaseHP+"_"+BaseEnHP+"HP");
BaseEnHP = eval("S"+Base2HP+"_"+BaseEnHP+"EnHP");
if (SitID != "Ninguno") {
List = SitID+" "+List;
gotoAndPlay (4);
} else {
stop ();
}
}
Con los codes que dicen set aquí
BaseHP = 10;
Action = 1;
BaseEnHP = 10;
// Guardar Situación inicial.
SitID = "S"+BaseHP+"_"+BaseEnHP;
set (SitID+"HP", BaseHP);
set (SitID+"EnHP", BaseEnHP);
set (SitID+"Action", "Ninguno");
Se crean estas variables:
S10_10HP = 10
S10_10EnHP = 10
S10_10Action = "Ninguno"
Si mal no recuerdo significa que la situación anterior a la inicial fue ella misma (lo cual se interpreta como que fue ninguna) y que la acción conque se produjo fue ninguna.
Tendríamos S10_10 en pantalla, indicando cómo era la 1era situación, el inicio del grafo.
// ¿La situación está anotada?
if (eval("S"+HP+"_"+EnHP+"HP") == undefined) {
// No. Anotarla.
SitID = "S"+HP+"_"+EnHP;
set (SitID+"HP", BaseHP);
set (SitID+"EnHP", BaseEnHP);
set (SitID+"Action", Action);
Esto se realiza luego de que los rivales se golpeen y sólo si ambos sobreviven. El ataque usado por la IA que intenta aprender "el camino más corto" (hacia vencer a su rival) fue el que hace 1 punto de daño, el enemigo usa ese ataque siempre, por lo que ahora tenemos:
S9_9HP = 10
S9_9EnHP = 10
S9_9Action = 1
Significa que ahora ambos luchadores tienen 9 HP, antes tenían 10, y la acción usada por la IA fue la 1.
Entonces, el grafo ahora es:
Próximamente se regresa a la situación anterior, y si hay otra acción posible se realiza, la cual es quitar 3 HP en vez de 1, lo que nos da...
3 S10_10 ---> S9_7 | | 1 V S9_9
|
Pero creo que los que saben del tema saben nombrar a las situaciones como les de la gana o no sé bien qué hacen, tenía un libro donde hacían esto pero lo presté y no me lo devolvió el mr.