Título: Ayuda Publicado por: yeza en 30 Enero 2023, 20:31 pm Bueno, para empezar, escribo esto porque es que ya no se que hacer, soy estudiante y ya se me echa el tiempo encima, así que me gustaría solicitar su ayuda.
A ver, tengo que hacer algo como esto: Turno 1: Lucha entre Tal (Vida=150 Armadura=30) y Cuál (Vida=200 Armadura=60) Tal saca 106 y le quita 46 de vida a Cuál Cuál saca 69 y le quita 42 de vida a Tal Lucha entre Tal1 (Vida=150 Armadura=50) y Cuál1 (Vida=220 Armadura=50) Tal1 saca 76 y le quita 26 de vida a Cuál1 Cuál1 saca 78 y le quita 33 de vida a Tal1 Lucha entre Tal2 (Vida=100 Armadura=60) y Cuál2 (Vida=120 Armadura=30) Tal2 saca 99 y le quita 69 de vida a Cuál2 Cuál2 saca 90 y le quita 30 de vida a Tal2 Lucha entre Tal3 (Vida=300 Armadura=30) y Cuál3(Vida=100 Armadura=30) Tal3 saca 55 y le quita 25 de vida a Cuál3 Cuál3 saca 20 y le quita 0 de vida a Tal3 Turno 2: Lucha entre Tal (Vida=108 Armadura=30) y Cuál(Vida=154 Armadura=60) Tal saca 91 y le quita 31 de vida a Cuál Cuál saca 81 y le quita 54 de vida a Tal Lucha entre Tal1 (Vida=117 Armadura=50) y Cuál1 (Vida=194 Armadura=50) Tal1 saca 50 y le quita 0 de vida a Cuál1 Cuál1 saca 18 y le quita 0 de vida a Tal1 Lucha entre Tal2 (Vida=70 Armadura=60) y Cuál2 (Vida=51 Armadura=30) Tal2 saca 93 y le quita 63 de vida a Cuál2 Cuál2 saca 36 y le quita 0 de vida a Tal2 Hasta ahí diría que todo muy bien, considerando que tengo 5 heroes contra 4 bestias, lo que no consigo hacer es que vayan rotando cuando uno muere, si alguien puede decirme como podría hacerlo, o quieren ver lo que llevo de código, por favor no duden en responder a éste mensaje. Título: Re: Ayuda Publicado por: BloodSharp en 30 Enero 2023, 21:51 pm si alguien puede decirme como podría hacerlo, o quieren ver lo que llevo de código, por favor no duden en responder a éste mensaje. Bienvenido al foro, en este foro se resuelven y ayudan a las personas en base a lo que muestres lo que tengas ya hecho y se tratará de ayudar en base a tu código. B# Título: Re: Ayuda Publicado por: Tachikomaia en 30 Enero 2023, 23:20 pm No sé si entenderé el código, pero me interesa.
A ver, parece que hay 4 peleas al mismo tiempo, todas 1 vs 1. El daño en principio parece ser al azar, salido de un dado o algo así y reducido por la armadura, que no se va rompiendo (sí ocurre en Doom 95). Pero algunas cuentas parecen mal hechas o no entiendo cómo reduce. Citar Lucha entre Tal (Vida=150 Armadura=30) y Cuál (Vida=200 Armadura=60) Normalmente la armadura resta o divide al daño.Tal saca 106 y le quita 46 de vida a Cuál Cuál saca 69 y le quita 42 de vida a Tal Daño a Cual = 106-su A(60) = 46 Ok Daño a Tal = 69-su A(30) = 42 ¿¿¿??? Citar Lucha entre Tal1 (Vida=150 Armadura=50) y Cuál1 (Vida=220 Armadura=50) Daño a Cual1 = 76-50 = 26 OkTal1 saca 76 y le quita 26 de vida a Cuál1 Cuál1 saca 78 y le quita 33 de vida a Tal1 Daño a Tal1 = 78-50 = 33 ¿¿¿??? ¿La armadura de los Tales funciona distinto o qué? Tampoco parece muy bueno llamarles Cuales y Tales, hubieras dicho por ejemplo Hs (Héroes) y Ms (Monstruos). Citar Hasta ahí diría que todo muy bien Ok, pero ojo con los resultados negativos, si A es mayor que el daño.Citar considerando que tengo 5 heroes contra 4 bestias ¿Y por qué Tal4 no atacó? ¿es una especie de Coliseo, con reglas? ¿o es que en tu juego existe la regla de que un personaje no puede ser atacado por más de 1 personaje? Por ejemplo en Final Fantasy Tactics, con armas de alcance 1 sólo pueden atacar a 1 personaje hasta 4, uno de frente, otro por la espalda y 1 por cada costado.Citar lo que no consigo hacer es que vayan rotando cuando uno muere Eso tiene varias interpretaciones. Por ejemplo si muere H1 ¿quieres que H2 pelee en su lugar, y que H3 pelee contra quien peleaba H2, y que H4 pelee contra quien peleaba H3? ¿o simplemente que el H que estaba observando entre en lugar del caído? ¿y si no hay H disponible el M se quedará mirando sin atacar? Poco tiene de M si hace eso. Dime que irá a comer humanos o algo así, sino esos H parecen villanos.Debes crear variables Aliado1 = "Heroe1" y otras así y las modificas cuando te apetezca. En el lenguaje que sé se usa eval pero hace tiempo que no lo toco, así en el aire no sabría decirte, a ver. Código Algo así, puede que esté mal :laugh: Luego haces lo propio con los monstruos. Capaz que te da un error, que un mismo personaje esté en 2 lugares al mismo tiempo, tendría que testearlo, no sé. Título: Re: Ayuda Publicado por: yeza en 31 Enero 2023, 19:32 pm A ver, intentaré ejemplificar lo que tengo lo mejor que pueda:
Código: public abstract class Heroe extends Personaje { Primero tengo el constructor que uso para crear los personajes, luego está el método que marca lo que saca un heroe. Luego guardé dichas tiradas en en array, porque si no no consigo que se sinconicen con el metodo principal, el que imprime las tiradas. Y por último, el método de ataque, cada personaje tiene el suyo, más o menos de éste estilo: Código: int n = 0; Luego, aparte de crear los personajes, tengo un array para guardarlos, tipo ejército: Código: Heroe[] ejercitoHeroes= {heroe1, heroe2, heroe3, heroe4}; Ya puse en el código que en caso de que una bestia muera, se debe añadir el heroe5 al array, el problema son los métodos de ataque. El método de arriba por ejemplo apunta a la bestia número 1, la idea es que al morir una bestia los héroes vayan rotando, del 1 al 0, del 0 al uno, etc. No sé si me he explicado bien. Título: Re: Ayuda Publicado por: Locura_23 en 31 Enero 2023, 20:09 pm Si queres que vayan rotando a medida que mueren podes utilizar una fila como estructura de datos o una lista enlazada pienso. Cada vez que cae uno, se añade al final.
Título: Re: Ayuda Publicado por: yeza en 31 Enero 2023, 20:27 pm El problema es que tengo esta clase, que contiene el método principal:
Código: public class Batalla2 { Y este fragmento de código: Código: if(ejercitoHeroes[h]==null) { Hace que me roten los nombres, los métodos de ataque me siguen apuntando a la misma bestia, y no sé como conseguir que se actualicen. |