elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Evitar línea en blanco.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar línea en blanco.  (Leído 217 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.676


Hackentifiko!


Ver Perfil
Evitar línea en blanco.
« en: Ayer a las 06:57 »

Problema tontuelo se supone.

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
  1. function MarioDK1 () {
  2. Ataque = MarioDKAt;
  3. Mensaje = "";
  4. MarioDK();
  5. }
  6. function MarioDK2 () {
  7. HumanoHP--;
  8. if (HumanoHP > 0) {
  9. Ataque = MarioDKAt+1;
  10. Mensaje = "¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!";
  11. MarioDK();
  12. } else {
  13. Mensaje = "¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!";
  14. HumanoPierde();
  15. }
  16. }
  17. function MarioDK () {
  18. if (User == "Humano") {
  19. IAHP = IAHP-Ataque;
  20. Mensaje = Mensaje+"\n¡Mario de Donkey Kong dañó al rival!";
  21. if (IAHP > 0) {
  22. TerminandoTurnoHumano();
  23. } else {
  24. HumanoGana();
  25. }
  26. } else {
  27. // No viene al caso.
  28. }
  29. }

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
  1. function MarioDK1 () {
  2. Ataque = MarioDKAt;
  3. Mensaje = "¡Mario de Donkey Kong dañó al rival!";
  4. MarioDK();
  5. }
  6. function MarioDK2 () {
  7. HumanoHP--;
  8. if (HumanoHP > 0) {
  9. Ataque = MarioDKAt+1;
  10. Mensaje = "¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo!\n¡Mario de Donkey Kong dañó al rival!";
  11. MarioDK();
  12. } else {
  13. Mensaje = "¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!";
  14. HumanoPierde();
  15. }
  16. }
  17. function MarioDK () {
  18. if (User == "Humano") {
  19. IAHP = IAHP-Ataque;
  20. if (IAHP > 0) {
  21. TerminandoTurnoHumano();
  22. } else {
  23. HumanoGana();
  24. }
  25. } else {
  26. // No viene al caso.
  27. }
  28. }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como evitar el salto de linea despues de READ
GNU/Linux
dato000 2 4,650 Último mensaje 20 Junio 2012, 09:23 am
por snhd6
Evitar salto de linea
Programación C/C++
Posyo 1 3,955 Último mensaje 17 Enero 2012, 22:21 pm
por El_Java
evitar salto de linea al crear archivo de texto
Programación Visual Basic
rapbyone 6 5,569 Último mensaje 21 Noviembre 2014, 19:32 pm
por Miseryk
agregar linea en blanco a un dropdownlist
.NET (C#, VB.NET, ASP)
d91 0 2,373 Último mensaje 24 Septiembre 2015, 14:35 pm
por d91
Detectar linea en blanco en C
Programación C/C++
Dani001 7 8,380 Último mensaje 7 Marzo 2019, 12:08 pm
por dijsktra
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines