Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Giaan46

Páginas: [1]
1
Hola que tal ?? estoy haciendo el proyecto final del master que estoy haciendo en java y tengo problemas para implementar la parte grafica, ya tengo el codigo casi terminado, lo que me falta es implementar los personajes en el Jframe del fondo a medida que se van creando, si alguien me podria dar una mano estare muy agradecido, dejo mi proyecto completo aver que les parece y si me dan tambien una critica sobre el desarrollo tambien sera bienvenida. desde ya muchas gracias !


Código: [Seleccionar]
package Game.tokio.Personajes;



import javax.swing.*;


public abstract class Personaje {

    private String nombre;
    private int puntosVida;
    private int resistenciaArmadura;
    private ImageIcon imagen;

    public Personaje(String nombre, int puntosVida, int resistenciaArmadura) {
        this.nombre = nombre;
        this.puntosVida = puntosVida;
        this.resistenciaArmadura = resistenciaArmadura;
        this.imagen = imagen;
    }

    public String getNombre() {
        return nombre;
    }


    public  int getVida() {
        if(puntosVida < 0){
            return 0;
        }
        return puntosVida;
    }

    public void setVida(int vida) {
        this.puntosVida = vida;
    }

    public int getResistenciaArmadura() {
        return resistenciaArmadura;
    }


    public abstract int atacar (Personaje enemigo);

    public int recibirAtaque(int ataque) {
       if(ataque >= resistenciaArmadura){
          return ataque - resistenciaArmadura;

       }else if (ataque < resistenciaArmadura){
           return 0;
       }else if(puntosVida == 0){
           return 0;
       }
       return ataque - resistenciaArmadura;
    }
    public abstract String mensaje();
    @Override
    public boolean equals(Object obj){
        if(obj instanceof Personaje){
            Personaje personaje2 = (Personaje) obj;
            return nombre.equals(personaje2.getNombre()); // si los nombres coinsiden retorna true
        }
        else return false;

    }
    public ImageIcon getImagen(){
        return imagen;
    }


        @Override
        public String toString () {
            return getNombre() + "( Vida= " + getVida() + " Armadura =" + getResistenciaArmadura() + ")";
        }



}

Código: [Seleccionar]
package Game.tokio;

import Game.tokio.Personajes.*;
import java.util.ArrayList;


public class Ejercito {

    public ArrayList<Personaje> personajes;

    public Ejercito() {
        personajes = new ArrayList<Personaje>();

    }

    public void addPersonaje(Personaje personaje) {
        // añadimos un personaje
        personajes.add(personaje);
    }

    public Personaje getPersonaje(int posicion) {
        try {
            // retornamos un personaje en la posicion
            return personajes.get(posicion);
        } catch (Exception e) {
            // si no hay personajes en esa posicion
            System.out.println("no hay personajes ");
            return null;
        }

    }
    public ArrayList<Personaje> getPersonajes(){
        return personajes;
    }
}


Código: [Seleccionar]
package Game.tokio;


import Game.tokio.Personajes.Bestias;
import Game.tokio.Personajes.Heroes;

import javax.swing.*;


public class Batalla {

    // metodo por consola
    public static void batallar(Ejercito heroes, Ejercito bestias) {

        int turno = 0;
        do {
            for (int i = 0; i < bestias.personajes.size(); i++) {
                // generamos un for para que cada vez que la lista fue recorrida incremente el valor asignado para turno asi podemos imprimir por consola que turno es el que se esta jugando
                for (int j = 0; j == i; j++) {
                    turno++;
                    System.out.println("Turno  " + turno + ':');
                }
                Heroes heroe = (Heroes) heroes.getPersonaje(i);
                Bestias bestia = (Bestias) bestias.getPersonaje(i);
                // guardamos en variables los resultados de ataques , daño y de vida para que se actualice a medida que pasan los turnos..
                int atacah = heroe.atacar(bestia);
                int atacab = bestia.atacar(heroe);
                int dañoh = heroe.recibirAtaque(atacab);
                int dañob = bestia.recibirAtaque(atacah);
                int vidah = heroe.getVida();
                int vidab = bestia.getVida();
                //esquema de lucha consola :
                System.out.println("Lucha entre " + heroe.getNombre()
                        + " (Vida= " + vidah + " Armadura= " + heroe.getResistenciaArmadura() + ") y "
                        + bestia.getNombre() + " (Vida= " + vidab + " Armadura= " + bestia.getResistenciaArmadura() + ")");
                System.out.println(heroe.getNombre() + " saca " + atacah + " y le quita " + dañob +
                        " de vida a " + bestia.getNombre());
                System.out.println(bestia.getNombre() + " saca " + atacab + " y le quita " + dañoh +
                        " de vida a " + heroe.getNombre());
                // actualizamos los valores del daño causado en esta ronda
                bestia.setVida(bestia.getVida() - dañob);
                heroe.setVida(heroe.getVida() - dañoh);
                // hacemos un if con la consicion de que personaje tenga vida y sino se elimina de la lista
                if (heroes.getPersonaje(i).getVida() <= 0) {
                    System.out.println("¡Muere " + heroe.mensaje() + heroes.personajes.get(i).getNombre() + '!');
                    heroes.personajes.remove(heroes.getPersonaje(i));
                } else if (bestias.getPersonaje(i).getVida() <= 0) {
                    System.out.println("¡Muere " + bestia.mensaje() + bestias.personajes.get(i).getNombre() + '!');
                    bestias.personajes.remove(bestias.getPersonaje(i));

                }
            }
        }
        while (!bestias.personajes.isEmpty());
        // luego hacemos otro if para mostrar por pantalla el ganador del combate
        if (bestias.personajes.isEmpty()) {
            System.out.println("¡¡VICTORIA DE LOS HÉROES!!");
        } else if (heroes.personajes.isEmpty()) {
            System.out.println("¡¡VICTORIA DE LAS BESTIAS!!");
        }

    }

