Skip to content

Commit

Permalink
feat: Agregamos test 09 con la logica de celdas y tablero
Browse files Browse the repository at this point in the history
Co-authored-by: Sebakrag <sebaskrag@gmail.com>
Co-authored-by: agus-germi <agerminario@fi.uba.ar>
Co-authored-by: SairBarreto <gbarreto@fi.uba.ar>
  • Loading branch information
4 people committed Nov 22, 2023
1 parent 1cc3132 commit e3a3714
Show file tree
Hide file tree
Showing 16 changed files with 251 additions and 36 deletions.
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MIT License
giMIT License

Copyright (c) 2020 Martin Picco, Seblaz

Expand Down
25 changes: 24 additions & 1 deletion src/main/java/edu/fiuba/algo3/modelo/Celda.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@
package edu.fiuba.algo3.modelo;

public class Celda {

public abstract class Celda {
protected Celda siguiente;
protected int x;
protected int y;
protected Afectante afectante;

public void afectar(Jugador jugador){
this.afectante.afectar(jugador);
}

public boolean tieneCoordenadas(int x, int y){
return ((this.x == x) && (this.y == y));
}

public Celda celdaSiguiente(){
return this.siguiente;
}

public void setSiguiente(Celda siguiente) {
this.siguiente = siguiente;
}

public abstract boolean esCeldaFinal();
}
1 change: 1 addition & 0 deletions src/main/java/edu/fiuba/algo3/modelo/Equipamiento.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ public abstract class Equipamiento {

public abstract int recibirAtaque();

public abstract boolean equipoCompleto();
}
6 changes: 6 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/Gladiador.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public Gladiador() {
}

// -------------------------------- PUBLICOS -------------------------------- //

public void aumentarEnergiaConSeniority(){
this.energia += this.seniority.aumentarEnergia();
}
Expand Down Expand Up @@ -47,7 +48,12 @@ public void mejorarSeniority(int turnos){

public void recibirEnergia(int energia) { this.aumentarEnergia(energia); }

public boolean totalmenteEquipado(){
return this.equipamiento.equipoCompleto();
}

// -------------------------------- PRIVADOS -------------------------------- //

private void disminuirEnergia(int energia) {
this.energia -= energia;
}
Expand Down
28 changes: 19 additions & 9 deletions src/main/java/edu/fiuba/algo3/modelo/Jugador.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
package edu.fiuba.algo3.modelo;

import javafx.scene.SceneAntialiasing;

import java.util.Random;

public class Jugador {
private Gladiador gladiador;
private int turnos;
private int casillaActual;

//private Casilla casilla;
private Celda celdaActual;

public Jugador(Gladiador gladiador) {
public Jugador(Gladiador gladiador, Celda celdaInicial) {
this.gladiador = gladiador;
this.turnos = 0;
this.casillaActual = 0;
this.celdaActual = celdaInicial;
}

// -------------------------------- PUBLICOS -------------------------------- //
public void jugarTurno() {
int cantidadAAvanzar = this.tirarDado();
this.avanzar(cantidadAAvanzar);
this.celdaActual.afectar(this);
this.turnos++;
this.gladiador.mejorarSeniority(this.turnos);
this.aumentarEnergiaConSeniority();
Expand All @@ -38,8 +36,8 @@ public boolean energiaIgualA(int energia) {
return this.gladiador.energiaIgualA(energia);
}

public boolean estaEnCasilla(int numeroCasilla) {
return (this.casillaActual == numeroCasilla);
public boolean estaEnCelda(int x, int y) {
return (this.celdaActual.tieneCoordenadas(x, y));
}

public void recibirEnergia(int aumentoEnergia) {
Expand All @@ -58,9 +56,21 @@ public void recibirDanio(int danio) {
this.gladiador.recibirDanio(danio);
}

public boolean totalmenteEquipado(){
return this.gladiador.totalmenteEquipado();
}

public void posicionar(Celda celda){
this.celdaActual = celda;
}

// -------------------------------- PRIVADOS -------------------------------- //
private void avanzar(int cantidad) {
this.casillaActual += cantidad;
for (int i = 0; i < cantidad; i++) {
if (!(this.celdaActual.esCeldaFinal())) {
this.celdaActual = this.celdaActual.celdaSiguiente();
}
}
}

private int tirarDado() {
Expand Down
42 changes: 42 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/Tablero.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package edu.fiuba.algo3.modelo;

import edu.fiuba.algo3.modelo.afectantes.Vacio;
import edu.fiuba.algo3.modelo.celdas.CeldaComun;
import edu.fiuba.algo3.modelo.celdas.CeldaFinal;
import edu.fiuba.algo3.modelo.celdas.CeldaInicial;
import java.util.ArrayList;
import java.util.Random;

public class Tablero {
private Celda celdaInicial;
private int tamanio; //
//private ArrayList<Afectante> afectantes;

public Tablero(int cantidadCeldas, CeldaInicial celdaInicial) {
this.tamanio = cantidadCeldas;
this.celdaInicial = celdaInicial;
//this.afectantes = new ArrayList<>();
}

public void armarMapa(){
Afectante afectante = new Vacio(); // Esto deberia ser un RANDOM siguiendo el mapa del JSON.
Celda actual = this.celdaInicial;
int i = 1;
for (; i < (this.tamanio - 1); i++) {
Celda celdaComun = new CeldaComun(i, i, afectante);
actual.setSiguiente(celdaComun);
actual = celdaComun;
}
Celda celdaMedio = this.buscarCeldaDelMedio();
Celda celdaFinal = new CeldaFinal(celdaMedio, i, i);
actual.setSiguiente(celdaFinal);
}

private Celda buscarCeldaDelMedio() {
Celda celdaMedio = this.celdaInicial;
for (int i = 1; i < (tamanio / 2) ; i++) {
celdaMedio = celdaMedio.celdaSiguiente();
}
return celdaMedio;
}
}
13 changes: 13 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/afectantes/Vacio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package edu.fiuba.algo3.modelo.afectantes;

import edu.fiuba.algo3.modelo.Afectante;
import edu.fiuba.algo3.modelo.Jugador;

public class Vacio implements Afectante {

public Vacio() { }

public void afectar(Jugador jugador) {
// no hace nada... ;)
}
}
18 changes: 18 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/celdas/CeldaComun.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package edu.fiuba.algo3.modelo.celdas;

import edu.fiuba.algo3.modelo.Celda;
import edu.fiuba.algo3.modelo.afectantes.*;
import edu.fiuba.algo3.modelo.Afectante;

public class CeldaComun extends Celda {
public CeldaComun(int x, int y, Afectante afectante) {
this.siguiente = siguiente;
this.afectante = afectante;
this.x = x;
this.y = y;
}

public boolean esCeldaFinal(){
return false;
}
}
27 changes: 27 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/celdas/CeldaFinal.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package edu.fiuba.algo3.modelo.celdas;

import edu.fiuba.algo3.modelo.Celda;
import edu.fiuba.algo3.modelo.afectantes.*;
import edu.fiuba.algo3.modelo.Jugador;

public class CeldaFinal extends Celda {

public CeldaFinal(Celda siguiente, int x, int y) {
this.siguiente = siguiente;
this.afectante = new Vacio();
this.x = x;
this.y = y;
}

public void afectar(Jugador jugador) {
if (!(jugador.totalmenteEquipado())) {
jugador.posicionar(this.celdaSiguiente());
}
// jugador.ganarJuego(); A analizar...
// this.juego.gano(jugador); A analizar...
}

public boolean esCeldaFinal(){
return true;
}
}
23 changes: 23 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/celdas/CeldaInicial.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package edu.fiuba.algo3.modelo.celdas;

import edu.fiuba.algo3.modelo.Afectante;
import edu.fiuba.algo3.modelo.Celda;
import edu.fiuba.algo3.modelo.afectantes.*;

public class CeldaInicial extends Celda {

// Conviene tener solo CeldaComun y CeldaFinal? Haciendo que
// CeldaComun tenga un constructor que reciba las coordenadas
// y que instanciemos CeldaComun con x=0 e y=0 para crear la
// celda inicial.

public CeldaInicial() {
this.afectante = new Vacio();
this.x = 0;
this.y = 0;
}

public boolean esCeldaFinal(){
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,8 @@ public Equipamiento mejorarEquipamiento() {
public int recibirAtaque(){
return DANIO;
}

public boolean equipoCompleto() {
return false;
}
}
4 changes: 4 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/equipamientos/Casco.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,8 @@ public Equipamiento mejorarEquipamiento() {
public int recibirAtaque() {
return DANIO;
}

public boolean equipoCompleto(){
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@ public Equipamiento mejorarEquipamiento() {
public int recibirAtaque() {
return DANIO;
}

public boolean equipoCompleto(){
return false;
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,8 @@ public Equipamiento mejorarEquipamiento() {
public int recibirAtaque(){
return DANIO;
}

public boolean equipoCompleto(){
return false;
}
}
4 changes: 4 additions & 0 deletions src/main/java/edu/fiuba/algo3/modelo/equipamientos/Llave.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ public Equipamiento mejorarEquipamiento() {
public int recibirAtaque(){
return DANIO;
}

public boolean equipoCompleto(){
return true;
}
}
Loading

0 comments on commit e3a3714

Please sign in to comment.