Skip to content

Commit

Permalink
Merge pull request #2 from amurseli/PrincipalTest
Browse files Browse the repository at this point in the history
Listo para primer Entrega
  • Loading branch information
amurseli authored Jun 8, 2022
2 parents 1cfce9b + 97d2bba commit 01a0e9c
Show file tree
Hide file tree
Showing 18 changed files with 121 additions and 58 deletions.
Binary file added diagrams/classes/Entrega1.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
27 changes: 27 additions & 0 deletions hj.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
@startuml
'https://plantuml.com/class-diagram

abstract class AbstractList
abstract AbstractCollection
interface List
interface Collection

List <|-- AbstractList
Collection <|-- AbstractCollection

Collection <|- List
AbstractCollection <|- AbstractList
AbstractList <|-- ArrayList

class ArrayList {
Object[] elementData
size()
}

enum TimeUnit {
DAYS
HOURS
MINUTES
}

@enduml
2 changes: 2 additions & 0 deletions src/main/java/edu/fiuba/algo3/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ public class Main {
public static void main(String[] args) {
App.main(args);
}


}
13 changes: 1 addition & 12 deletions src/main/java/edu/fiuba/algo3/modelo/Ciudad.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public int obtenerMovimientosRealizados() {
}
public void moverDerecha() {
p1.moverDerecha();
this.aplicarEfectos();
p1.aplicarEfectos(efectos);
}
public void moverIzquierda() {
p1.moverIzquierda();
Expand All @@ -44,15 +44,4 @@ public void agregarEfecto(Efecto efecto){
}
*/


private void aplicarEfectos() {
//TODO: ESTO ESTA MAL, LA COMPARACION DE ESTOY PASANDO POR UN EFECTO DEBERIA SER EN OTRO LADO. REFACTOR
Camino camino = new Camino(p1.vehiculo.posicionAnterior, p1.vehiculo.posicion);

for (Efecto efecto: efectos) {
if (camino.equals(efecto.obtenerPosicion())) {
efecto.aplicarEfecto(this.p1);
}
}
}
}
16 changes: 8 additions & 8 deletions src/main/java/edu/fiuba/algo3/modelo/Jugador.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package edu.fiuba.algo3.modelo;

import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.efectos.obstaculos.ControlPolicial;
import edu.fiuba.algo3.modelo.efectos.obstaculos.Pozo;
import edu.fiuba.algo3.modelo.efectos.sorpresas.CambioDeVehiculo;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

import java.util.List;

