3.0 KiB
Especificaciones de la Rosa Dorada (Gilded Rose)
Bienvenido al equipo Gilded Rose.
Como sabrás, somos una pequeña posada ubicada estratégicamente en una prestigiosa ciudad, atendida por la amable Allison. También compramos y vendemos mercadería de alta calidad. Por desgracia, nuestra mercadería va bajando de calidad (Quality) a medida que se aproxima la fecha de venta.
Tenemos un sistema instalado que actualiza automáticamente nuestro inventario. Este sistema fue desarrollado por un tipo serio y práctico llamado Leeroy, que ahora se encuentra en otras aventuras.
Tu tarea es añadir una nueva funcionalidad al sistema para que podamos comenzar a vender una nueva categoría de items. Pero primero, vamos a describir como funciona el sistema:
Descripción del sistema
- Todos los artículos (
item) tienen una propiedadSellInque denota el número de días que tenemos para venderlo - Todos los artículos (
item) tienen una propiedadQualityque denota cúan valioso es el artículo - Al final de cada día, nuestro sistema decrementa ambos valores para cada artículo mediante el método
updateQuality
Bastante simple, ¿no? Bueno, ahora es donde se pone interesante:
- Una vez que ha pasado la fecha recomendada de venta (
SellIn), la calidad (Quality) se degrada al doble de velocidad - La
calidadde un artículo nunca es negativa - El "Queso Brie envejecido" (
Aged brie) incrementa su calidad (Quality) a medida que madura con los días- Su calidad (
Quality) aumenta en1unidad cada día - Una vez expirada la fecha de venta (
SellIn) su calidad (Quality) aumenta el doble día
- Su calidad (
- La calidad de un artículo (
Quality) no puede superar50 - El artículo
Sulfuras, es un artículo legendario, no necesitamos venderlo en ninguna fecha (SellIn) y tampoco se degrada en (Quality) - El artículo "Entrada al Backstage" (
Backstage passes), incrementa su valor (Quality) a medida que acerca la fecha del concierto (SellIn)- Si faltan
10días o menos para el concierto, la calidad (Quality) se incrementa en2unidades - Si faltan
5días o menos, la calidad (Quality) se incrementa en3unidades - Una vez pasada fecha del concierto (
SellIn), la entrada pierde su valor (Quality) y cae a0
- Si faltan
Tu tarea
Hace poco contratamos a un proveedor de artículos conjurados mágicamente. Esto requiere una actualización del sistema:
- Los artículos conjurados (
Conjured) degradan su calidad (Quality) el doble de rápido que los artículos normales
Siéntete libre de modificar el método updateQuality y agregar el código que sea necesario, siempre y cuando todo siga funcionando correctamente. Sin embargo, no debes modificar la clase Item ni sus propiedades, ya que esta pertenece a un duende que en un ataque de ira te liquidaría de un golpe ya que no cree en la cultura de código compartido.
Notas finales
Para aclarar: un artículo nunca puede tener una calidad (Quality) superior a 50, sin embargo los objetos Sulfuras, siendo un artículo legendario, poseen una calidad inmutable de 80.