return contract.outXP;
}
(int) xpForAllContracts: (NSArray *) buildingsWithContracts
{
int allXp=0; (int i=0; i lt; buildingsWithContracts.count; i ++)
{
allXp +=[self xpForContract: (FactoryBuilding *) [buildingsWithContracts objectAtIndex: i]];
} allXp;
}
+ (NSArray *) resultFactoryBuildings
{
NSMutableArray * result=[NSMutableArray array];
NSMutableArray * buildingsWithReadyContract=[NSMutableArray array];
int freeWarehouseSpace=[[Game game] .resourcesManager freeSpace]; * map=[Game game] .map;
for (Building * building in [map allBuildings]) {* type=building.typeName; ([type isEqualToString: @ factory ]) ([(FactoryBuilding *) building canCollectContract])
{
[buildingsWithReadyContract addObject: building];
} (buildingsWithReadyContract.count gt; freeWarehouseSpace)//if there is no so much space in warehouse
{
[buildingsWithReadyContract sortUsingFunction: compareContractsCost context: nil]; (int i=0; i lt; freeWarehouseSpace; i ++)
{
[result addObject: [buildingsWithReadyContract objectAtIndex: i]];
}
}
else
{
[result addObjectsFromArray: buildingsWithReadyContract];
} result;// Buildings, which contracts can be added to warehouse
}
2.3 Опис тестів та оцінка якості програмного продукту
програмний ігровий комп'ютерний візуальний
Ігровий продукт написаний для планшетів Apple iPad, тому тестування проводилося на всіх пристроях цієї лінійки, так як кожен з них використовує різну версію платформи iOS.
Потрібно перевірити кілька аспектів роботи компонента:
. Продуктивність програми під час роботи компонента: основним показником є ??така характеристика як кадрова частота, або FPS (Frame Per Second) планшета. Під кадровою частотою розуміється частота, генерируемая самою грою в залежності від ресурсів пристрою та необхідності передачі рухів різної інтенсивності. Так як збір відразу декількох ресурсів запускає багато анімацій, кадрова частота може зменшуватися. Під час тестування FPS не опускався нижче середнього показника 25, що є непоганим показником.
. Робота алгоритму: правильність задоволення заданим умовам появи кнопки, підрахунку будівель готових для збору ресурсів, зміни ігрових атрибутів. Компонент тестувався на різних наборах будівель з ресурсами, помилок не виявлено.
Висновок
За підсумками проходження виробничо-технологічної практики я ознайомилася з платформою iOS, API Cocoa, мовою програмування Objective-C і його парадигмами, а також з ігровим движком Cocos2d-iphone. Крім того, був проведений аналіз економічної складової гри, спільна робота з відділом тестування дозволила виявити слабкі місця і помилки програми, і в підсумку розроблений компонент програмного продукту, що задовольняє заявленим вимогам:
. Візуальна частина представлена ??вікном з інтуїтивно зрозумілим інтерфейсом
. Механізм збору функціонує коректно
. Продуктивність гри залишається на високому рівні
Використання даного програмного компонента покликане спростити ігровий процес користувача, організувати і зібрати в одному місці множинну інформацію про поточні доступних ресурсах, а також прискорити прогрес гравця.
Подальша розробка може бути продовжена в наступних напрямках:
. Реалізація можливості вибору, які ресурси збирати, а які залишити в готовому стані
. Логгірованіе на сервер зміни грошового атрибуту
. Оптимізація анімації з метою її додавання без втрати продуктивності
. Оптимізація коду для зменшення використовуваного об'єму пам'яті
Список використаної літератури
1. Хіллегаас, А. Objective-C. Програмування для iOs і MacOs.- М: Пітер, 2010. - 304 с.
. Кочан, С. Вивчаємо iOS програмування.- М: Орейлі, 2012. - 428 с.
. Іттерхейм, С. Вивчаємо створення ігор з використанням Cocos2d.- М: Апрессов, 2011 - 218 с.