El diagrama de clases dispone de de 5 atributos y 5 funciones.
Atributos:
Número: Corresponde al dorsal del jugador y permanece constante.
Posición: Almacena la posición inicial de jugador, es de tipo punto y contiene la posición en coordenadas X e Y.
Sense body: Almacena los datos del estado del jugador.
See: Donde se almacena todo lo que ve nuestro jugador y su posición relativa a el. Cada elemento que ve es almacenado en un campo distinto.
Cliente: Atributo de tipo socket UDP a partir del cual se relaciona el jugador con el servidor.
Funciones:
Mover: Tiene 2 posibles inicializaciones, con la primera el jugador se moverá en linea recta con la potencia indicada. Con la segunda el jugador primero girará y después avanzará.
Golpear: El jugador golpeara la bola con la potencia y ángulo indicados. La diferencia entre pasar y tirar dependerá de la potencia.
Mirar: El jugador girará la cabeza el ángulo indicado.
Interpretar: Se encargará de leer lo recibido y almacenarlo en las distintas variables de los structs.
Coger: La usa solo el portero y se encarga de coger el balón con las manos. Se le pasa la dirección en la que coge el balón.
El portero comprueba si tiene balón, si no lo tiene lo busca y se coloca. Cuando lo tiene comprueba si puede sacar en corto, si puede, lo hace, si no, saca en largo.
Hemos decidido que los defensas, los medios y los delanteros hagan lo mismo, ya que lo que hagan dependerá de la posición que tengan en el campo.
El jugador comprueba si tiene el balón lo busca y se coloca, cuando lo tenga comprueba si puede correr, si puede lo hace, si no puede comprueba que puede tirar, si puede tira, si no, pasa.
DIAGRAMA DE GANTT
Las funciones las realizaremos los tres de forma equitativa. Aparte las 4 clases las distribuiremos de la siguiente forma; el portero se programará entre los 3 ya que es la parte mas difícil, y después entre defensa, medio y delantero cada uno haremos uno.