slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Torneos Virtuales 2º Cuatrimestre 2009 Técnicas de Diseño 75.10 -Grupo D- PowerPoint Presentation
Download Presentation
Torneos Virtuales 2º Cuatrimestre 2009 Técnicas de Diseño 75.10 -Grupo D-

Loading in 2 Seconds...

  share
play fullscreen
1 / 33
Download Presentation

Torneos Virtuales 2º Cuatrimestre 2009 Técnicas de Diseño 75.10 -Grupo D- - PowerPoint PPT Presentation

neka
95 Views
Download Presentation

Torneos Virtuales 2º Cuatrimestre 2009 Técnicas de Diseño 75.10 -Grupo D-

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Torneos Virtuales 2º Cuatrimestre 2009 Técnicas de Diseño 75.10 -Grupo D-

  2. Requerimientos del simulador Información general del proyecto Descripción de Arquitectura Patrones utilizados Posibilidades de extender la aplicación Desafíos del proyecto Mejoras para nuevas versiones Demo / Muestra de código Contenido

  3. Jugadores actúan de acuerdo a su posición en cancha. Acciones: patear, marcar, avanzar, atajar. Diseño flexible para agregar nuevas jugadas y estrategias Jugadores en contacto  Habilidades + factor de azar definen acciones. Detección de faltas y expulsiones Requerimientos del simulador

  4. Información general del proyecto Herramientas y tecnologías: • Java • Log4j • JUnit • ant • Javadoc • Windows • GNU/Linux Ubuntu 9.10 Ambientes de desarrollo: Datos sobre la base de código: • 3950 Líneas de código (incluidos los tests unitarios) • 393 commits de SVN • Alojado en http://code.google.com/p/tecnicas-grupo2/

  5. Descripción de Arquitectura

  6. Vista lógica (I) Descripción de Arquitectura (cont.) - Clases del Modelo de Análisis

  7. Vista lógica (II) Descripción de Arquitectura (cont.) - Mediador de Acciones (I) ¿Qué ocurre cuando dos jugadores chocan? (1) Falta (2) Conflicto de Pelota (3) Conflicto de Posición

  8. Vista lógica (III) Descripción de Arquitectura (cont.) - Mediador de Acciones (II) (1) Falta AR=Agresividad/Resistencia AR Jugador s/pelota > AR Jugador c/pelota  ¡Hay falta! ¿Hay Falta?  Castigar a Jugador s/pelota

  9. Vista lógica (IV) Descripción de Arquitectura (cont.) - Mediador de Acciones (III) (2) Conflicto de Pelota privateintcalculoMarcacion(HabilidadesJugadorhab){ int Pm=3; /* ponderacion de habilidad de marcacion */ intPv=2; /* ponderacion de velocidad */ int Pa=1; /* ponderacion azar */ int azar= Naturaleza.getInstancia().generarValorEnteroAleatorio(0, 10); return (hab.getHabilidadMarcando()*Pm +hab.getHabilidadVelocidad()*Pv + azar*Pa)/(Pm+Pv+Pa); } privateintcalculoGambeta(HabilidadesJugadorhab){ intPc=3; /* ponderacion de habilidad corriendo */ intPg=2; /* ponderacion de gambeta */ int Pa=1; /* ponderacion azar */ int azar= Naturaleza.getInstancia().generarValorEnteroAleatorio(0, 10); return (hab.getHabilidadCorriendo()*Pc +hab.getHabilidadGambeta()*Pg +azar*Pa)/(Pc+Pg+Pa); }

  10. Vista lógica (V) Descripción de Arquitectura (cont.) - Mediador de Acciones (IV) (3) Conflicto de Posición privateintcalculoVelocidadCorriendo(HabilidadesJugadorhab) { intPc=2; /* ponderacion de habilidad corriendo */ intPv=3; /* ponderacion de velocidad */ int Pa=1; /* ponderacion azar */ int azar= Naturaleza.getInstancia().generarValorEnteroAleatorio(0, 10); return (hab.getHabilidadMarcando()*Pc +hab.getHabilidadVelocidad()*Pv + azar*Pa)/(Pc+Pv+Pa); }

  11. Vista lógica (VI) Descripción de Arquitectura (cont.) - Secuencia de un tick de juego

  12. Vista de componentes Descripción de Arquitectura (cont.) ¡TRIVIAL! Único componente: simulador.jar Recibe dos parámetros de entrada. Más detalles en Vista de Despliegue.

  13. Vista de procesos Descripción de Arquitectura (cont.) ¿ ?

  14. Descripción de Arquitectura (cont.) Vista de Despliegue (I)

  15. Descripción de Arquitectura (cont.) Vista de Despliegue (II) java –jar simulador.jar configuracion.xml [salida.xml] Si no se especifica salida, default: simulacion_principal.xml

  16. Vista de Casos de Uso Descripción de Arquitectura (cont.) ¿ ?

  17. Builder Singleton Strategy Command Observer Mediator Patrones de diseño utilizados

  18. Builder (I) Patrones de diseño utilizados (cont.) ¿Dónde? ¿Por qué?

  19. Patrones de diseño utilizados (cont.) Builder (II)

  20. Patrones de diseño utilizados (cont.) Singleton ¿Dónde? • Partido • Mediador de Acciones • Naturaleza • EventQueue ¿Por qué? Por la necesidad de tener una única instancia de cada clase para ser accedida desde diferentes lugares

  21. Patrones de diseño utilizados (cont.) Strategy (I) ¿Dónde? ¿Por qué?

  22. Patrones de diseño utilizados (cont.) Strategy (II)

  23. Patrones de diseño utilizados (cont.) Command (I) ¿Dónde? ¿Por qué?

  24. Patrones de diseño utilizados (cont.) Command (II)

  25. Observer (I) Patrones de diseño utilizados (cont.) ¿Dónde? ¿Por qué?

  26. Patrones de diseño utilizados (cont.) Observer (II)

  27. Patrones de diseño utilizados (cont.) Mediator ¿Dónde? ¿Por qué?

  28. Creación de nuevos comandos. Posibilidades de extensión • Crear estrategias propias defensivas u ofensivas. ¡No requiere recompilación! ¿Por qué? <equipo nombre="Sacachispas" estrategia="EstrategiaOfensiva"> • Creación de nuevas jugadas

  29. Trabajar en un grupo de muchos integrantes. Numerosas soluciones propuestas. Definir protocolo para la comunicación con la aplicación del otro grupo, codificada con otras tecnologías. Poco tiempo para implementar. La etapa de testing es compleja. Desafíos del proyecto

  30. Mejoras para nuevas versiones

  31. Demo / Muestra de código

  32. ¿Preguntas?

  33. ¡Muchas Gracias! Grupo D • Miguel Abate • Gabriel Cartuccia • Mauro Cohen • Federico Goldenberg • María Eugenia Liva • Lucas Mancini • Pablo Mazzini • Mario Silisque