public class Jugador {
Vehiculo vehiculo;
Jugador(Vehiculo v){
Expand All @@ -12,14 +16,6 @@ public class Jugador {
public int obtenerMovimientosRealizados() {
return this.vehiculo.obtenerMovimientosRealizados();
}
public void aplicarEfecto(Pozo pozo) {

this.vehiculo.aplicarEfecto(pozo);
}
public void aplicarEfecto(ControlPolicial control) {

this.vehiculo.aplicarEfecto(control);
}

public void moverDerecha() {
vehiculo.moverDerecha();
Expand All @@ -33,4 +29,8 @@ public void moverArriba() {
public void moverAbajo() {
vehiculo.moverAbajo();
}

public void aplicarEfectos(List<Efecto> efectos) {
vehiculo.aplicarEfectos(efectos,this);
}
}
7 changes: 4 additions & 3 deletions src/main/java/edu/fiuba/algo3/modelo/efectos/Efecto.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@

import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public abstract class Efecto {
private Camino posicion;
protected Camino posicion;

protected Efecto(Camino c) {
this.posicion = c;
}

public abstract boolean aplicarEfecto(Jugador j);

public Camino obtenerPosicion(){
return posicion;
}

public abstract void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@
import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class ControlPolicial extends Efecto {

public ControlPolicial(Camino c) {
super(c);
}

@Override
public boolean aplicarEfecto(Jugador j) {
j.aplicarEfecto(this);
return false;
public void aplicarEfecto(Camino caminoRecorrido,Jugador jugador,Vehiculo vehiculo) {
if(posicion.equals(caminoRecorrido)){
vehiculo.aplicarEfecto(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class Obstaculo extends Efecto {

protected Obstaculo(Camino c) {
super(c);
}

@Override
public boolean aplicarEfecto(Jugador j) {
return false;
public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
int estoEsParaSalirDelPaso = 5;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
package edu.fiuba.algo3.modelo.efectos.obstaculos;

import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.efectos.obstaculos.Obstaculo;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class Piquete extends Obstaculo {
protected Piquete(Camino c) {
super(c);
}

public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
if(posicion.equals(caminoRecorrido)){
vehiculo.aplicarEfecto(this);
}
}

}


Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@
import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class Pozo extends Efecto {

public Pozo(Camino c) {
super(c);
}

@Override
public boolean aplicarEfecto(Jugador j) {
j.aplicarEfecto(this);
return false;
public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
if(posicion.equals(caminoRecorrido)){
vehiculo.aplicarEfecto(this);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ public class CambioDeVehiculo extends Sorpresa {
protected CambioDeVehiculo(Camino c) {
super(c);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class Sorpresa extends Efecto {
protected Sorpresa(Camino c) {
super(c);
}

@Override
public boolean aplicarEfecto(Jugador j) {
return false;
public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
int estoEsParaSalirDelPaso = 5;
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package edu.fiuba.algo3.modelo.efectos.sorpresas;

import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.efectos.sorpresas.Sorpresa;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class SorpresaDesfavorable extends Sorpresa {
protected SorpresaDesfavorable(Camino c) {
super(c);
}

public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
int estoEsParaSalirDelPaso = 5;
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package edu.fiuba.algo3.modelo.efectos.sorpresas;

import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.Jugador;
import edu.fiuba.algo3.modelo.efectos.sorpresas.Sorpresa;
import edu.fiuba.algo3.modelo.vehiculos.Vehiculo;

public class SorpresaFavorable extends Sorpresa {
protected SorpresaFavorable(Camino c) {
super(c);
}

public void aplicarEfecto(Camino caminoRecorrido, Jugador jugador, Vehiculo vehiculo) {
int estoEsParaSalirDelPaso = 5;
}
}
46 changes: 30 additions & 16 deletions src/main/java/edu/fiuba/algo3/modelo/vehiculos/Vehiculo.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
package edu.fiuba.algo3.modelo.vehiculos;

import edu.fiuba.algo3.modelo.*;
import edu.fiuba.algo3.modelo.efectos.Efecto;
import edu.fiuba.algo3.modelo.efectos.obstaculos.ControlPolicial;
import edu.fiuba.algo3.modelo.efectos.obstaculos.Piquete;
import edu.fiuba.algo3.modelo.efectos.obstaculos.Pozo;
import edu.fiuba.algo3.modelo.efectos.sorpresas.CambioDeVehiculo;
import edu.fiuba.algo3.modelo.efectos.sorpresas.SorpresaDesfavorable;
import edu.fiuba.algo3.modelo.efectos.sorpresas.SorpresaFavorable;

import java.util.List;

public abstract class Vehiculo {
public Esquina posicion;
public Esquina posicionAnterior;
private int movimientos;

public Vehiculo(Esquina posicion) {
this.posicion = posicion;
this.movimientos = 0;
movimientos = 0;
}
/*
public Vehiculo(Esquina posicion, Esquina posicionAnterior, int movimientos) {
Expand All @@ -28,34 +31,36 @@ public int obtenerMovimientosRealizados() {
return this.movimientos;
}
public void moverDerecha() {
Esquina e = this.posicion.obtenerEsquinaDerecha();
this.sumarMovimientos(1);
this.asignarPosicion(e);
Esquina nuevaEsquina = posicion.obtenerEsquinaDerecha();
sumarMovimientos(1);
asignarPosicion(nuevaEsquina);
}
public void moverIzquierda() {
Esquina e = this.posicion.obtenerEsquinaIzquierda();
this.sumarMovimientos(1);
this.asignarPosicion(e);
Esquina nuevaEsquina = posicion.obtenerEsquinaIzquierda();
sumarMovimientos(1);
asignarPosicion(nuevaEsquina);
}
public void moverArriba() {
Esquina e = this.posicion.obtenerEsquinaArriba();
this.sumarMovimientos(1);
this.asignarPosicion(e);
Esquina nuevaEsquina = posicion.obtenerEsquinaArriba();
sumarMovimientos(1);
asignarPosicion(nuevaEsquina);
}
public void moverAbajo() {
Esquina e = this.posicion.obtenerEsquinaAbajo();
this.sumarMovimientos(1);
this.asignarPosicion(e);
Esquina nuevaEsquina = posicion.obtenerEsquinaAbajo();
sumarMovimientos(1);
asignarPosicion(nuevaEsquina);
}
public abstract void aplicarEfecto(Pozo e);
public abstract void aplicarEfecto(Piquete e);
public abstract void aplicarEfecto(ControlPolicial e);
public abstract void aplicarEfecto(SorpresaFavorable e);
public abstract void aplicarEfecto(SorpresaDesfavorable e);
public abstract Vehiculo aplicarEfecto(CambioDeVehiculo e);
private void asignarPosicion(Esquina p) {
this.posicionAnterior = this.posicion;
this.posicion = p;
private void asignarPosicion(Esquina nuevaPosicion) {

posicionAnterior = posicion;
posicion = nuevaPosicion;

}
protected void sumarMovimientos(int m) {
this.movimientos += m;
Expand All @@ -66,4 +71,13 @@ protected void sumarMovimientos(int m) {
protected void sumarMovimientosPorcentaje(int p) {
this.movimientos = (int)Math.floor(this.movimientos * (p / 100 + 1));
}*/

public void aplicarEfectos(List<Efecto> efectos,Jugador jugador) {

Camino caminoRecorrido = new Camino(posicionAnterior, posicion);

for (Efecto efecto: efectos) {
efecto.aplicarEfecto(caminoRecorrido,jugador,this);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package edu.fiuba.algo3.modelo;
package edu.fiuba.algo3.modelo.Entrega_1_;

import edu.fiuba.algo3.modelo.Camino;
import edu.fiuba.algo3.modelo.Esquina;
import edu.fiuba.algo3.modelo.Juego;
import edu.fiuba.algo3.modelo.efectos.obstaculos.ControlPolicial;
import edu.fiuba.algo3.modelo.efectos.obstaculos.Pozo;
import edu.fiuba.algo3.modelo.vehiculos.Auto;
Expand Down
8 changes: 4 additions & 4 deletions src/main/test/edu/fiuba/algo3/modelo/MotoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

public class MotoTest {
@Test
public void Test01CreoUnVehiculoCorrectamente(){
Moto v = new Moto(new Esquina(1,1));
Esquina e = new Esquina(1,1);
Assertions.assertEquals(v.posicion,e);
public void Test01CreoUnVehiculoCorrectamenteSeLeAsignaUnaPosicionYseSolicitaLaPosicion(){
Moto moto = new Moto(new Esquina(1,1));
Esquina esquinaDeMoto = new Esquina(1,1);
Assertions.assertEquals(moto.posicion,esquinaDeMoto);
}
@Test
public void Test02MotoPasaPorPozoYSeRetornaCorrectamente(){
Expand Down

0 comments on commit 01a0e9c

Please sign in to comment.