ET12DE1Computacion / Fulbo12

Proyecto interno para simulador de Futbol
0 stars 10 forks source link

Formación #12

Open luchoxx87 opened 2 years ago

luchoxx87 commented 2 years ago

Formación

Pensar en como poder hacer que los Jugadores puedan tener hasta 3 formaciones para armar. La idea es ofrecer plantillas con 5 formaciones clásicas (aunque a futuro se pueden agregar más). Las formaciones tienen que tener nombre y pensar en una forma potable de encarar el posicionamiento de los jugadores en la táctica. Siguiendo con lo que hablamos, tendríamos una clase Formacion que funciona como contenedora de las Lineas. Formación tendría el nombre y estaría bueno que devolviese una cadena tipo "4-4-2". Linea seria la clase que contiene la PosicionEnCancha, teniendo en cuenta que vamos a leer las posiciones de abajo hacia arriba y de derecha a izquierda, es importante que las Posiciones tengan un numero de linea (dejando el valor 0 para la linea del arquero). Y por ultimo la clase PosicionEnCancha que relaciona a un jugador (puede valer null cuando no hay jugador asignado) junto con una Posición. También podríamos tener un numero de camiseta en esta clase.

Clase PosicionEnCancha

Clase Linea

Clase Formación

Clase FormacionBuilder

Dado que la formación es un objeto complejo por su composición y correcto orden de creación, es necesario la aplicación de un patrón de creación (el Builder) para simplificar la instanciación de formaciones.

Para esta clase vamos a usar el concepto de Interfaz fluida, por lo cual ES IMPORTANTE que todos los métodos de esta clase, devuelvan una instancia de la misma (es decir, la ultima linea siempre es return this;).

Les muestro un ejemplo de instanciación cuando tengamos el builder listo.

var builder = new FormacionBuilder();

var formacion = builder.IniciarFormacion()
                        .AgregarLinea()
                            .AgregarPosicion(null, defensorDerecho, 4)
                            .AgregarPosicion(null, defensorCentral, 2)
                            .AgregarPosicion(fMarcosRojo, defensorCentral, 6)
                            .AgregarPosicion(FFrankFabra, defensorIzquierdo)
                        .AgregarLinea()
                            .AgregarPosicion(FEnzoPerez, mediocampistaDefensivo, 5)
                        .AgregarLinea()
                            .AgregarPosicion(FSantiagoSimon, mediocampistaDerecho)
                            .AgregarPosicion(FEnzoFernandez, medioCentro)
                            .AgregarPosicion(FNicoDeLaCruz, medioCentro)
                            .AgregarPosicion(FEsequielBarco, mediocampistaIzquierdo)
                        .AgregarLinea()
                            .AgregarPosicion(FJulianAlvarez, delanteroCentral)
                        .Formacion;

Buenas, hoy en clase (21-06-2023) hablamos de agregar unas clases para ayudar a la persistencia de:

luchoxx87 commented 1 year ago

Buenas chicos, en la actualidad en este Issue (fork "12—formacion" ) no están corriendo los tests; empiecen a investigar que puede ser. Si desarrollan una idea o tienen teorías, pueden usar este foro para comentar la idea y lo vemos entre todos.