Идеи за собствени проекти

Протопит за магазин (РвП)

Протопит за магазин (РвП)

by Александър Александров -
Number of replies: 1

Това бяха едни хубави 400 реда код и коментари за днес, тоест вчера, след като започнах от над 100 реда. Това е все още много, много ранна работа в прогрес. Този код е началото на прототип за система за магазин, който после планирам да пренаписвам на Java и да го направя част от по-голям прототип за игра. За сега мисля, че това ми идва като добро упражнение на тема "Полиморфизъм в С++".

Кодът работи, но не съм сигурен дали има дизайнерски грешки и/или неща които не е добре да се практикуват. Ползвал съм само неща, които сме взимали до сега, с изключение на "dynamic_cast". Има алгоритми за пресмятане на цена, които са сложени само да пазят място, неща които липсват и други неща от сорта. За това го качвам тук- за помощ с грешки и идеи за алгоритмите.

За сега отделните неща не са нищо повече от артикули. По план, няма да има един пазар, а ще са много пазари- За това при пресмятането на цената се ползва репутация, а не само количество и качества. Започнал съм да тествам методи, които ще са част от механика за екипиране и модифициране на екипировка, и съм заченал система за създаване на екипи (но тя е само за пробване).

Може да има методи, които дори да не съм ползвал, и има коментари, които в бъдеще ще се превърнат в методи. Кодът може да е малко разхвърлен, с (както споменах) липсващи важни неща, но това ще се подобрява с времето.

За повече информация, съвети, идеи и забележки- пишете.

Да се надяваме, че кирилицата във файла ще се запази...

In reply to Александър Александров

Прототип за магазин- почти готов!

by Александър Александров -

Добре... Около 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()?

Пак се надявам кирилицата в коментарите да се запази... Иначе ще трябва да се разшифрова кода само по имената на различните неща.