UTN - Facultad Regional Buenos Aires - Materia Paradigmas de Programación
- Kevin Anton (kevinanton01)
- Alex Fiorenza (alexFiorenza)
- Alvaro Federico Gianola (AlvaroGianola)
- Natali Martirosyan (NatyMartirosyan)
- Valentin Sosa (Valentin-Sosa)
Intentar llegar a las puertas con ambos personajes (cada uno a su respectiva puerta) evitando los charcos de agua, fuego, ácido, interactuando con los diversos elementos y haciendo los saltos con un buen timing.
-
watergirl (la celeste): ~ a y d para moverse ~ w para saltar ~ s para interactuar con palancas, puertas y mover cajas
-
fireboy (el rojo) ~ flechas izquierda y derecha para moverse ~ flecha arriba para saltar ~ flecha abajo para interactuar con palancas y puertas (solo las mujeres empoderadas pueden mover cajas)
Aplicamos los conceptos de polimorfismo a la forma en la que colisiona cada personaje con cada bloque/charco y con cada puerta. Aplicamos también conceptos de clases y herencia para la creación del mapa (ya que este constaba de muchos bloques iguales de las distintas clases), ambos personajes(compartian metodos), los elementos con los que se puede interactuar, etc. POR EJEMPLO: en la creacion del mapa existian muchos bloques iguales de las diversas clases, que a su vez todos los bloques de tierra, por ejemplo, deben colisionar de la misma forma con los personajes.
DIAGRAMA (introducir el sigiente codigo en yuml) // Sweet Class Diagram // Diagrama de Clases para Fireboy and Watergirl en Wollok // -----------------------------------------------------
// Relaciones de herencia [Personaje]^-[fireboy] [Personaje]^-[watergirl] [Elemento]^-[Elevador] [Elemento]^-[Boton] [Elemento]^-[Puerta] [Boton]^-[botonAbajo] [Boton]^-[botonArriba] [Elevador]^-[elevadorPorBoton] [Elevador]^-[elevadorPorPalanca] [Puerta]^-[puertaFuego] [Puerta]^-[puertaAgua] [Elemento]^-[cubo] [Elemento]^-[cartelGanador] [Elemento]^-[cartelPerdedor] [Objeto]|create>[Elemento]
// Clases con propiedades y métodos destacados [≪IDisposable≫;Personaje|+position: Posicion;+estaMuerto: Boolean;-cantSaltos: Int|moverse(nuevaPosicion);movIzquierda();movDerecha();movSaltar();caer();morir();reiniciar()]
[Elevador|posicionInicial: Posicion;activado: Boolean|cambiarEstado(nuevoEstado);reiniciar();position()] [Boton|position: Posicion|estaPresionado()] [Puerta|condicion: Function;imagenCerrada: String|hayAlguienEnPuerta();chequearPuerta()]
// Relaciones de composición [game]<>-[fireboy] [game]<>-[watergirl] [game]<>-[cubo] [game]<>-[elevadorPorBoton] [game]<>-*[elevadorPorPalanca]
// Detalles adicionales [fireboy]-[note: Fireboy personaje controlado por jugador] [watergirl]-[note: Watergirl personaje controlado por jugador] [cubo]-[note: Puede ser movido y presionar botones]