feat(ch 5): examples & ex added

This commit is contained in:
Rafa Muñoz
2024-12-03 09:41:07 +01:00
parent 6d5b6d56d5
commit ccd2fc934d
7 changed files with 433 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
package tutorialJava.capitulo5.ejercicios.bloque01_ArrayPersonas;
public class Persona {
private String nombre;
private String apellidos;
private String dni;
private String direccion;
private String telefono;
public Persona() {
}
public Persona(String nombre, String apellidos, String dni, String direccion, String telefono) {
super();
this.nombre = nombre;
this.apellidos = apellidos;
this.dni = dni;
this.direccion = direccion;
this.telefono = telefono;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getDni() {
return dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
@Override
public String toString() {
return "Persona [nombre=" + nombre + ", apellidos=" + apellidos + ", dni=" + dni + ", direccion=" + direccion
+ ", telefono=" + telefono + "]";
}
}

View File

@@ -0,0 +1,63 @@
package tutorialJava.capitulo5.ejercicios.bloque01_ArrayPersonas;
import java.util.Scanner;
public class Principal {
private static Persona personas[] = new Persona[3];
public static void main(String[] args) {
int opcion = 0;
Scanner sc = new Scanner(System.in);
do {
opcion = muestraMenu();
switch (opcion) {
case 1:
for (int i = 0; i < personas.length; i++) {
personas[i] = new Persona();
System.out.println("Introduzca nombre de persona");
personas[i].setNombre(sc.nextLine());
System.out.println("Introduzca apellidos de persona");
personas[i].setApellidos(sc.nextLine());
System.out.println("Introduzca dni de persona");
personas[i].setDni(sc.nextLine());
System.out.println("Introduzca dirección de persona");
personas[i].setDireccion(sc.nextLine());
System.out.println("Introduzca telefono de persona");
personas[i].setTelefono(sc.nextLine());
}
break;
case 2:
for (int i = 0; i < personas.length; i++) {
System.out.println(personas[i].toString());
}
break;
}
} while (opcion != 0);
}
/*
*
*/
public static int muestraMenu() {
Scanner sc = new Scanner(System.in);
System.out.println("\n\nMenú" +
"\n0.- Salir" +
"\n1.- Introducir datos" +
"\n2.- Visualizar datos" +
"\n\tIntroduzca su opción: ");
return Integer.parseInt(sc.nextLine());
}
}

View File

@@ -0,0 +1,15 @@
package tutorialJava.capitulo5.independenceDayConHerencia;
import tutorialJava.Utils;
public class Malvado extends Personaje {
public Malvado() {
super();
}
public Malvado(String nombre) {
super(nombre);
}
}

View File

@@ -0,0 +1,110 @@
package tutorialJava.capitulo5.invasionTierra;
import tutorialJava.Utils;
public class CampoBatalla {
private String nombre;
private Humano[] humanos = new Humano[20];
private Malvado[] malvados = new Malvado[20];
/**
*
*/
public CampoBatalla() {
// Inicializo el array de humanos, al ultimo humano le duplico el valor de puntos de vida
for (int i = 0; i < humanos.length; i++) {
humanos[i] = new Humano();
humanos[i].setNombre("Humano-" + i);
}
Humano ultimoHumano = humanos[humanos.length - 1];
ultimoHumano.setPuntosVida(ultimoHumano.getPuntosVida() * 2);
// humanos[humanos.length - 1].setPuntosVida(humanos[humanos.length - 1 ].getPuntosVida() * 2);
// Inicializo el array de Malvados
for (int i = 0; i < malvados.length; i++) {
malvados[i] = new Malvado();
malvados[i].setNombre("Malvado-" + i);
}
Malvado ultimoMalvado = malvados[malvados.length - 1];
ultimoMalvado.setPuntosVida(ultimoMalvado.getPuntosVida() * 2);
}
/**
*
*/
public void mezclaHumanos() {
for (int i = 0; i < humanos.length; i++) {
int indiceAlAzar1 = Utils.obtenerNumeroAzar(0, humanos.length - 1);
int indiceAlAzar2 = Utils.obtenerNumeroAzar(0, humanos.length - 1);
Humano aux = humanos[indiceAlAzar1];
humanos[indiceAlAzar1] = humanos[indiceAlAzar2];
humanos[indiceAlAzar2] = aux;
}
}
/**
*
*/
public void mezclaMalvados() {
for (int i = 0; i < malvados.length; i++) {
int indiceAlAzar1 = Utils.obtenerNumeroAzar(0, malvados.length - 1);
int indiceAlAzar2 = Utils.obtenerNumeroAzar(0, malvados.length - 1);
Malvado aux = malvados[indiceAlAzar1];
malvados[indiceAlAzar1] = malvados[indiceAlAzar2];
malvados[indiceAlAzar2] = aux;
}
}
/**
*
* @return
*/
public Humano getPrimerHumanoVivo() {
for (int i = 0; i < humanos.length; i++) {
if (humanos[i].isVivo() == true) {
return humanos[i];
}
}
return null;
}
public Malvado getPrimerMalvadoVivo() {
for (int i = 0; i < malvados.length; i++) {
if (malvados[i].isVivo() == true) {
return malvados[i];
}
}
return null;
}
public void muestraEstadoActual() {
for (int i = 0; i < humanos.length; i++) {
System.out.print(humanos[i] + " - ");
}
System.out.println();
for (int i = 0; i < malvados.length; i++) {
System.out.print(malvados[i] + " - ");
}
System.out.println("\n");
}
}

View File

@@ -0,0 +1,51 @@
package tutorialJava.capitulo5.invasionTierra;
import tutorialJava.Utils;
public class Humano {
private String nombre;
private int puntosVida;
private boolean vivo;
public Humano () {
puntosVida = Utils.obtenerNumeroAzar(50, 100);
vivo = true;
}
public void recibirDisparo() {
puntosVida -= Utils.obtenerNumeroAzar(5, 25);
if (puntosVida <= 0) {
vivo = false;
puntosVida = 0;
}
}
public String getNombre() {
return nombre;
}
public void setNombre(String newNombre) {
nombre = newNombre;
}
public int getPuntosVida () {
return puntosVida;
}
public void setPuntosVida(int newPuntosVida ) {
puntosVida = newPuntosVida;
}
public boolean isVivo() {
return vivo;
}
public void setVivo(boolean newVivo) {
vivo = newVivo;
}
public String toString() {
return nombre + ":" + puntosVida + ":" + vivo;
}
}

View File

@@ -0,0 +1,50 @@
package tutorialJava.capitulo5.invasionTierra;
import tutorialJava.Utils;
public class Malvado {
private String nombre;
private int puntosVida;
private boolean vivo;
public Malvado() {
puntosVida = Utils.obtenerNumeroAzar(50, 100);
vivo = true;
}
public void recibirDisparo() {
puntosVida -= Utils.obtenerNumeroAzar(5, 25);
if (puntosVida <= 0) {
vivo = false;
puntosVida = 0;
}
}
public String getNombre() {
return nombre;
}
public void setNombre(String newNombre) {
nombre = newNombre;
}
public int getPuntosVida () {
return puntosVida;
}
public void setPuntosVida(int newPuntosVida ) {
puntosVida = newPuntosVida;
}
public boolean isVivo() {
return vivo;
}
public void setVivo(boolean newVivo) {
vivo = newVivo;
}
public String toString() {
return nombre + ":" + puntosVida + ":" + vivo;
}
}

View File

@@ -0,0 +1,62 @@
package tutorialJava.capitulo5.invasionTierra;
import java.util.Scanner;
import tutorialJava.Utils;
public class Principal {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
CampoBatalla campo = new CampoBatalla();
campo.mezclaHumanos();
campo.mezclaMalvados();
campo.muestraEstadoActual();
do {
// Disparar sobre el primera malvado. Necesito que haya
// un humano vivo
if (campo.getPrimerHumanoVivo() != null) {
campo.getPrimerMalvadoVivo().recibirDisparo();
}
// Antes de disparar sobre un humano, debo comprobar que existe
// al menos un malvado vivo
if (campo.getPrimerMalvadoVivo() != null) {
campo.getPrimerHumanoVivo().recibirDisparo();
}
campo.muestraEstadoActual();
// sc.nextLine();
} while (campo.getPrimerHumanoVivo() != null &&
campo.getPrimerMalvadoVivo() != null);
// Muestro el ganador
if (campo.getPrimerHumanoVivo() != null) {
System.out.println("\nHan ganado los humanos");
}
else {
if (campo.getPrimerMalvadoVivo() != null) {
System.out.println("\nHan ganado los malvados");
}
else {
System.out.println("\nEmpate");
}
}
}
}