Merge pull request #330 from AlganOngun/issue263-fix

Fixed Issue#263, Fixed the usage of C functions in Cpp
This commit is contained in:
Emily Bache 2022-05-02 07:43:07 +02:00 committed by GitHub
commit d20c40501b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 46 deletions

View File

@ -1,29 +0,0 @@
======================================
Gilded Rose İş Talimatları
======================================
Merhaba, Gilded Rose takımına hoşgeldiniz. Bildiğiniz üzere bizim, şehirde küçük bir dükkanımız var. Prensip gereği sadece en iyi malları satarız.
Ne yazık ki mallarımız zamanla eski kalitelerini yitirmekte. Normalde elimizdeki malların kalitesini takip etmek için Leeroy diye bir yazılımcıya yazdırdığımız bir sistem vardı fakat Leeroy artık barşka işlerle uğraşıyor bu yüzdende sistem eski kaldı ve yenilenmesi gerek.
Sistemimizin nasıl çalıştığı hakkında biraz bilgi:
- Bütün eşyalar "SellIn" isminde bir değere sahip, bu değer eşyanın kaç gün içinde satılması gerektiğini gösteriyor
- Bütün eşyaların "Quality" isminde bir değeri var, bu değer eşyanın kalitesini gösteriyor
- Her günün sonunda bu iki değer de değişiyor.
Aslında temelinde oldukça basit bir sistem fakat karmaşık kısımları da var:
- Bir eşya satılması gereken zaman içinde("SellIn") satılamazsa, kalitesi("Quality") iki kat daha hızlı düşer.
- Hiçbir eşyanın kalitesi("Quality") negatif olamaz.
- "Aged Brie" ismindeki eşya diğer eşyalardan farklı olarak, eskidikçe("SellIn") kalitesi("Quality") artar.
- Hiçbir eşyanın kalitesi("Quality") 50'den fazla olamaz.
- "Sulfuras" efsanevi bir eşyadır, bu yüzden ne kadar eskirse eskirsin("SellIn") kalitesinde("Quality") herhangi bir değişim olmaz.
- "Backstage passes" eşyaları aynı "Aged Brie" gibi eskidikçe("SellIn") değerlenir("Quality"). Konser zamanına("SellIn") 10 gün kala 2, 5 gün kala 3 artar, daha uzun bir süre varsa 1 artar.
Yakın bir zamanda büyülü eşyalar("Conjured") satan bir firmayla anlaştık:
- "Conjured" eşyaların kalitesi("Quality") normal eşyalarınkinden 2 kat daha hızlı eksilir.
Sistem çalıştığı sürece kodda istediğin gibi değişiklik yapabilir veya yeni kod ekleyebilirsin.
Bir de "Sulfuras" efsanevi bir eşya olduğu için normal eşyaların aksine kalitesi 80'dir ve hiç değişmez.

View File

@ -1,41 +1,41 @@
#include <cstdio>
#include <iostream>
#include "GildedRose.h"
int
print_item(Item *item)
print_item(Item& item)
{
return printf("%s, %d, %d\n", item->name.c_str(), item->sellIn, item->quality);
return std::cout << item.name << ", " << item.sellIn << ", " item.quality << std::endl;
}
int main()
{
vector<Item> items;
items.emplace_back("+5 Dexterity Vest", 10, 20);
items.emplace_back("Aged Brie", 2, 0);
items.emplace_back("Elixir of the Mongoose", 5, 7);
items.emplace_back("Sulfuras, Hand of Ragnaros", 0, 80);
items.emplace_back("Sulfuras, Hand of Ragnaros", -1, 80);
items.emplace_back("Backstage passes to a TAFKAL80ETC concert", 15, 20);
items.emplace_back("Backstage passes to a TAFKAL80ETC concert", 10, 49);
items.emplace_back("Backstage passes to a TAFKAL80ETC concert", 5, 49);
items.push_back({"+5 Dexterity Vest", 10, 20});
items.push_back({"Aged Brie", 2, 0});
items.push_back({"Elixir of the Mongoose", 5, 7});
items.push_back({"Sulfuras, Hand of Ragnaros", 0, 80});
items.push_back({"Sulfuras, Hand of Ragnaros", -1, 80});
items.push_back({"Backstage passes to a TAFKAL80ETC concert", 15, 20});
items.push_back({"Backstage passes to a TAFKAL80ETC concert", 10, 49});
items.push_back({"Backstage passes to a TAFKAL80ETC concert", 5, 49});
// this Conjured item doesn't yet work properly
items.emplace_back("Conjured Mana Cake", 3, 6);
items.push_back({"Conjured Mana Cake", 3, 6});
puts("OMGHAI!");
std::cout << "OMGHAI!" << std::endl;
GildedRose app(items);
for (int day = 0; day <= 30; day++)
{
printf("-------- day %d --------\n", day);
printf("name, sellIn, quality\n");
for (auto & item : items)
std::cout << "-------- day " << day << " --------" << std::endl;
std::cout << "name, sellIn, quality" << std::endl;
for (auto& item : items)
{
print_item(&item);
}
printf("\n");
std::cout << std::endl;
app.updateQuality();
}
return 0;