¿Es aceptable el código para ocultar el puntero del mouse pero no es aceptable el código para que vuelva a aparecer?
Algo no me cuadra...
Algo no me cuadra...
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Serapis en 2 Septiembre 2021, 23:31 PMNo sé cómo notaste lo de fatiga mental, pero acertaste, me sentí hecho polvo cuando lo terminé xD
Deberías aprender a generar una tabla de estados, para simplificar la lógica y sobretodo para poder escribir el código de corrido y sin tanta fatiga mental y tiempo que le dedicas.
CitarPor otro lado no es buena idea hacer abreviaturas del tipoLas uso porque así leo y comprendo más rápido. Me sale naturalmente, además HP es muy conocido en el mundo de los videojuegos.
Citarademás cuando pasen los años, y vuelvas al código seguirá estando claro, si no tendrás que tirar de comentarios cuando el propio nombre usado es autoentendible.Puede ser, pero por ahora me resulta más cómodo así. A sabiendas de que el código es para resolver batallas tipo RPG (role play game, juego de rol) no olvidaré lo que es "En", y menos lo que es HP, tanto así que esos comentarios que citaste los escribí para los lectores no para mí. Pero si les "molesta" leer abreviaciones, para la próxima escribiré todo completo.
CitarEn la medida que tengas que usar 2 o 3 docenas de variables ya tendrás ahí un código espagueti enmarañado difícil de leer y más de seguir y modificar.Probablemente, por ahora son 2 enemigos con 1 stat (estadística, medida de una característica), pero la idea es agregar más enemigos y stats.
Escena 1
actions for fotograma 1
// "En" es una abreviación de Enemigo.
// "HP" es una abreviación de Health Points, o puntos de vida.
// Acciones posibles de la IA.
function Action1 () {
if (0<En1HP) {
// Si el En1 está ok, se lo ataca.
En1HP = En1HP-1;
trace ("IA attacks with 1 to Enemy1! Queda con "+En1HP);
} else {
// sino, ver si el En2 está ok.
Action = 3;
trace ("En1 is ko; ver En2");
eval("Action"+Action)();
}
}
function Action2 () {
if (0<En1HP) {
// Si el En1 está ok, se lo ataca.
En1HP = En1HP-2;
trace ("IA attacks with 2 to Enemy1! Queda con "+En1HP);
} else {
// sino, ver si el En2 está ok.
Action = 3;
trace ("En1 is ko; ver En2");
eval("Action"+Action)();
}
}
function Action3 () {
if (0<En2HP) {
// Si el En2 está ok, se lo ataca.
En2HP = En2HP-1;
trace ("IA attacks with 1 to Enemy2! Queda con "+En2HP);
} else {
// sino, load unsolved sit.
Action = 4;
}
}
function Action4 () {
if (0<En2HP) {
// Si el En2 está ok, se lo ataca.
En2HP = En2HP-2;
trace ("IA attacks with 2 to Enemy2! Queda con "+En2HP);
} else {
// sino, load unsolved sit.
Action = 4;
}
}
// Nro de acción que se usará en el fotograma 2.
Action = 1;
// Situación inicial.
IAHP = 10;
BaseEn1HP = 5;
BaseEn2HP = 5;
// Guardar Situación inicial.
SitID = "S"+BaseEn1HP+"_"+BaseEn2HP;
set (SitID+"En1HP", BaseEn1HP);
set (SitID+"En2HP", BaseEn2HP);
set (SitID+"Action", "Ninguno");
// ID de la Unsolved situación que será analizada (luego de sumarle 1).
U = 0;
// Cantidad de Unsolved situaciones.
Us = 0;
actions for fotograma 2
// Sit reseteada
En1HP = BaseEn1HP;
En2HP = BaseEn2HP;
trace ("Sitreset; queda en "+En1HP+" y "+En2HP);
// IA attacks
eval("Action"+Action)();
if (En1HP<=0 && En2HP<=0) {
// Todo Enemigo fue derrotado: Solución, iniciar mostrar Lista de Acciones usadas.
trace ("Solución hallada, ir al F4");
List = Action;
gotoAndPlay (4);
} else {
if (0<En1HP) {
// Si En1 está ok, él attacks IA.
trace ("En1 attacks IA");
}
if (0<IAHP) {
// Si IA está ok, ver si En2 está ok.
if (0<En2HP) {
// Si En2 está ok, él attacks IA.
trace ("En2 attacks IA");
}
}
if (0<IAHP) {
// Si IA está ok, ver si la situación está anotada.
if (eval("S"+En1HP+"_"+En2HP+"En1HP") == undefined) {
// No. Anotarla.
trace ("Nueva Sit hallada; grabando.");
SitID = "S"+En1HP+"_"+En2HP;
set (SitID+"En1HP", BaseEn1HP);
set (SitID+"En2HP", BaseEn2HP);
set (SitID+"Action", Action);
Us = Us+1;
SitID = "U"+Us;
set (SitID+"En1HP", En1HP);
set (SitID+"En2HP", En2HP);
}
} else {
// Game over, ver si hay más acciones posibles.
trace ("Gameover; ver si hay otras acciones");
}
}
actions for fotograma 3
// La situación existe. ¿Modificar candidato es posible?
if (Action<4) {
// Modificación de candidato.
Action = Action+1;
gotoAndPlay (2);
} else if (U<Us) {
// Usar Unsolveds.
U = U+1;
BaseEn1HP = eval("U"+U+"En1HP");
BaseEn2HP = eval("U"+U+"En2HP");
Action = 1;
gotoAndPlay (2);
} else {
// No hay Solución.
List = "No hay sol";
stop ();
}
actions for fotograma 5
SitID = eval("S"+BaseEn1HP+"_"+BaseEn2HP+"Action");
BaseEn1HP = eval("S"+BaseEn1HP+"_"+BaseEn2HP+"En1HP");
BaseEn2HP = eval("S"+BaseEn1HP+"_"+BaseEn2HP+"En2HP");
if (SitID != "Ninguno") {
List = SitID+" "+List;
gotoAndPlay (4);
} else {
stop ();
}