Código
actions for fotograma 1 // Situación inicial. BaseEnHP = 10; // Guardar Situación inicial. SitID = "S"+BaseEnHP; set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", "Ninguno"); Action = 1; // Variables de Unsolved situaciones. U = 0; Us = 0; actions for fotograma 2 // Reset Situación. Aplicación. EnHP = BaseEnHP-Action; // ¿Sol? if (EnHP<=0) { // Solución; iniciar mostrar lista. List = Action; gotoAndPlay (4); // Sino ¿la situación está anotada? } else if (eval("S"+EnHP+"EnHP") == undefined) { // No. Anotarla. SitID = "S"+EnHP; set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", Action); Us = Us+1; SitID = "U"+Us; set (SitID+"EnHP", EnHP); } actions for fotograma 3 // La situación existe. ¿Modificar candidato es posible? if (Action<2) { // Modificación de candidato. Action = Action+1; gotoAndPlay (2); } else if (U<Us) { // Usar Unsolveds. U = U+1; BaseEnHP = eval("U"+U+"EnHP"); Action = 1; gotoAndPlay (2); } else { // No hay Solución. stop (); } actions for fotograma 5 SitID = eval("S"+BaseEnHP+"Action"); BaseEnHP = eval("S"+BaseEnHP+"EnHP"); if (SitID != "Ninguno") { List = SitID+" "+List; gotoAndPlay (4); } else { stop (); }
Al enemigo le agregué defensa (1; los ataques del jugador son quitar 1HP o 3):
Código
actions for fotograma 1 // Situación inicial. BaseEnHP = 10; EnDf = 1; // Guardar Situación inicial. SitID = "S"+BaseEnHP; set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", "Ninguno"); Action = 1; // Variables de Unsolved situaciones. U = 0; Us = 0; actions for fotograma 2 // Reset Situación. Aplicación. EnHP = BaseEnHP-(Action-EnDf); // Si EnHP aumentó, resetear. if (BaseEnHP < EnHP) { EnHP = BaseEnHP; } // ¿Sol? if (EnHP<=0) { // Solución; iniciar mostrar lista. List = Action; gotoAndPlay (4); // Sino ¿la situación está anotada? } else if (eval("S"+EnHP+"EnHP") == undefined) { // No. Anotarla. SitID = "S"+EnHP; set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", Action); Us = Us+1; SitID = "U"+Us; set (SitID+"EnHP", EnHP); } actions for fotograma 3 // La situación existe. ¿Modificar candidato es posible? if (Action<2) { // Modificación de candidato. Action = Action+1; gotoAndPlay (2); } else if (U<Us) { // Usar Unsolveds. U = U+1; BaseEnHP = eval("U"+U+"EnHP"); Action = 1; gotoAndPlay (2); } else { // No hay Solución. stop (); } actions for fotograma 5 SitID = eval("S"+BaseEnHP+"Action"); BaseEnHP = eval("S"+BaseEnHP+"EnHP"); if (SitID != "Ninguno") { List = SitID+" "+List; gotoAndPlay (4); } else { stop (); }
Agregué HP del jugador:
Código
actions for fotograma 1 // Situación inicial. HP = 10; BaseEnHP = 10; EnDf = 1; // Guardar Situación inicial. SitID = "S"+HP+"_"+BaseEnHP; set (SitID+"HP", HP); set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", "Ninguno"); Action = 1; // Variables de Unsolved situaciones. U = 0; Us = 0; actions for fotograma 2 // Reset Situación. Aplicación. EnHP = BaseEnHP-(Action-EnDf); // Si EnHP aumentó, resetear. if (BaseEnHP<EnHP) { EnHP = BaseEnHP; } // ¿Sol? if (EnHP<=0) { // Solución; iniciar mostrar lista. List = Action; gotoAndPlay (4); // Sino ¿la situación está anotada? } else if (eval("S"+HP+"_"+EnHP+"HP") == undefined) { // No. Anotarla. SitID = "S"+HP+"_"+EnHP; set (SitID+"HP", HP); set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", Action); Us = Us+1; SitID = "U"+Us; set (SitID+"HP", HP); set (SitID+"EnHP", EnHP); } actions for fotograma 3 // La situación existe. ¿Modificar candidato es posible? if (Action<2) { // Modificación de candidato. Action = Action+1; gotoAndPlay (2); } else if (U<Us) { // Usar Unsolveds. U = U+1; HP = eval("U"+U+"HP"); BaseEnHP = eval("U"+U+"EnHP"); Action = 1; gotoAndPlay (2); } else { // No hay Solución. stop (); } actions for fotograma 5 SitID = eval("S"+HP+"_"+BaseEnHP+"Action"); HP = eval("S"+HP+"_"+BaseEnHP+"HP"); BaseEnHP = eval("S"+HP+"_"+BaseEnHP+"EnHP"); if (SitID != "Ninguno") { List = SitID+" "+List; gotoAndPlay (4); } else { stop (); }
---------------------------------------------------------------------------------------------------------
Ahora es cuando se me complicó: El enemigo puede golpear; no funciona (la IA) si él tiene defensa 2 o más.
Código
Escena 1 actions for fotograma 1 // Situación inicial. BaseHP = 10; BaseEnHP = 10; EnDf = 2; // Guardar Situación inicial. SitID = "S"+BaseHP+"_"+BaseEnHP; set (SitID+"HP", BaseHP); set (SitID+"EnHP", BaseEnHP); set (SitID+"Action", "Ninguno"); Action = 1; // 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!"); EnHP = EnHP-(Action-EnDf); // Si EnHP aumentó, resetearlo. if (BaseEnHP<EnHP) { trace ("EnHP aumentó, se resetea: "+BaseEnHP); EnHP = BaseEnHP; } else { trace ("EnHP reducido a: "+EnHP); } // Efecto simultáneo. trace ("Enemy attacks!"); HP = HP-1; // Si HP quedó negativo, pasa a 0. if (HP<0) { trace ("HP quedó negativo, pasa a 0"); HP = 0; } else { trace ("HP reducido a: "+HP); } // ¿Sol? if (0<HP) { if (EnHP<=0) { // Solución; iniciar mostrar lista. List = Action; gotoAndPlay (4); // Sino ¿la situación está anotada? } else 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 ¿la situación está anotada? } else 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); } actions for fotograma 3 // La situación existe. ¿Modificar candidato es posible? if (Action<3) { // Modificación de candidato. Action = Action+2; gotoAndPlay (2); } else if (U<Us) { // Usar Unsolveds. U = U+1; BaseHP = eval("U"+U+"HP"); BaseEnHP = eval("U"+U+"EnHP"); Action = 1; gotoAndPlay (2); } else { // No hay Solución. 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 (); }
¿Cómo debería ser el código? Luego de varios segundos me genera situaciones donde el HP enemigo es negativo.
Gracias.