Добре... Около 1200 реда код само за класовете, плюс още 400 само за тестването (които може да мога ги съкратя, но така или иначе няма да се ползват много в бъдеще). До колкото съм тествал, всичко работи добре, но засякох една грешка, която нямаше как да проследя.
Избирането на неща за продан се прави ръчно, но екипирането на неща се случва само в кода. Командите и отпечатването може да са малко странни за боравене, но за тестване стават. Сега само трябва да се тества дали всички алгоритми работят без да дават ръчно писани съобщения за грешки или без да крашват програмата. И съм забравил да изтрия обектите на края на main().
Как работи- Купуването и продаването става чрез разменяне или "Аз ще ти дам това, това, това и малко пари, а ти ми дай това това и това". Първо трябва да се изберат инвентарите на двата екипа които ще търгуват (select_inv_A, select_inv_B) и след това да се избира кой какво ще дава. След като сделката е готова, остава само да се въведе accept_deal, или да се даде команда "cancel_deal_A" или "cancel_deal_B" ако единия екип иска да се откаже. След избиране на друг инвентар, предложените артикули на предишния инвентар остават предложени, но това не би трябвало да прави проблеми по-късно, тъй като функциите на командите работят само с указателите inventoryA и inventoryВ.
Сега се сетих за един потенциален проблем- обектите от тип Inventory. В тях няма никъде написано new, но масивите DynamicArray ползват динамична памет. Също така, те са масиви от указатели към обекти, които се създават чрез new, но това се случва в main(). По-късно тези указатели само се насочват към новите обекти (така го правя, защото дизайнът изисква). Заради това, добре ли ще е да напиша деструктор в class Inventory, или направо да трия обектите в края на main()?
Пак се надявам кирилицата в коментарите да се запази... Иначе ще трябва да се разшифрова кода само по имената на различните неща.