Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Тествах и двата варианта и все резултата е един. Първоначанло го правех null, след като пратих решението и въпросния тест не мина, пробвах да го оставя така и пак си е същото. То все пак, така или иначе ако попадна на същия сокет, ще го презапиша, а ако не попадна повече на него, май няма значение как ще го оставя.
Пробвай да сложиш скоби където правиш add и remove ,някой път стават непредвидени резултати от това.
ако искаш виж и моето решение
Ако имаш предвид методите addBonus и removeBonus и по-точно там, където сетвам min/maxDamage, пробвах току що да отделя умножението в скоби и пак резултата е същия :)
Май разбрах къде ти е грешката пробвай да направиш 1 оръжие , да му напълниш сокетите ( на всеки сокет gem) , и след това пак да сложиш нови gemove т.е само add команди.
Ти ако сложиш нов gem върху стария прилагаш нов бонус , а стария също остава. Затова е по-добре да нямаш полета за agility , strength и vitality , а динамично от масива с gemove да калкулираш stats-a и да добавяш бонуси (strength , agility) .
Мда, твоето решение е доста по-добре струкурирано, имаш отделни методи за калкулация на бонусите, но като цяло двата метода в комбинация, работят като моя.Поне аз не намирам разлика във функционалността.
Не че е грешно твоето , но трябва когато аддваш да проверяваш дали там има gem за да махнеш неговите бонуси и да сложиш новите (в твоя случай ) .
Всъщност можеш да преизползваш removeBonus метода ти за да го правиш.
Точно това беше :) Още при първия тест само с add се счупи. И да сетих се, че вместо да преправям всичко, по-добрия вариант е да си преизползвам вече съществуващия метод. Много ти благодаря!
Успех!
Не мога да го направя Best Answer, защото е коментар, но имаш една бира от мен :D