Normalmente ocurre algo como esto:
lo normal es algo como
-----------------------------------------------------------------
¡(tu carta causó un efecto)!
Es el turno del rival
¡(su carta causó un efecto)!
Es tu turno
Has obtenido a (carta)
-----------------------------------------------------------------
Al usar una carta, todo eso se borra. Pero hay una carta que deja una línea en blanco antes de borrar. Cuando se obtiene, da 2 opciones, se ejecuta la elegida y luego (si se sobrevive) se ejecuta otro código.
Código
function MarioDK1 () { Ataque = MarioDKAt; Mensaje = ""; MarioDK(); } function MarioDK2 () { HumanoHP--; if (HumanoHP > 0) { Ataque = MarioDKAt+1; Mensaje = "¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!"; MarioDK(); } else { Mensaje = "¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!"; HumanoPierde(); } } function MarioDK () { if (User == "Humano") { IAHP = IAHP-Ataque; Mensaje = Mensaje+"\n¡Mario de Donkey Kong dañó al rival!"; if (IAHP > 0) { TerminandoTurnoHumano(); } else { HumanoGana(); } } else { // No viene al caso. } }
El efecto de otras cartas cuando el usuario es humano sustituye el mensaje por otro.
Pero en el caso de Mario, la función MarioDK, no puede hacer eso porque hay una de las opciones que da un mensaje que no debe borrarse. Creo que no me explico, a ver, se obtiene la carta:
Si se presiona izquierda:
Debe ocurrir MarioDK1, luego MarioDK y el mensaje debe ser:
¡Mario de Donkey Kong dañó al rival!
Sino si se presiona derecha:
Debe ocurrir MarioDK2.
Si se sobrevive, debe ocurrir MarioDK y el mensaje en pantalla debe quedar así:
---------------------------------------------------------------------------------------------------------
¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!
¡Mario de Donkey Kong dañó al rival!
---------------------------------------------------------------------------------------------------------
si no se sobrevive, no debe ocurrir MarioDK y el mensaje debe ser:
¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!
En otras palabras, al ejecutarse MarioDK...
Si se ejecutó MarioDK1, el mensaje debe borrar todo lo anterior y ser:
¡Mario de Donkey Kong dañó al rival!
sino si se ejecutó MarioDK2, el mensaje debe conservar el que se dió en esa función, quedando:
¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!
¡Mario de Donkey Kong dañó al rival!
No quiero usar un if, creo que hay otra solución, quizá poniendo /n al final en un caso en vez de al inicio ¿cómo sería?
Otra cosa que se me acaba de ocurrir es poner los mensajes necesarios en MarioDK1 y MarioDK2, ninguno en MarioDK, voy a probarlo, pero me interesa cómo sería de otra forma.
Código
function MarioDK1 () { Ataque = MarioDKAt; Mensaje = "¡Mario de Donkey Kong dañó al rival!"; MarioDK(); } function MarioDK2 () { HumanoHP--; if (HumanoHP > 0) { Ataque = MarioDKAt+1; Mensaje = "¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!\n¡Mario de Donkey Kong dañó al rival!"; MarioDK(); } else { Mensaje = "¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!"; HumanoPierde(); } } function MarioDK () { if (User == "Humano") { IAHP = IAHP-Ataque; if (IAHP > 0) { TerminandoTurnoHumano(); } else { HumanoGana(); } } else { // No viene al caso. } }





Autor



En línea
