aton presentación del diseño del juego de mesa aton

14
ATON Presentación del diseño del juego de mesa Aton

Upload: iuceph-orosco

Post on 22-Jan-2016

251 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ATON Presentación del diseño del juego de mesa Aton

ATON

Presentación del diseño del juego de mesa Aton

Page 2: ATON Presentación del diseño del juego de mesa Aton

Introducción

• En esta presentación queremos exponer los diferentes problemas de diseño de software que hemos encontrado en la realización del diseño del juego de mesa Aton así como las soluciones que hemos aplicado.

Page 3: ATON Presentación del diseño del juego de mesa Aton

Eliminación Clase Tablero

• Problema: El problema que existía era que la clase tablero no hacía nada. Por lo que corresponde al mal olor “intermediario”.

• Solución: Eliminamos la clase Tablero y movimos los 2 atributos que tenía a la Clase Partida, ya que las partes del tablero pueden introducirse dentro del concepto de partida.

Page 4: ATON Presentación del diseño del juego de mesa Aton

Interfaz de usuario (I)

• Problema: como establecer la comunicación de los jugadores con el juego.

• Solución: aplicando el patrón Fachada creamos una clase que servirá de unión entre los usuarios del software y el diseño interno del mismo.

Page 5: ATON Presentación del diseño del juego de mesa Aton

Interfaz de usuario (I)

Page 6: ATON Presentación del diseño del juego de mesa Aton

Interfaz de usuario (II)

• Problema: El problema que teníamos era que habíamos creado directamente la clase “interfazdeUsuario” sin haber definido antes una interfaz.

• Solución: Creamos la interfaz “interfazdeUsuario” la cual estaba implementada por la clase “interfazdeUsuarioConsola” y de esta manera podemos posteriormente crear nuevas clases que implementen esta interfaz y obtener así otro tipo de interfaz ( por ejemplo una interfaz gráfica )

Page 7: ATON Presentación del diseño del juego de mesa Aton

Interfaz de usuario (II)

Page 8: ATON Presentación del diseño del juego de mesa Aton

Asignar el ganador de una partida (I)• Atributo “ganador” de tipo Color en partida• Cuando un jugador gana, le da su color al atributo ganador• Mientras Ganador sea Color.SinColor se sigue jugando.

Page 9: ATON Presentación del diseño del juego de mesa Aton

Asignar el ganador de una partida (II)• Una partida puede terminar en empate• Hay diferentes condiciones de victoria

Page 10: ATON Presentación del diseño del juego de mesa Aton

Cambio en el diseño de los tipos de Casilla(I)

• Problema: Mal olor “Clases perezosas” en las clases de tipo de casillas.

• Primera solución: crear una clase Casilla de la que hereden tantas clases como tipos de casillas haya.

• Solución definitiva: Cambiamos las distintas clases de tipo casilla por un tipo enumerado Mejor solución a la hora de querer añadir una nueva casilla.

Page 11: ATON Presentación del diseño del juego de mesa Aton

Templos

• Problema: Hay cuatro templos con partes iguales y un método con una implementación distinta para cada uno (getPuntos)

• Solución: Patrón de Diseño Estrategia

Page 12: ATON Presentación del diseño del juego de mesa Aton

Conjuntos de cartas (I).

• Problema: Atributo Collection<Cartas> en clase Jugador Mal olor Clase grande ( se encarga de operaciones de creación y manipulación de atributos Poca cohesión)

• Solución: Creamos una clase conjunto de cartas. Cada jugador tendrá (baraja de Baraja, descartes de ConjuntoDeCartas y mano de cada ronda de ConjuntoDeCartas)

• Diferencia de la baraja vs descartes y mano: La baraja de cartas será un conjunto especial ya que puede ser barajada.

• Clase baraja extiende a conjunto de cartas.• Cuando una baraja esté vacía se genera una nueva barajando el

montón de descartes.

Page 13: ATON Presentación del diseño del juego de mesa Aton

Conjunto de Cartas (II)

Page 14: ATON Presentación del diseño del juego de mesa Aton

Post Morten

• Objetivos conseguidos

• Implementación completa y funcional del juego

• Uso de patrones de diseño

• Solución de todos los problemas de diseño encontrados

• Objetivos no conseguidos

• Interfaz gráfica

• Uso de patrón de diseño Fábrica Abstracta

• Implementación de extensiones