diff --git a/src/tutorialJava/Utils.java b/src/tutorialJava/Utils.java index e82da78..642c9f4 100644 --- a/src/tutorialJava/Utils.java +++ b/src/tutorialJava/Utils.java @@ -53,6 +53,30 @@ public class Utils { return n; } + /** + * Pide un número entero al usuario + * @param mensaje String que va a mostrarse en consola para pedir el número + * @return Número entero introducido por el usuario + */ + public static float pideNumeroFloat (String mensaje) { + float n = 0; + boolean esNumeroCorrecto; + Scanner sc = new Scanner(System.in); + + do { + esNumeroCorrecto = false; + try { + System.out.println(mensaje); + n = Float.parseFloat(sc.nextLine()); + esNumeroCorrecto = true; + } + catch (Exception e) { + System.out.println("No ha introducido un número"); + } + } while (esNumeroCorrecto == false); + + return n; + } /** diff --git a/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque09/Ejercicio02_findAndReplace.java b/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque09/Ejercicio02_findAndReplace.java index 01c3ce6..65ce7f3 100644 --- a/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque09/Ejercicio02_findAndReplace.java +++ b/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque09/Ejercicio02_findAndReplace.java @@ -23,7 +23,6 @@ public class Ejercicio02_findAndReplace { * @return */ public static void findAndReplace (int b[], int buscado, int reemplazo) { - StringBuffer sb = new StringBuffer(); for (int i = 0; i < b.length; i++) { if (b[i] == buscado) { diff --git a/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque10/Ejercicio04_MatrizConBordeYCeroAlAzar.java b/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque10/Ejercicio04_MatrizConBordeYCeroAlAzar.java index 1d8f525..eaece5a 100644 --- a/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque10/Ejercicio04_MatrizConBordeYCeroAlAzar.java +++ b/src/tutorialJava/capitulo4_Arrays/ejercicios/bloque10/Ejercicio04_MatrizConBordeYCeroAlAzar.java @@ -4,13 +4,14 @@ public class Ejercicio04_MatrizConBordeYCeroAlAzar { public static void main(String[] args) { // Declaración de variables - char matriz[][] = new char[20][10]; + char matriz[][] = new char[10][20]; int posicionAzarFila, posicionAzarColumna; // La relleno de espacios en blanco for (int i = 0; i < matriz.length; i++) { for (int j = 0; j < matriz[i].length; j++) { - if (i == 0 || i == (matriz.length - 1) || j == 0 || j == (matriz[0].length - 1)) { + if (i == 0 || i == (matriz.length - 1) || + j == 0 || j == (matriz[0].length - 1)) { matriz[i][j] = '*'; } else { diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java new file mode 100644 index 0000000..e4ac98d --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Antiguedad.java @@ -0,0 +1,50 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_ColeccionAntiguedades; + +public class Antiguedad { + + private int anio; + private String origen; + private float precio; + + public Antiguedad() { + } + + public Antiguedad(int anio, String origen, float precio) { + super(); + this.anio = anio; + this.origen = origen; + this.precio = precio; + } + + public int getAnio() { + return anio; + } + + public void setAnio(int anio) { + this.anio = anio; + } + + public String getOrigen() { + return origen; + } + + public void setOrigen(String origen) { + this.origen = origen; + } + + public float getPrecio() { + return precio; + } + + public void setPrecio(float precio) { + this.precio = precio; + } + + @Override + public String toString() { + return "Antiguedad [anio=" + anio + ", origen=" + origen + ", precio=" + precio + "]"; + } + + + +} diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java new file mode 100644 index 0000000..83875bd --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_ColeccionAntiguedades/Joya.java @@ -0,0 +1,28 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_ColeccionAntiguedades; + +public class Joya extends Antiguedad { + + private String material; + + public Joya() { + } + + public Joya(int anio, String origen, float precio) { + super(anio, origen, precio); + } + + public String getMaterial() { + return material; + } + + public void setMaterial(String material) { + this.material = material; + } + + @Override + public String toString() { + return super.toString() + " material: " + this.material; + } + + +} diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java new file mode 100644 index 0000000..abdcdb6 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtNoPerecedero.java @@ -0,0 +1,14 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; + +public class ArtNoPerecedero extends Articulo { + + public ArtNoPerecedero() { + // TODO Auto-generated constructor stub + } + + public ArtNoPerecedero(String codigo, String nombre, float precio) { + super(codigo, nombre, precio); + // TODO Auto-generated constructor stub + } + +} diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java new file mode 100644 index 0000000..a4a9673 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/ArtPerecedero.java @@ -0,0 +1,29 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; + +public class ArtPerecedero extends Articulo { + + private String fechaCaducidad; + + public ArtPerecedero() { + } + + public ArtPerecedero(String codigo, String nombre, float precio) { + super(codigo, nombre, precio); + } + + public String getFechaCaducidad() { + return fechaCaducidad; + } + + public void setFechaCaducidad(String fechaCaducidad) { + this.fechaCaducidad = fechaCaducidad; + } + + @Override + public String toString() { + return "ArtPerecedero [fechaCaducidad=" + fechaCaducidad + ", getCodigo()=" + getCodigo() + ", getNombre()=" + + getNombre() + ", getPrecio()=" + getPrecio() + "]"; + } + + +} diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java new file mode 100644 index 0000000..4af69e5 --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Articulo.java @@ -0,0 +1,48 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; + +public class Articulo { + + private String codigo; + private String nombre; + private float precio; + + public Articulo() { + } + + public Articulo(String codigo, String nombre, float precio) { + super(); + this.codigo = codigo; + this.nombre = nombre; + this.precio = precio; + } + + public String getCodigo() { + return codigo; + } + + public void setCodigo(String codigo) { + this.codigo = codigo; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public float getPrecio() { + return precio; + } + + public void setPrecio(float precio) { + this.precio = precio; + } + + @Override + public String toString() { + return "Articulo [codigo=" + codigo + ", nombre=" + nombre + ", precio=" + precio + "]"; + } + +} diff --git a/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java new file mode 100644 index 0000000..11f987d --- /dev/null +++ b/src/tutorialJava/capitulo5/ejercicios/bloque02_articulosComestibles/Tienda.java @@ -0,0 +1,48 @@ +package tutorialJava.capitulo5.ejercicios.bloque02_articulosComestibles; + +import tutorialJava.Utils; + +public class Tienda { + + public Tienda() { + } + + public static void main(String args[]) { + Articulo articulos[] = new Articulo[4]; + + for (int i = 0; i < articulos.length; i++) { + if (i < 2) { + System.out.println("Introduzca datos de Art perecedero: "); + ArtPerecedero artPer = new ArtPerecedero(); + artPer.setCodigo(Utils. + obtenerCadenaConDescripcion("Dame código:")); + artPer.setNombre(Utils. + obtenerCadenaConDescripcion("Dame nombre:")); + artPer.setPrecio(Utils. + pideNumeroFloat("Dame precio")); + artPer.setFechaCaducidad(Utils. + obtenerCadenaConDescripcion("Dame fecha caducidad:")); + articulos[i] = artPer; + } + else { + System.out.println("Introduzca datos de Art perecedero: "); + ArtNoPerecedero artNoPer = new ArtNoPerecedero(); + artNoPer.setCodigo(Utils. + obtenerCadenaConDescripcion("Dame código:")); + artNoPer.setNombre(Utils. + obtenerCadenaConDescripcion("Dame nombre:")); + artNoPer.setPrecio(Utils. + pideNumeroFloat("Dame precio")); + articulos[i] = artNoPer; + } + } + + // Muestro los valores + for (int i = 0; i < articulos.length; i++) { + System.out.println(articulos[i].toString()); + } + } +} + + + diff --git a/src/tutorialJava/capitulo5/independenceDayConHerencia/CampoBatalla.java b/src/tutorialJava/capitulo5/independenceDayConHerencia/CampoBatalla.java new file mode 100644 index 0000000..a37e9c1 --- /dev/null +++ b/src/tutorialJava/capitulo5/independenceDayConHerencia/CampoBatalla.java @@ -0,0 +1,161 @@ +package tutorialJava.capitulo5.independenceDayConHerencia; + +import java.util.Arrays; + +import tutorialJava.Utils; + +public class CampoBatalla { + + private String nombre; + private Humano humanos[] = new Humano[20]; + private Malvado malvados[] = new Malvado[20]; + + /** + * + * @param nombre + */ + public CampoBatalla (String nombre) { + this.nombre = nombre; + + for (int i = 0; i < humanos.length; i++) { + humanos[i] = new Humano("H-" + i); + } +// humanos[humanos.length - 1].setPuntosVida( +// humanos[humanos.length - 1].getPuntosVida() * 2); + + Humano ultimoHumano = humanos[humanos.length - 1]; + ultimoHumano.setPuntosVida(ultimoHumano.getPuntosVida() * 2); + + for (int i = 0; i < malvados.length; i++) { + malvados[i] = new Malvado("M-" + i); + } + // Establezco el doble de puntos de vida al último malvado + Malvado ultimoMalvado = malvados[malvados.length - 1]; + ultimoMalvado.setPuntosVida(ultimoMalvado.getPuntosVida() * 2); + } + + + public void mezclaPersonajes (Personaje a[]) { + for (int i = 0; i < a.length; i++) { + int ind1 = Utils.obtenerNumeroAzar(0, a.length - 1); + int ind2 = Utils.obtenerNumeroAzar(0, a.length - 1); + Personaje aux = a[ind1]; + a[ind1] = a[ind2]; + a[ind2] = aux; + } + } + + + + /** + * + */ + public void batalla () { + do { + // Disparo sobre el primer malvado vivo + Malvado m = (Malvado) getPrimerPersonajeVivo(malvados); + m.setPuntosVida(m.getPuntosVida() - + Utils.obtenerNumeroAzar(5, 25)); + if (m.getPuntosVida() <= 0) { + m.setVivo(false); + m.setPuntosVida(0); + } + + // Sólo si queda algún malvado vivo, disparo sobre humano + if (getPrimerPersonajeVivo(malvados) != null) { + // Disparo sobre el primer humano vivo + Humano h = (Humano) getPrimerPersonajeVivo(humanos); + h.setPuntosVida(h.getPuntosVida() - + Utils.obtenerNumeroAzar(5, 25)); + if (h.getPuntosVida() <= 0) { + h.setVivo(false); + h.setPuntosVida(0); + } + } + + // Imprimo campo de batalla + System.out.println(toString()); + System.out.println(); + + } while(getPrimerPersonajeVivo(humanos) != null && + getPrimerPersonajeVivo(malvados) != null); + + // Si llego hasta aquí, un bando no tiene soldados vivos + if (getPrimerPersonajeVivo(humanos) != null) { + System.out.println("Han ganado los humanos"); + } + else { + System.out.println("Han ganado los malvados"); + } + + } + + + public Personaje getPrimerPersonajeVivo(Personaje a[]) { + for (int i = 0; i < a.length; i++) { + if (a[i].isVivo()) { + return a[i]; + } + } + return null; + } + + + + + + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public Humano[] getHumanos() { + return humanos; + } + + public void setHumanos(Humano[] humanos) { + this.humanos = humanos; + } + + public Malvado[] getMalvados() { + return malvados; + } + + public void setMalvados(Malvado[] malvados) { + this.malvados = malvados; + } + + public String toString() { + StringBuffer sb = new StringBuffer("Campo: " + this.nombre); + sb.append("\nHumanos: "); + for (int i = 0; i < humanos.length; i++) { + if (humanos[i].isVivo()) { + sb.append(humanos[i].getNombre() + ":" + + humanos[i].getPuntosVida() + ":" + + humanos[i].isVivo() + " "); + } + } + + sb.append("\nMalvados: "); + for (int i = 0; i < malvados.length; i++) { + if (malvados[i].isVivo()) { + sb.append(malvados[i].getNombre() + ":" + + malvados[i].getPuntosVida() + ":" + + malvados[i].isVivo() + " "); + } + } + + return sb.toString(); + } + + +} + + + + + diff --git a/src/tutorialJava/capitulo5/independenceDayConHerencia/Humano.java b/src/tutorialJava/capitulo5/independenceDayConHerencia/Humano.java new file mode 100644 index 0000000..fef6c7d --- /dev/null +++ b/src/tutorialJava/capitulo5/independenceDayConHerencia/Humano.java @@ -0,0 +1,23 @@ +package tutorialJava.capitulo5.independenceDayConHerencia; + +import tutorialJava.Utils; + +public class Humano extends Personaje { + + public int altura; + + public Humano() { + super(); + } + + public Humano(String nombre) { + super(nombre); + } + + +} + + + + + diff --git a/src/tutorialJava/capitulo5/independenceDayConHerencia/Personaje.java b/src/tutorialJava/capitulo5/independenceDayConHerencia/Personaje.java new file mode 100644 index 0000000..844efb3 --- /dev/null +++ b/src/tutorialJava/capitulo5/independenceDayConHerencia/Personaje.java @@ -0,0 +1,64 @@ +package tutorialJava.capitulo5.independenceDayConHerencia; + +import tutorialJava.Utils; + +public class Personaje { + + private int puntosVida; + private String nombre; + private boolean vivo; + + public Personaje() { + super(); + } + + + + public Personaje(String nombre) { + super(); + this.puntosVida = Utils.obtenerNumeroAzar(50, 100); + this.nombre = nombre; + this.vivo = true; + } + + + + public Personaje(int puntosVida, String nombre, boolean vivo) { + super(); + this.puntosVida = puntosVida; + this.nombre = nombre; + this.vivo = vivo; + } + + public int getPuntosVida() { + return puntosVida; + } + + public void setPuntosVida(int puntosVida) { + this.puntosVida = puntosVida; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public boolean isVivo() { + return vivo; + } + + public void setVivo(boolean vivo) { + this.vivo = vivo; + } + + @Override + public String toString() { + return "Personaje [puntosVida=" + puntosVida + ", nombre=" + nombre + ", vivo=" + vivo + "]"; + } + + + +} diff --git a/src/tutorialJava/capitulo5/independenceDayConHerencia/Principal.java b/src/tutorialJava/capitulo5/independenceDayConHerencia/Principal.java new file mode 100644 index 0000000..c3cf33e --- /dev/null +++ b/src/tutorialJava/capitulo5/independenceDayConHerencia/Principal.java @@ -0,0 +1,25 @@ +package tutorialJava.capitulo5.independenceDayConHerencia; + +import tutorialJava.Utils; + +public class Principal { + + public static void main(String[] args) { + CampoBatalla campo = new CampoBatalla("Rute"); + + campo.mezclaPersonajes(campo.getHumanos()); + campo.mezclaPersonajes(campo.getMalvados()); + System.out.println(campo.toString()); + + campo.batalla(); + + } + +} + + + + + + +