This commit is contained in:
Soukeina 2022-11-18 00:49:38 +01:00
parent ac8fce7557
commit b0ea55ade4
5 changed files with 55 additions and 60 deletions

11
TypeScript/app/Item.ts Normal file
View File

@ -0,0 +1,11 @@
export class Item {
name: string;
sellIn: number;
quality: number;
constructor(name, sellIn, quality) {
this.name = name;
this.sellIn = sellIn;
this.quality = quality;
}
}

View File

@ -1,14 +1,6 @@
export class Item {
name: string;
sellIn: number;
quality: number;
import { throws } from "assert";
import {Item} from "./Item"
constructor(name, sellIn, quality) {
this.name = name;
this.sellIn = sellIn;
this.quality = quality;
}
}
export class GildedRose {
items: Array<Item>;
@ -18,52 +10,42 @@ export class GildedRose {
}
updateQuality() {
for (let i = 0; i < this.items.length; i++) {
if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
if (this.items[i].quality > 0) {
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
this.items[i].quality = this.items[i].quality - 1
}
}
} else {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1
if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') {
if (this.items[i].sellIn < 11) {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1
}
}
if (this.items[i].sellIn < 6) {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1
}
}
}
}
}
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
this.items[i].sellIn = this.items[i].sellIn - 1;
}
if (this.items[i].sellIn < 0) {
if (this.items[i].name != 'Aged Brie') {
if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') {
if (this.items[i].quality > 0) {
if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') {
this.items[i].quality = this.items[i].quality - 1
}
}
} else {
this.items[i].quality = this.items[i].quality - this.items[i].quality
}
} else {
if (this.items[i].quality < 50) {
this.items[i].quality = this.items[i].quality + 1
}
}
}
}
this.items.forEach(item => {
this.update(item);
});
return this.items;
}
return this.items;
private update(item: Item){
if(item.name == 'Sulfuras, Hand of Ragnaros') {
return;
}
item.sellIn=item.sellIn-1;
if(item.name=='Aged Brie'){
this.increaseQuality(item);
if (item.sellIn<0) this.increaseQuality(item);
}else if ( item.name =='Backstage passes to a TAFKAL80ETC concert'){
this.increaseQuality(item);
if(item.sellIn<10) this.increaseQuality(item);
if(item.sellIn<5) this.increaseQuality(item);
if(item.sellIn<0) item.quality=0;
}else{
this.decreaseQuality(item);
if(item.sellIn <0) this.decreaseQuality(item);
}
}
private decreaseQuality(item :Item){
if(item.quality>0){
item.quality = item.quality - 1;
}
}
private increaseQuality(item :Item){
if(item.quality<50){
item.quality = item.quality + 1;
}
}
}

View File

@ -1,4 +1,5 @@
import { Item, GildedRose } from '../app/gilded-rose';
import { GildedRose } from '../app/gilded-rose';
import { Item } from '../app/./Item';
const items = [
new Item("+5 Dexterity Vest", 10, 20), //

View File

@ -1,4 +1,5 @@
import { Item, GildedRose } from '@/gilded-rose';
import { GildedRose } from '@/gilded-rose';
import {Item } from '@/Item'
describe('Gilded Rose', () => {
it('should foo', () => {

View File

@ -1,6 +1,6 @@
import { expect } from 'chai';
import { Item, GildedRose } from '@/gilded-rose';
import { GildedRose } from '@/gilded-rose';
import { Item } from '@/Item';
describe('Gilded Rose', () => {
it('should foo', () => {
const gildedRose = new GildedRose([new Item('foo', 0, 0)]);