mirror of
https://gitlab.com/tutorial-java-rafa-munoz/tutorial-java-2024-25/tutorialjava2024-25.git
synced 2025-11-09 18:03:09 +01:00
feat(ch 5): examples & exercises added
This commit is contained in:
60
src/tutorialJava/capitulo5/cromosBaloncesto/Cromo.java
Normal file
60
src/tutorialJava/capitulo5/cromosBaloncesto/Cromo.java
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package tutorialJava.capitulo5.cromosBaloncesto;
|
||||||
|
|
||||||
|
public class Cromo {
|
||||||
|
// Propiedades
|
||||||
|
protected String nombreJugador;
|
||||||
|
protected int puntuacion;
|
||||||
|
protected String equipo;
|
||||||
|
|
||||||
|
public Cromo() {
|
||||||
|
this.nombreJugador = "Jugador por defecto";
|
||||||
|
this.puntuacion = 0;
|
||||||
|
this.equipo = "Sin equipo";
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cromo(String nombreJugador, int puntuacion, String equipo) {
|
||||||
|
this.nombreJugador = nombreJugador;
|
||||||
|
this.puntuacion = puntuacion;
|
||||||
|
this.equipo = equipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void agregaMinimaPuntuacion() {
|
||||||
|
this.puntuacion++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getNombreJugador() {
|
||||||
|
return nombreJugador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombreJugador(String nombreJugador) {
|
||||||
|
this.nombreJugador = nombreJugador;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPuntuacion() {
|
||||||
|
return puntuacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPuntuacion(int puntuacion) {
|
||||||
|
this.puntuacion = puntuacion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEquipo() {
|
||||||
|
return equipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEquipo(String equipo) {
|
||||||
|
this.equipo = equipo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Cromo [nombreJugador=" + nombreJugador + ", puntuacion=" + puntuacion + ", equipo=" + equipo + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package tutorialJava.capitulo5.cromosBaloncesto;
|
||||||
|
|
||||||
|
public class CromoBaloncesto extends Cromo {
|
||||||
|
|
||||||
|
private int altura;
|
||||||
|
|
||||||
|
|
||||||
|
public CromoBaloncesto() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public CromoBaloncesto(String nombreJugador, int puntuacion, String equipo) {
|
||||||
|
super(nombreJugador, puntuacion, equipo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void agregaMinimaPuntuacion() {
|
||||||
|
this.setPuntuacion(this.getPuntuacion() + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "CromoBaloncesto [getNombreJugador()=" + getNombreJugador() + ", getPuntuacion()=" + getPuntuacion()
|
||||||
|
+ ", getEquipo()=" + getEquipo() + ", altura=" + altura + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11
src/tutorialJava/capitulo5/cromosBaloncesto/CromoFutbol.java
Normal file
11
src/tutorialJava/capitulo5/cromosBaloncesto/CromoFutbol.java
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package tutorialJava.capitulo5.cromosBaloncesto;
|
||||||
|
|
||||||
|
public class CromoFutbol extends Cromo {
|
||||||
|
|
||||||
|
public CromoFutbol() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public CromoFutbol(String nombreJugador, int puntuacion, String equipo) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
16
src/tutorialJava/capitulo5/cromosBaloncesto/Principal.java
Normal file
16
src/tutorialJava/capitulo5/cromosBaloncesto/Principal.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package tutorialJava.capitulo5.cromosBaloncesto;
|
||||||
|
|
||||||
|
public class Principal {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Cromo cromoSimple = new Cromo("Iniesta", 1000, "España");
|
||||||
|
System.out.println("Id del cromo: " + cromoSimple.hashCode());
|
||||||
|
System.out.println(cromoSimple.toString());
|
||||||
|
|
||||||
|
|
||||||
|
CromoBaloncesto cromo1 = new CromoBaloncesto("Ricky", 100, "Barcelona");
|
||||||
|
System.out.println("Id del cromo: " + cromo1.hashCode());
|
||||||
|
System.out.println(cromo1.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
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");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user