Se agrega interfaz para representar las diferentes estrategias sobre las condiciones de llenado de las estructuras. Se crea una clase abstracta con el identificador del bloque que se usar de moneda. Se crean dos estrategias de llenado, OneBlockSt que requiere un bloque, y TwoBlocksSt que requiere 2
Se crea Clase abstracta que implemente IShapeGen que contiene la logica necesaria para ocupar las diferentes estrategias de llenado (De esta nueva clase deberan extender los generadores
Se refactoriza la clase TowerGen para adecuarse a la nueva clase AShape, para eso se crea clase intermedia ATower que es la abstraccin de una torre. Con esto TowerGen pasa a llamarse BigTowerGen
se agrega clase CastleTowerGen para representar las torres de un castillo