    public static void batallarTextArea(Ejercito heroes, Ejercito bestias, JTextArea textArea) {
        int turno = 0;
        do {
            for (int i = 0; i < bestias.personajes.size(); i++) {
                for (int j = 0; j == i; j++) {
                    turno++;
                    String mensajeTruno = "Turno " + turno + ": \n";
                    textArea.append(mensajeTruno);

                }
                // obtenemos los personajes que van a luchar
                Heroes heroe = (Heroes) heroes.getPersonaje(i);
                Bestias bestia = (Bestias) bestias.getPersonaje(i);

                // guardamos los resultados de los ataques y el daño recibido para cada personaje
                int atacah = heroe.atacar(bestia);
                int atacab = bestia.atacar(heroe);
                int dañoh = heroe.recibirAtaque(atacab);
                int dañob = bestia.recibirAtaque(atacah);
                int vidah = heroe.getVida();
                int vidab = bestia.getVida();

                // Esquema de la lucha
                String mensajeLucha = "Lucha entre " + heroe.getNombre()
                        + " (Vida= " + vidah + " Armadura= " + heroe.getResistenciaArmadura() + ") y "
                        + bestia.getNombre() + " (Vida= " + vidab + " Armadura= " + bestia.getResistenciaArmadura() + ")\n";
                String mensajeAtaqueHeroe = heroe.getNombre() + " saca " + atacah + " y le quita " + dañob +
                        " de vida a " + bestia.getNombre() + "\n";
                String mensajeAtaqueBestia = bestia.getNombre() + " saca " + atacab + " y le quita " + dañoh +
                        " de vida a " + heroe.getNombre() + "\n";

                // Agregamos los mensajes al JTextArea
                textArea.append(mensajeLucha);
                textArea.append(mensajeAtaqueHeroe);
                textArea.append(mensajeAtaqueBestia);

                // Actualizamos los valores del daño causado en esta ronda
                bestia.setVida(bestia.getVida() - dañob);
                heroe.setVida(heroe.getVida() - dañoh);

                // Si alguno de los personajes tiene vida menor o igual a 0, lo eliminamos de la lista de personajes
                if (heroes.getPersonaje(i).getVida() <= 0) {
                    String mensajeMuerte = "¡Muere " + heroe.mensaje() + heroes.personajes.get(i).getNombre() + "!\n";
                    textArea.append(mensajeMuerte);
                    heroes.personajes.remove(heroes.getPersonaje(i));
                } else if (bestias.getPersonaje(i).getVida() <= 0) {
                    String mensajeMuerte = "¡Muere " + bestia.mensaje() + bestias.personajes.get(i).getNombre() + "!\n";
                    textArea.append(mensajeMuerte);
                    bestias.personajes.remove(bestias.getPersonaje(i));
                }
            }
        } while (!bestias.personajes.isEmpty());

        // luego hacemos otro if para mostrar por pantalla el ganador del combate
        if (bestias.personajes.isEmpty()) {
           String mensajeGanaH = "¡¡VICTORIA DE LOS HÉROES!!";
           textArea.append(mensajeGanaH);
        } else if (heroes.personajes.isEmpty()) {
            String mensajeGanaB = "¡¡VICTORIA DE LAS BESTIAS!!";
            textArea.append(mensajeGanaB);
        }
    }
}


Código: [Seleccionar]
package Game.tokio.Personajes;

import java.util.Random;

public class Bestias extends Personaje {


    public Bestias(String nombre, int vida, int resistencia) {
        super(nombre, vida, resistencia);
    }

    @Override
    public int atacar(Personaje enemigo) {
        // se lanza un dado de 0 a 90 al azar
        Random dado = new Random();
        int dado1 = dado.nextInt(91);
        return dado1;
    }

    @Override
    public String mensaje() {
        return mensaje();
    }

}



Código: [Seleccionar]
package Game.tokio.Personajes;

import java.util.Random;

public class Heroes extends Personaje {


    public Heroes(String nombre, int vida, int resistencia) {
        super(nombre, vida, resistencia);
    }

    @Override
    public int atacar(Personaje enemigo){
        // el ataque será el mejor lanzamiento entre 2 dados de 0 a 100
        Random dado = new Random();
        int dado1 = dado.nextInt(101);
        int dado2 = dado.nextInt(101);

        return Math.max(dado1,dado2);
    }
    @Override
    public String mensaje() { return mensaje(); }

}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".