From 3729e8d9f838143da8ce17e926cea4b692dd9ecd Mon Sep 17 00:00:00 2001 From: Ramon Bernabe Munoz Navarrete Date: Mon, 10 Jun 2024 22:29:54 -0400 Subject: [PATCH] M4 Arreglos y Archivos D26 - Ejercicio Guiado Juego + Animales --- Vinceto/src/D26/Animales/Animal.java | 22 ++++++++++ Vinceto/src/D26/Animales/Carnivoro.java | 14 +++++++ Vinceto/src/D26/Animales/Leon.java | 4 ++ Vinceto/src/D26/Animales/Main.java | 19 +++++++++ Vinceto/src/D26/Animales/Tigre.java | 4 ++ Vinceto/src/D26/Interfaces/Jugador.java | 6 +++ Vinceto/src/D26/Interfaces/Personaje.java | 6 +++ Vinceto/src/D26/Personajes/Enemigo.java | 23 +++++++++++ Vinceto/src/D26/Personajes/Main.java | 32 +++++++++++++++ Vinceto/src/D26/Personajes/Protagonista.java | 42 ++++++++++++++++++++ 10 files changed, 172 insertions(+) create mode 100644 Vinceto/src/D26/Animales/Animal.java create mode 100644 Vinceto/src/D26/Animales/Carnivoro.java create mode 100644 Vinceto/src/D26/Animales/Leon.java create mode 100644 Vinceto/src/D26/Animales/Main.java create mode 100644 Vinceto/src/D26/Animales/Tigre.java create mode 100644 Vinceto/src/D26/Interfaces/Jugador.java create mode 100644 Vinceto/src/D26/Interfaces/Personaje.java create mode 100644 Vinceto/src/D26/Personajes/Enemigo.java create mode 100644 Vinceto/src/D26/Personajes/Main.java create mode 100644 Vinceto/src/D26/Personajes/Protagonista.java diff --git a/Vinceto/src/D26/Animales/Animal.java b/Vinceto/src/D26/Animales/Animal.java new file mode 100644 index 0000000..5e5fc12 --- /dev/null +++ b/Vinceto/src/D26/Animales/Animal.java @@ -0,0 +1,22 @@ +package D26.Animales; + +public abstract class Animal { + private int altura; + private int peso; + + public int getAltura() { + return altura; + } + + public void setAltura(int altura) { + this.altura = altura; + } + + public int getPeso() { + return peso; + } + + public void setPeso(int peso) { + this.peso = peso; + } +} diff --git a/Vinceto/src/D26/Animales/Carnivoro.java b/Vinceto/src/D26/Animales/Carnivoro.java new file mode 100644 index 0000000..30b6712 --- /dev/null +++ b/Vinceto/src/D26/Animales/Carnivoro.java @@ -0,0 +1,14 @@ +package D26.Animales; + +import java.util.List; +public abstract class Carnivoro extends Animal { + List carnesFavoritas; + + public List getCarnesFavoritas() { + return carnesFavoritas; + } + + public void setCarnesFavoritas(List carnesFavoritas) { + this.carnesFavoritas = carnesFavoritas; + } +} diff --git a/Vinceto/src/D26/Animales/Leon.java b/Vinceto/src/D26/Animales/Leon.java new file mode 100644 index 0000000..edfb68b --- /dev/null +++ b/Vinceto/src/D26/Animales/Leon.java @@ -0,0 +1,4 @@ +package D26.Animales; + +public class Leon extends Carnivoro { +} diff --git a/Vinceto/src/D26/Animales/Main.java b/Vinceto/src/D26/Animales/Main.java new file mode 100644 index 0000000..a465917 --- /dev/null +++ b/Vinceto/src/D26/Animales/Main.java @@ -0,0 +1,19 @@ +package D26.Animales; + +import java.util.ArrayList; + +public class Main { + public static void main(String[] args) { + Leon leon = new Leon(); + Tigre tigre = new Tigre(); + ArrayList listaAnimales = new ArrayList<>(); + ArrayList listaCarnivoros = new ArrayList<>(); + listaAnimales.add(leon); + listaCarnivoros.add(tigre); + listaAnimales.add(leon); + listaCarnivoros.add(tigre); + System.out.println(listaAnimales); + System.out.println(listaCarnivoros); + } +} + diff --git a/Vinceto/src/D26/Animales/Tigre.java b/Vinceto/src/D26/Animales/Tigre.java new file mode 100644 index 0000000..a4cf50c --- /dev/null +++ b/Vinceto/src/D26/Animales/Tigre.java @@ -0,0 +1,4 @@ +package D26.Animales; + +public class Tigre extends Carnivoro { +} diff --git a/Vinceto/src/D26/Interfaces/Jugador.java b/Vinceto/src/D26/Interfaces/Jugador.java new file mode 100644 index 0000000..c42df77 --- /dev/null +++ b/Vinceto/src/D26/Interfaces/Jugador.java @@ -0,0 +1,6 @@ +package D26.Interfaces; + +public interface Jugador { + void Saltar(); + void ejecutarAccion(String accion); +} diff --git a/Vinceto/src/D26/Interfaces/Personaje.java b/Vinceto/src/D26/Interfaces/Personaje.java new file mode 100644 index 0000000..eb21d4f --- /dev/null +++ b/Vinceto/src/D26/Interfaces/Personaje.java @@ -0,0 +1,6 @@ +package D26.Interfaces; + +public interface Personaje { + void mover(int x); + int getX(); +} diff --git a/Vinceto/src/D26/Personajes/Enemigo.java b/Vinceto/src/D26/Personajes/Enemigo.java new file mode 100644 index 0000000..c04c9c3 --- /dev/null +++ b/Vinceto/src/D26/Personajes/Enemigo.java @@ -0,0 +1,23 @@ +package D26.Personajes; + +import D26.Interfaces.Personaje; + +public class Enemigo implements Personaje { + private int xActual; + + public Enemigo() { + this.xActual = 0; + } + + @Override + public void mover(int x) { + while (xActual < x) { + xActual++; + } + } + + @Override + public int getX() { + return xActual; + } +} diff --git a/Vinceto/src/D26/Personajes/Main.java b/Vinceto/src/D26/Personajes/Main.java new file mode 100644 index 0000000..d2f2bcd --- /dev/null +++ b/Vinceto/src/D26/Personajes/Main.java @@ -0,0 +1,32 @@ +package D26.Personajes; + +public class Main { + public static void main(String[] args) { + // Crear una instancia de Protagonista + Protagonista protagonista = new Protagonista(); + System.out.println("Probando Protagonista..."); + + // Mover el protagonista + protagonista.mover(3); + System.out.println("Protagonista se ha movido a X: " + protagonista.getX() + ", Y: " + protagonista.getY()); + + // Saltar con el protagonista + protagonista.Saltar(); + System.out.println("Protagonista ha saltado a X: " + protagonista.getX() + ", Y: " + protagonista.getY()); + + // Ejecutar acciones con el protagonista + protagonista.ejecutarAccion("saltar"); + System.out.println("Protagonista ejecuta acción saltar a X: " + protagonista.getX() + ", Y: " + protagonista.getY()); + + protagonista.ejecutarAccion("avanzar"); + System.out.println("Protagonista ejecuta acción avanzar a X: " + protagonista.getX() + ", Y: " + protagonista.getY()); + + // Crear una instancia de Enemigo + Enemigo enemigo = new Enemigo(); + System.out.println("Probando Enemigo..."); + + // Mover el enemigo + enemigo.mover(5); + System.out.println("Enemigo se ha movido a X: " + enemigo.getX()); + } +} diff --git a/Vinceto/src/D26/Personajes/Protagonista.java b/Vinceto/src/D26/Personajes/Protagonista.java new file mode 100644 index 0000000..f5ddb2b --- /dev/null +++ b/Vinceto/src/D26/Personajes/Protagonista.java @@ -0,0 +1,42 @@ +package D26.Personajes; + +import D26.Interfaces.Jugador; +import D26.Interfaces.Personaje; + +public class Protagonista implements Personaje, Jugador { + private int xActual = 1; + private int yActual = 1; + + @Override + public void mover(int x) { + xActual = xActual + x; + } + + @Override + public void Saltar() { + while (yActual < 5) { + yActual++; + } + while (yActual > 1) { + yActual--; + } + } + + @Override + public void ejecutarAccion(String accion) { + if (accion.equals("saltar") && yActual == 1) { + Saltar(); + } else if (accion.equals("avanzar")) { + mover(1); + } + } + + @Override + public int getX() { + return xActual; + } + + public int getY() { + return yActual; + } +} \ No newline at end of file